Hosted Checkout 與 Payment Link
兩種收款方式:Payment Link 是「不寫程式也能分享的收款網址」,Hosted Checkout 則是它背後實際呈現的結帳頁。
Payment Link:不寫程式也能收款
Payment Link 是針對某個價格建立的一次性或可重複使用的收款網址。你可以直接把連結分享給顧客(Line、Email、社群貼文),不需要寫任何前端程式碼。建立後會拿到 url(相對路徑 /pay/{token})。
POST
/api/PaymentLink— 建立一個 Payment Link| 欄位 | 必填 | 說明 |
|---|---|---|
priceId | 是 | 要收款的價格 |
name | 是 | 顯示名稱 |
maxCompletions | 否 | 限制只能完成幾次(例如 1 = 一次性連結) |
expiresAt | 否 | 到期時間 |
Hosted Checkout:ReBate Pay 代管的結帳頁
顧客打開 Payment Link 的網址時,看到的就是 Hosted Checkout——一個 ReBate Pay 代管的頁面,會收 email/姓名、顯示訂單摘要。頁面實際呈現的付款輸入方式取決於這個 workspace 目前接的是哪一種 provider adapter,見下方說明。付款完成後,成功畫面會提供「開啟顧客入口」按鈕,讓顧客可以直接前往 Customer Portal 自助管理訂閱。
Hosted Checkout 同時支援單筆商品與訂閱制價格——如果 Payment Link 指向的是
Recurring 價格,完成付款後建立的是訂閱而不是單筆付款。兩種付款輸入模式(依實際 adapter 而定)
| 模式 | 何時出現 | 畫面呈現 | 驗證狀態 |
|---|---|---|---|
| 情境模擬模式 | 工作區尚未開通沙盒刷卡時的預設 | 情境選擇器(成功/拒絕/逾時),不需要輸入任何卡號 | 已驗證,可放心用於串接開發 |
| 沙盒刷卡模式 | 工作區已開通沙盒刷卡 | 加密的卡號/有效期限/CVV 輸入框,使用測試卡走完整的授權與 3D 驗證流程 | 可用於串接開發;請只使用測試卡 |
GET /api/Capability 回應裡的 sandbox.adapter 欄位(fake_tappay 或 tappay_sandbox)會誠實反映目前這個環境實際在跑哪一種模式,不要用 sandbox/production 這種粗略分類去猜。Apple Pay 與 Google Pay
在支援的裝置上,Hosted Checkout 會自動在信用卡欄位上方顯示 Apple Pay(iPhone、iPad、Mac 的 Safari)與 Google Pay(支援的瀏覽器與 Android)按鈕。這兩種付款由 ReBate Pay 統一串接,你不需要申請 Apple/Google 商家帳號,也不需要改任何程式——付款結果、退款、payment.succeeded Webhook 都和信用卡一樣。
Apple Pay 與 Google Pay 只用於單次付款。訂閱方案需要保存卡片以便續扣,行動支付無法保存,所以訂閱的結帳頁只會顯示信用卡。你可以在主控台「卡片與行動支付」查看目前可用的方式與本月金額。
如果你想完全自己控制前端
不想導去 ReBate Pay 的頁面,也可以用 POST /api/Checkout 直接在後端完成一筆結帳(傳入顧客資料與 chargeScenario),自己決定怎麼呈現結果畫面。這個端點屬於需要 Idempotency-Key 的財務操作。
POST
/api/Checkout— 後端直接完成一筆結帳(不經過 Hosted Checkout 頁面)
ReBate Pay Docs