在 PHP 與 Laravel 使用匯率
以 Laravel HTTP 客戶端、bearer 認證、有限逾時和新鮮度欄位取得並快取即時匯率。
小型 Laravel 服務可呼叫 exchangerate.dev、拒絕錯誤回應,並快取完整匯率觀測 60 秒。密鑰放在設定中,與匯率一同回傳 source、market_session 和 data_updated_at。
Key points
使用 Laravel HTTP 客戶端的 bearer 認證、逾時與
throw()。快取完整成功回應 60 秒。
透過
EXCHANGERATE_API_KEY 載入密鑰。精確金額運算應使用十進制程式庫。
建立有快取的匯率服務
服務以基礎貨幣和排序後的代碼建立穩定快取鍵。throw() 會在 Laravel 寫入快取之前執行,因此錯誤不會成為匯率資料。
在原始碼之外設定密鑰
讀取匯率及觀測欄位
呼叫 $service->latest("USD", ["EUR", "GBP"]),再讀取 $result["rates"]["EUR"]。同時保留 $result["source"]、$result["market_session"] 和 $result["data_updated_at"]。
不要把錯誤快取成匯率
401 表示密鑰或標頭錯誤,429 表示超出請求限制。讓請求失敗,舊觀測只可連同原本更新時間保留。
- 建立快取鍵前先排序貨幣代碼。
- 設定有限 HTTP 逾時。
- 讀取並快取 JSON 前呼叫 throw。
- 只四捨五入最終金額,不處理 API 匯率。
MM
exchangerate.dev
為使用外匯數據的開發者而設的整合指南。