什麼係付款閘道(Payment Gateway)?網上付款點運作
付款閘道係一項服務,佢會喺結帳時安全地攞取客戶嘅付款資料,送去銀行同卡組織審批,然後返回「批准」或「拒絕」,通常喺幾秒之內完成。佢係你嘅應用程式同金融系統之間嘅橋樑。Stripe、PayPal、Adyen、Square 同 Braintree 都係著名例子。
而家大部分呢類公司都會將閘道同你收款所需要嘅其他所有嘢打包成一起,所以「付款閘道」、「付款處理器」同「付款供應商」經常被當成同一個意思使用。
用 AI 建構時點解付款閘道重要
「加入付款」係人哋向 AI 建構工具提出最常見嘅要求之一,亦係最容易以微妙方式出錯嘅一項。代碼本身通常好短。真正重要嘅係圍繞佢嘅決定:
- 揀邊個供應商,視乎你嘅業務、國家同賣緊乜嘢。
- 代碼喺邊度運行。 付款嘅 secret 密鑰必須留喺伺服器上,永遠唔可以放喺瀏覽器。
- 你嘅應用程式點樣知道付款成功。 最可靠嘅方法係由供應商發出嘅 webhook,而唔係靠客戶去到一個「多謝」頁面。
- 你嘅法律同稅務責任,視乎邊個係交易記錄商而定。
明白付款閘道做乜,可以幫你俾清晰嘅指示,並檢查結果係咪安全。
日常比喻
想像喺商店用卡付款。
櫃檯上嘅卡機就係閘道:佢安全咁讀取你張卡,然後送出請求。佢本身唔會決定任何嘢,只係將「呢位客人可唔可以俾 40 歐元?」呢條問題沿一條鏈傳去你嘅銀行,然後攞返答案。真正作決定嘅係商店嘅銀行(收單行)同你嘅銀行(發卡行),而連接佢哋嘅就係 卡組織(Visa、Mastercard)。
網上付款閘道就好似將嗰部卡機搬到網上,並加上安全功能,以處理經互聯網傳來嘅卡資料。
網上卡付款點運作
以下係客人撳「付款」之後嘅幾秒內發生嘅事:
| 步驟 | 發生咩事 | 由邊方處理 |
|---|---|---|
| 1. 結帳 | 客人喺一個安全嘅付款表格輸入卡資料 | 付款供應商嘅表格或頁面 |
| 2. 加密 | 資料被加密,然後送去閘道 | 閘道 |
| 3. 授權請求 | 請求經卡組織送到客人嘅銀行 | 處理器、卡組織 |
| 4. 檢查 | 發卡行檢查資金同欺詐訊號,並可能要求額外驗證,例如 3D Secure | 發卡行 |
| 5. 回應 | 批准或拒絕嘅結果返回你嘅應用程式 | 閘道 |
| 6. 扣帳同結算 | 款項被收取,並按供應商嘅派款時間表,扣除費用後存入你嘅銀行帳戶 | 處理器、收單行 |
有兩點值得留意:
- 授權唔等於已經收到錢。 金額先被預留,然後被扣取,再結算到你嘅帳戶 — 通常要過幾日。
- 你嘅應用程式根本唔應該見到卡號。 現代供應商會俾你一個由佢哋控制嘅託管結帳頁或者嵌入式欄位,而你嘅應用程式只會攞到付款嘅一個參考編號。
主要組件,以及邊個負責
| 組件 | 係乜 |
|---|---|
| 付款閘道 | 安全地攞取付款資料,並將佢傳遞出去。 |
| 付款處理器 | 喺銀行之間傳送交易資料。 |
| 商戶帳戶 | 代你接收卡付款嘅帳戶。由 Stripe 等供應商打包提供。 |
| 收單行(Acquirer) | 商戶一方嘅銀行。 |
| 發卡行(Issuer) | 客人嘅銀行,負責批准或拒絕。 |
| 卡組織 | Visa、Mastercard 等,連接收單行同發卡行。 |
| 交易記錄商(Merchant of record) | 喺法律上向客人出售嘢嘅業務,並負責稅務、退款同爭議。 |
有啲供應商(Paddle、Lemon Squeezy)會自己擔任交易記錄商,代你處理銷售稅同增值稅,作為交換要付較高嘅費用。另一啲(Stripe、PayPal)則由你擔任交易記錄商,另外可以選擇使用稅務工具。如要公平咁比較各個選擇,請睇 Stripe vs Paddle vs Lemon Squeezy 同 Stripe vs PayPal。
實際例子:賣一個課程
你以 €99 賣一個網上課程,然後叫 AI 建構工具加入一個「購買」按鈕。
- 客人撳購買。你嘅伺服器用佢嘅 secret 密鑰,要求供應商為 €99 建立一個結帳工作階段,然後取回一條連結。
- 客人被送去供應商嘅託管結帳頁,輸入卡號,並喺銀行完成任何 3D Secure 驗證。
- 付款獲批准,客人被轉去你嘅「成功」頁面。
- 另外,供應商會向你嘅伺服器發送一個 webhook:「工作階段 X 嘅付款已成功。」你嘅伺服器會檢查 webhook 嘅簽署,搵到對應嘅訂單,標記為已付款,然後解鎖課程。
- 過幾日,扣除費用後嘅款項就會存入你嘅銀行帳戶。
第 4 步最重要。如果你改為喺成功頁面解鎖課程,任何搵到嗰個網址嘅人都可以免費攞到課程,而瀏覽器喺付款後提早關閉嘅客人,就會付咗錢但一無所得。
重點名詞
| 名詞 | 意思 |
|---|---|
| 結帳工作階段(Checkout session) | 你嘅伺服器為某次特定購買而建立嘅一次性付款頁面或流程。 |
| 測試模式(Test mode) | 一個沙盒環境,使用測試密鑰同測試卡號,唔會有真正資金流動。 |
| Publishable/secret 密鑰 | Publishable 密鑰可以出現喺瀏覽器代碼入面;secret 密鑰必須留喺伺服器上。 |
| 3D Secure | 額外一步,客人經銀行確認付款。喺歐洲,根據強客戶認證(SCA)規則相當普遍。 |
| PCI DSS | 卡行業為所有處理卡資料嘅人而設嘅安全標準。 |
| 拒付(Chargeback) | 客人向銀行提出爭議,款項被追回。 |
| 退款(Refund) | 由你主動退回嘅款項。 |
| 派款(Payout) | 供應商將收取到嘅款項轉去你嘅銀行帳戶。 |
常見誤解
- 「我要儲存卡號先可以再次向客人收費。」 唔使。供應商會儲存卡,然後俾你一個參考權杖(token),用於重複收費同訂閱。你永遠唔應該自己儲存卡號。
- 「成功頁面就代表付款成功。」 要用 webhook 喺伺服器上確認付款。重定向可以被跳過、偽造,甚至根本唔會發生。
- 「所有付款供應商費用都差唔多。」 費用視乎供應商、國家、卡種類,以及有冇包括稅務處理而有所不同。請喺各供應商嘅定價頁面,查閱你所屬國家嘅最新收費。
- 「用 Stripe 就等於符合 PCI。」 呢樣令合規容易好多,因為卡資料會留喺供應商那邊,但你仍然要完成一份通常比較短嘅自我評估。
- 「測試模式同正式模式行為完全一樣。」 兩者好接近,但正式模式需要一個完全驗證嘅帳戶、為正式環境設定嘅真實 webhook 端點,以及真實嘅銀行資料。
- 「付款閘道會幫我處理稅項。」 只有當佢係交易記錄商,或者你開啟並設定咗佢嘅稅務功能,先會咁樣。請跟從你本地嘅規則,或者諮詢專業人士。
向你嘅 AI 建構工具要求咩
- 「為[產品]加入[Stripe]結帳。喺伺服器上建立工作階段,並使用由環境變數攞取嘅 secret 密鑰。」
- 「只可以喺一個已驗證嘅 webhook 之後,先將訂單標記為已付款,並檢查 webhook 嘅簽署。」
- 「處理 webhook 被發送兩次嘅情況,唔好建立重複嘅訂單。」
- 「使用測試模式嘅密鑰,並逐步教我用供應商嘅測試卡測試,包括一張被拒絕嘅卡。」
- 「如果客人付款後關閉咗分頁,會發生咩事?」
- 「列出每個用到付款密鑰嘅位置,並確認 secret 密鑰永遠唔會去到瀏覽器。」
Mythex 上嘅付款閘道
Mythex 唔會為你建構嘅應用程式提供內置付款功能,亦冇一鍵「連接 Stripe」嘅功能。你要自己喺所選嘅供應商開一個帳戶,將佢嘅測試密鑰加入項目 secrets,然後叫 agent 喺伺服器端建構結帳。喺預覽中用供應商嘅測試卡測試,然後再發佈。文件喺用 Stripe 收取付款入面逐步講解,而 Webhooks 則講解確認付款嗰一步。
如要逐步建構,請睇點樣為你嘅應用程式加入付款;如果係經常性收費,則請睇點樣用 Stripe 加入訂閱。
常見問題
簡單嚟講,什麼係付款閘道?
付款閘道係一項服務,佢會安全咁由客戶嘅結帳頁攞取付款資料,送去銀行同卡組織審批,然後將批准或拒絕嘅結果返回你嘅應用程式,通常只需幾秒。
付款閘道同付款處理器(processor)有咩分別?
嚴格嚟講,閘道係安全嘅前門,負責捕獲同傳遞付款資料;處理器則負責喺銀行之間轉移交易。但實際上,Stripe、PayPal 同 Adyen 等現代供應商會將兩者連同商戶帳戶一齊打包成一項服務,所以呢啲名稱經常被當成同一樣嘢使用。
要接受卡付款,我需要符合 PCI 規定嗎?
任何接受信用卡嘅企業都要以某種形式符合 PCI DSS 安全標準。使用託管結帳頁面,或者供應商嘅嵌入式付款欄位,卡號就永遠唔會經過你嘅伺服器,大大減低你需要負責嘅範圍。你嘅供應商會話你知適用邊一種自我評估。
什麼係交易記錄商(merchant of record)?
交易記錄商係喺法律上向客戶出售嘢嘅業務,負責嘢包括收取同繳付銷售稅或增值稅,以及處理退款同拒付。Paddle 同 Lemon Squeezy 等服務會代你擔任交易記錄商;而用 Stripe 或 PayPal 時,通常係你自己擔任。
我可唔可以為 AI 建構嘅應用程式加入付款功能?
可以。AI 建構工具可以寫代碼,將你嘅應用程式連接到 Stripe 等供應商:喺伺服器上建立結帳工作階段、處理 webhook,並更新訂單。你仍然需要自己喺供應商度開一個帳戶,而正式上線之前,應該喺佢嘅測試模式下測試所有嘢。