先決條件
- 一個 Fluz 帳戶——你將在下方步驟 1–2 建立預備環境 API 認證並鑄造存取權杖。
- 請將請求送至 沙盒 GraphQL 端點。這裡不會向真實卡片收費——參見 Staging vs. Live Environment。
- 每個 mutation 都需要唯一的
idempotencyKey(由用戶端產生的 UUID),以確保請求只會被處理一次——參見 Idempotency。
在你開始之前
除了鑄造你的權杖(步驟 2)之外,其餘每個呼叫都是對單一 GraphQL 端點的POST 請求,並以你的 Bearer 權杖進行驗證:
完整流程
註冊並註冊應用程式
前往 fluz.app 建立 Fluz 帳戶,接著開啟 Developer Console 並建立新的 Staging 應用程式。當憑證出現時,複製你的
clientId 與 clientSecret——secret 只會顯示一次。完整操作指南:準備你的帳戶。以認證交換存取權杖
使用你的應用程式認證鑄造一個短效、具範圍的使用者存取權杖。此呼叫會送往 OAuth 服務;後續每個呼叫都使用回傳的權杖作為 Bearer 憑證。儲存回傳的
accessToken,並在以下每個請求以 Authorization: Bearer <accessToken> 夾帶。權杖為短效(expiresIn 為秒)——請在伺服器端鑄造並於到期前更新。完整細節:API credentials。將資金存入你的 Fluz 餘額
預先將資金存入 Fluz 餘額通常能讓禮品卡購買更快,並可繞過部分速度限制檢查。你可以用兩種方式儲值:
- 手動,透過 sandbox Fluz website。
- 程式化,使用
depositCashBalancemutation(如下所示)。
首先,擷取付款方式 ID(getWallet)
首先,擷取付款方式 ID(getWallet)
若要透過 API 儲值,你需要資金來源的 ID(例如 從回應中擷取
bankCardId)。執行 getWallet 並保存你要使用的 ID。bankCardId 或 bankAccountId。透過 API 管理資金來源需要 MANAGE_PAYMENT scope。更多細節:View Funding Sources。進行儲值
使用depositCashBalance mutation。它接收一個 DepositCashBalanceInput 物件。輸入欄位
由用戶端產生的唯一 UUID,可確保儲值只被處理一次。
要儲值的金額。
目標餘額。可為
CASH_BALANCE、GIFT_CARD_BALANCE 或 RESERVE_BALANCE。資金來源——提供
bankAccountId、bankCardId 或 paypalVaultId 三者之一即可。僅適用於
GIFT_CARD_BALANCE。用於分類商家的四位數 MCC。使用 getMccList 取得有效值。當選擇
CASH_BALANCE 時,指定要儲值的特定消費帳戶。範例回應
範例回應
視資金來源與結算方式不同,儲值可能即時或於 2–5 個工作天內入帳。回應中的
balances 物件會反映你目前的可用餘額。隨時重新查詢請參見 Check Account Balance。瀏覽商家並選擇優惠
準備好餘額後,使用
getMerchants 取得可用商家與其現金回饋優惠的目錄。實用參數
以名稱篩選商家。
{ limit, offset }。預設與最大 limit 皆為 20。指定回傳哪些優惠型別的布林旗標,例如
{ giftCardOffer: true, cardLinkedOffer: false }。篩選每個商家內的優惠,例如依
deliveryFormat(URL、CODES、PIN_AS_CODE、PIN_WITH_URL)。分頁機制: 回應可能回傳少於你設定的
limit。若要拉取完整目錄,請持續將 offset 以 limit 遞增,直到 API 回傳空陣列([])為止。未篩選的目錄很大——最多每日抓取一次,並盡量使用 name 或 offerTypes 進行精準查找。選配:取得單一商家的最佳優惠(getOfferQuote)
選配:取得單一商家的最佳優惠(getOfferQuote)
若你已知道商家與金額,
getOfferQuote 會直接回傳最佳可用優惠——包含即時庫存資訊。slug 與 denomination 為必填。paymentMethod 預設為 FLUZPAY(你的 Fluz 餘額),亦接受 BANK_CARD、BANK_ACCOUNT、PAYPAL、APPLE_PAY 與 GOOGLE_PAY。購買禮品卡
使用
purchaseGiftCard mutation。你可以用兩種方式指定要購買的目標:- 選項 A — 商家 slug(建議)
- 選項 B — 指定 offer ID
傳入
merchantSlug,Fluz 會自動套用該商家的最佳可用優惠。輸入欄位
由用戶端產生的唯一 UUID,確保購買只被處理一次。
僅需提供其一。
merchantSlug 會自動選擇最佳回饋;offerId 則指定特定優惠。要購買的禮品卡金額。
付款來源。使用
balanceAmount(Fluz 餘額)、bankAccountId、bankCardId 或 paypalVaultId。你可將 Fluz 餘額與另一來源合併支付。若其他付款方式失敗,則退回使用你的 Fluz 餘額。設為
false 可停用此後援機制。以
merchantSlug 購買時可接受的最低回饋比率。強制使用特定的專屬比率。可在
getMerchants 中找到 EXCLUSIVE_RATE_OFFER 類型的 exclusiveRateId。要扣款的消費帳戶(現金餘額)。
選用的支出中繼資料。
memo 最多 255 字元;類別會在首次使用時建立。參見 Add Expense Details。範例回應
範例回應
請保留回應中的
giftCardId——你將在下一步使用它來揭露卡片。若購買失敗,請查看 Gift Card Error Codes。揭露禮品卡詳細資訊
最後,取回可兌換的詳細資料(代碼、PIN 和/或 URL)。
沒有 giftCardId?先列出你的卡片(getGiftCards)
沒有 giftCardId?先列出你的卡片(getGiftCards)
若你剛於步驟 3 取得 你可以使用
giftCardId,可略過此步。否則請先列出你的禮品卡:status 與 userCashBalanceId 進行篩選,並透過 paginate 分頁。揭露兌換細節
使用giftCardId 呼叫 revealGiftCardByGiftCardId。範例回應
範例回應
兌換欄位會依商家而異。有些卡只回傳英數
code 而無 pin;有些則只回傳 url。請一律依 getGiftCards 回傳的 deliveryFormat 來呈現——因為商家的有效優惠在購買後可能更動,而 getGiftCards 反映的是實際購買時的格式。大功告成 🎉
你已完成一次完整交易——儲值餘額、瀏覽優惠、購買禮品卡並揭露其資訊。接下來可探索其餘 API:Virtual Cards
核發並管理可用於支付網路的虛擬卡。
Wallets & Transfers
開立消費帳戶並在其間轉移資金。
Transaction Activity
擷取、篩選並標註交易紀錄。
Embedded Widgets
將 Fluz 的流程直接嵌入你的自有介面。
想了解更多? 聯絡我們: support@fluz.app,與我們的專家對談或申請示範。