Skip to main content
使用 getCardProvisioningUrl 查詢來鑄造一個短效期的 URL——當在終端使用者的手機上開啟時——會在該裝置上啟動 Fluz,並將指定的虛擬卡加入 Apple Pay(iOS)或 Google Pay(Android)。 你可以用任何方式傳遞此 URL:QR 碼、SMS、電子郵件,或應用內按鈕。接下來的錢包加入流程由 Fluz 處理。

何時使用

凡是你通常會把虛擬卡交給使用者,並希望他們能在手機錢包中一鍵加入、而不需輸入卡號的情境。典型流程:
  • 在為使用者建立卡片 offer 之後,於畫面上顯示 QR 碼。
  • 以簡訊或電子郵件將 URL 傳送給持卡人。
  • 在你自有的行動應用中嵌入「加入 Apple Pay / Google Pay」按鈕。
先決條件: 具備包含 CREATE_VIRTUALCARD scope 的終端使用者 OAuth 存取權杖,以及用來選擇卡片的辨識方式。可以是 createVirtualCard 回傳的 virtualCardId,或該帳戶可存取的 offerId。若該 offer 尚未兌換成卡片,將會在加入流程中自動建立一張卡。
此查詢不接受基本驗證(client_id / client_secret)——必須使用使用者情境的 bearer 權杖。

查詢

依卡片(建議):
依 offer(當帳戶在該 offer 上至多只有一張有效卡片時):

輸入

請在 virtualCardIdofferId 中擇一且僅一提供。
一個 offer 在同一帳戶下可對應多張卡片。一旦某個 offer 上有超過一張有效卡片,offerId 就無法唯一識別單一卡片,查詢會以 VirtualCard.AMBIGUOUS_CARD_SELECTION 失敗,而不會幫你任選其一。若你在同一 offer 上發行多張卡,請使用 virtualCardId

ProvisioningPlatform

回傳的 URL 具備平台感知能力:iOS 使用者會自動獲得 App Clip 體驗,Android 使用者會自動獲得 Fluz 應用的深層連結。platform 僅影響在 iOS 或 Android 裝置以外(例如桌面瀏覽器)開啟 URL 時的行為。 選擇最符合你預期開啟位置的值。如不確定,維持 IOS 即可。

輸出

範例

請求

或改以 offer 選擇:

回應

如何傳遞 URL

該 URL 為不透明字串且不包含卡號,但它是持有者即擁有使用權的敏感資訊:任何取得並開啟它的人都能將該卡加入其錢包。請透過你信任的管道傳給持卡人。常見作法:
  • 螢幕上的 QR 碼 — 以 url 產生 QR 並顯示;使用者以手機相機掃描。
  • SMS/電子郵件 — 直接將連結傳送到使用者的手機或收件匣。
  • 應用內深層連結 — 在你的行動應用中配置按鈕以開啟 url
無論使用何種傳遞管道,使用者必須在行動裝置上開啟該 URL——錢包加入流程會在那裡進行。

生命週期與重新發行

  • 每次呼叫都會回傳一組「全新」且只對應單一卡片的 URL。
  • 該 URL 於 expiresAt 前有效(約 5 分鐘)。
  • 開啟 URL 不會立即使其失效。它在首次使用後仍會在短暫寬限期內可兌換,因此務必視為敏感資訊:請透過私密通道傳遞,且不要記錄或快取。
  • 若使用者未能及時操作,只需再次呼叫 getCardProvisioningUrl 以鑄造新的 URL。無需另行「refresh」端點。
  • 若要為多張卡加入,請以各自的 virtualCardId 逐卡呼叫一次查詢。

錯誤處理

所有錯誤都以標準 Fluz GraphQL 錯誤格式回傳,錯誤名稱位於 extensions.code

常見問題

不會。該 URL 僅承載短效的不透明查詢 ID。當使用者在裝置上開啟連結後,憑證才會以安全方式交換。
請視為一次性:每次需要啟動流程時都產生新的。開啟連結並不會立即使其失效,因此它會在短暫寬限期內可兌換。請以私密方式傳遞,且不要記錄或快取。
不行。每個 URL 僅對應單一卡片。請以該卡的 virtualCardId 逐卡呼叫一次查詢。
他們會依你以 platform 選擇的後備行為進入(App Clip 啟動器、Android 深層連結,或 Fluz 網頁應用)。要完成錢包加入,仍需要最終在行動裝置上開啟該 URL。
不需要。同一個 URL 對兩者都適用——Fluz 會依裝置自動導流。

後續步驟

傳送卡片

以電子郵件、SMS 或分享連結發送虛擬卡給收件人。

設定虛擬卡 PIN

在可用的卡片上預先設定 PIN,以便於實體交易需要輸入 PIN 時使用。