iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0
Software Development

從入門到應用:30 天學會 Postman API 測試系列 第 24

Day 24:串接金流 API(模擬付款流程)

  • 分享至 

  • xImage
  •  

1️⃣ 了解金流 API 的基本流程
金流不是「一次呼叫就結束」,而是有一個完整流程:
建立 Payment Intent → 開一筆付款請求,金額/幣別/方式等資訊要先設定。
確認付款方式 → 提供信用卡(Sandbox 用測試卡)。
付款完成/失敗 → 付款狀態更新(成功 = succeeded / 需要更多動作 = requires_action / 失敗 = failed)。
2️⃣ 學會使用 Bearer Token 授權
金流系統很重要,不能隨便讓人呼叫,所以必須帶上「金鑰」。
在 Postman → Authorization → Bearer Token
貼上 Stripe Sandbox 的 sk_test_xxx
👉 這就是「用一把秘密金鑰,證明你是有權限的應用程式」。

我們要用POST方法來完成一系列的練習,今天用的URL是 https://api.stripe.com/v1/payment_intents
接下來到Authorization:
選擇Type:Bearer Token
Token:用一個 測試金鑰(不用真金流,這是公開的測試 key): sk_test_51SDlgoGVoNYEbEJevbZsgiuQWlc7d5XSJ1MSVFgydtrstG64UklgzVQBRXdRB3HYbtumClj5AvNhCgaCoWfLyAyr00jxUsm6Re
這串是到 Stripe 官網,會看到兩組測試金鑰:
Publishable key → pk_test_xxxx(給前端用的)
Secret key → sk_test_xxxx(這個才是要放在 Postman Bearer Token 裡的)
接下來到Body選擇x-www-form-urlencoded:
Key Value
amount 2000
currency usd
payment_method_types[] card
這代表我要建立一筆「20.00 USD」的付款,方式是「信用卡」https://ithelp.ithome.com.tw/upload/images/20251002/20178797hlMEN2527V.jpg
送出會長這樣https://ithelp.ithome.com.tw/upload/images/20251002/20178797d4oqUtfXqP.jpg
可以看到有一筆20美金未完成付款,代表我付款請求已建立

接下來要再建立一個新的request來讓我付款成功
一樣用POST方法 URL要用 https://api.stripe.com/v1/payment_intents/{pi_xxx}/confirm
{pi_xxx}在前一個回傳的JSON裡有給我們,接著到Body (x-www-form-urlencoded)輸入payment_method_data[type] = card
payment_method_data[card][token] = tok_visahttps://ithelp.ithome.com.tw/upload/images/20251002/20178797nvpUyQRaMe.jpg
它裡面有回傳給我
id: "pi_3SDnXhGVoNYEbEJe0dhynwkE → 這是這筆付款的唯一編號(Payment Intent ID)。 amount: 2000 → 代表金額是 2000 cents = 20 美元。 currency: "usd" → 使用的幣別是美元。 latest_charge: "ch_3SDnXhGVoNYEbEJe05qXDkmS" → 這筆付款對應的實際交易紀錄 (charge)。 payment_method: "pm_1SDnXrGVoNYEbEJes9eZGBvU" → 使用的付款方式(這裡是你用測試卡產生的 Payment Method)。 status: "succeeded" → 表示付款已經完成成功。
https://ithelp.ithome.com.tw/upload/images/20251002/201787971imtSTqN4Y.jpg
可以看到付款成功

📌 Stripe 為什麼用 x-www-form-urlencoded?
Stripe API 沒有強制用 JSON,而是 要求用表單格式送資料,因為這樣更輕量、相容性高(任何語言都能輕鬆處理)。x-www-form-urlencoded = 一種表單編碼方式,把資料變成 key=value 形式傳輸。主要用於:登入、金流(Stripe)、傳小量文字。與 JSON 最大差別 → JSON 是物件結構化,form-urlencoded 是單純的鍵值對。


上一篇
Day 23 :串接 OpenStreetMap Nominatim API
系列文
從入門到應用:30 天學會 Postman API 測試24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言