Skip to Content
結帳總覽
View as Markdown

結帳 — 總覽

託管結帳頁是買家實際送出資金的頁面。你不需要自己渲染資產 選擇器、每筆訂單獨立收款位址(CREATE2)或 QR code — SDK 會開啟我們的頁面(位於 https://checkout.infraio.xyz/<session_key>),UI 由我們處理。

三種模式

選擇模式的判斷準則

情境…使用
桌面網頁,一般電商情境Popup
行動網頁Redirect(行動裝置上 popup 常被封鎖)
有嚴格 CSP 限制的後台系統Redirect
App 內 webview / 頁面內原生結帳Embed
想要完全自訂、帶白牌 header 的買家流程Embed + hideHeader + 你自己的錢包連接

買家會看到什麼

無論哪種模式,頁面都會呈現:

  1. 訂單摘要(商品項目、總額、幣別)。若你已在自己那端顯示 過,可用 hideSummary 隱藏。
  2. 資產選擇器 — 你在商家設定中啟用的鏈 × 資產組合清單。買家 從中挑一個。
  3. 所選組合的獨立收款位址 + QR code + 金額。買家可以掃描、連接 錢包(WalletConnect 按鈕),或直接用你透過 SDK 預先提供好的 已連接錢包付款。在 TRON、Solana 與 TON 上,買家直接付款到你的資金庫錢包;請見直達錢包的網路。
  4. 狀態脈動指示 — 「等待轉帳中」、「偵測到交易(3/12 確認)」、「已付款」。
  5. 取消按鈕(一律顯示)→ 觸發 onCancel。

自訂頁面

選項做法限制
隱藏訂單摘要SDK 上設定 hideSummary: true買家仍可在存款面板中看到總額
隱藏 InfraIO Pay headerSDK 上設定 hideHeader: true搭配 walletAddress 達成完整白牌
預先連接錢包walletAddress + walletChainId + onSignRequest略過 WalletConnect 彈窗
語系SDK 上的 locale — en、vi、ja、ko、es、pt-BR、ru、tr、zh-CN、zh-TW 之一同時本地化結帳頁與退款頁(以及錢包連接彈窗)。未知或省略 → 回退到 en
Logo、品牌色商家儀表板 → Branding全域套用,不是依 session 設定

返回 URL 行為

redirect 模式下,買家一律會返回以下其中一個位置:

  • session 中的 success_url(付款結算後)
  • session 中的 cancel_url(取消 / 放棄時)
  • 若你沒有設定這兩者,SDK 會回退到開啟結帳的頁面,並附加 ?session_id=…&status=success|cancel

popup 與 embed 模式沒有頁面導向 — 控制權會透過 onSuccess / onCancel 回到你的頁面。請用這兩個 callback 決定 接下來要顯示什麼 UI。

CSP 與嵌入

若你使用 embed 模式,你的 CSP 必須在 frame-src 中允許我們 的來源:

Content-Security-Policy: frame-src https://checkout.infraio.xyz https://checkout-dev.infraio.xyz;

該 iframe 帶有權限政策 allow="payment; clipboard-write" — 它 只能呼叫 Payment Request API 並寫入剪貼簿,僅此而已。請不要在 iframe 上加 HTML sandbox 屬性, 否則會破壞錢包連接。該 iframe 的隔離由跨來源邊界與你的 frame-src CSP 提供。

行動裝置考量

行動版瀏覽器(尤其是 Safari)常會封鎖彈出視窗。若你的大部分流量來自 行動裝置,請使用 mode: "redirect"。在小螢幕上,彈出視窗覆蓋層也會 遮住鍵盤區域,讓挑選資產變得不方便。

白牌品牌客製化

完整白牌需要:

  1. SDK 上設定 hideHeader: true
  2. 預先連接 walletAddress(買家不會看到 WalletConnect)
  3. 在商家儀表板的 Branding 中設定你的 Logo + 品牌色
  4. (選用)結帳頁的自訂網域 — 例如用 pay.your-shop.com 取代 checkout.infraio.xyz。CNAME 驗證 通過後,在儀表板中設定即可。

下一步