指南

什麼是金流閘道(Payment Gateway)?線上付款如何運作,白話解說

金流閘道是一項服務,會在結帳時安全地取得顧客的付款資料,把它們傳給銀行與卡片組織進行核准,然後回傳「已核准」或「已拒絕」,通常在幾秒鐘內完成。它是你的應用程式與金融體系之間的橋樑。Stripe、PayPal、Adyen、Square 與 Braintree 都是知名的例子。

如今,這些公司大多會把金流閘道與你收款所需的其他一切打包在一起,因此「金流閘道」、「付款處理商」與「付款服務商」常被用來指同一件事。

為什麼使用 AI 建置時金流閘道很重要

「加入付款功能」是人們向 AI 建置工具提出的最常見要求之一,也是最容易在細節上出錯的。程式碼本身通常很短。真正重要的,是圍繞它的各種決定:

  • 選哪一家服務商最符合你的事業、所在國家,以及你的販售商品。
  • 程式碼在哪裡執行。 機密的付款金鑰必須留在伺服器上,絕不能放在瀏覽器中。
  • 你的應用程式如何得知付款成功。 可靠的方式是從服務商收到 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 建置工具加入「購買」按鈕。

  1. 顧客點擊購買。你的伺服器以私密金鑰向服務商請求為這筆 99 歐元的交易建立結帳工作階段,並取得一個連結。
  2. 顧客被導向服務商的託管式結帳頁面,輸入卡片資料,並完成銀行要求的任何 3D Secure 驗證。
  3. 付款獲得核准,顧客被導向你的「成功」頁面。
  4. 另外,服務商會把一個 Webhook 送到你的伺服器:「工作階段 X 的付款已成功。」你的伺服器會檢查 Webhook 的簽章、找到對應的訂單、將它標記為已付款,並開放課程。
  5. 幾天後,扣除手續費的金額會進入你的銀行帳戶。

第 4 步最關鍵。如果你改在成功頁面上開放課程,任何找到那個網址的人都能免費取得課程,而瀏覽器提早關閉的顧客,則會付了錢卻拿不到課程。

關鍵術語

術語意義
結帳工作階段(Checkout session)由你的伺服器為某一筆特定購買建立的一次性付款頁面或流程。
測試模式(Test mode)使用測試金鑰與測試卡號的沙盒,不會有真的錢移動。
可發布金鑰 / 私密金鑰(Publishable / secret key)可發布金鑰可以出現在瀏覽器程式碼中;私密金鑰必須留在伺服器上。
3D Secure額外的步驟,讓顧客與銀行確認付款。在歐洲,依據強式顧客驗證(SCA)規定而常見。
PCI DSS信用卡產業針對處理卡片資料的任何人所制定的安全標準。
拒付(Chargeback)顧客向銀行對某筆付款提出爭議,款項被銀行追回。
退款(Refund)由你自願退回的款項。
撥款(Payout)服務商把你已收取的款項轉入你的銀行帳戶。

常見誤解

  • 「我要再向顧客收費,就得儲存卡號。」 不需要。服務商會儲存卡片,並提供一個參考權杖(token),供之後的重複扣款與訂閱使用。你絕不應該自己儲存卡號。
  • 「看到成功頁面就代表付款成功。」 請在伺服器上透過 Webhook 確認付款。重新導向可能被略過、被偽造,或根本不會發生。
  • 「所有付款服務商的收費都差不多。」 手續費會依服務商、國家、卡片類型,以及是否包含稅務處理而不同。請查看各服務商在你所在國家的最新定價頁面。
  • 「使用 Stripe 就等於符合 PCI 規範。」 這會讓合規簡單許多,因為卡片資料留在服務商那裡,但你仍然需要完成一份(通常很簡短的)自我評估。
  • 「測試模式與正式模式的行為完全相同。」 它們很接近,但正式模式需要完成驗證的帳戶、為正式環境設定好的 Webhook 端點,以及真實的銀行資料。
  • 「金流閘道會替我處理稅務。」 只有在它是交易代收方,或你啟用並設定了它的稅務功能時才會。請查閱你所在地的法規,或諮詢專業顧問。

該向你的 AI 建置工具要求什麼

  • 「為[產品]加入 [Stripe] Checkout。請使用環境變數中的私密金鑰,在伺服器上建立工作階段。」
  • 「只有在經過驗證的 Webhook 通知後,才把訂單標記為已付款,並檢查 Webhook 簽章。」
  • 「處理 Webhook 被重複送達的情況,不要建立重複的訂單。」
  • 「使用測試模式的金鑰,並帶我用服務商的測試卡號進行測試,包括一張被拒絕的卡。」
  • 「如果顧客付款後關閉了分頁,會發生什麼事?」
  • 「列出所有使用付款金鑰的地方,並確認私密金鑰絕不會傳到瀏覽器。」

Mythex 上的金流閘道

Mythex 不會為你建置的應用程式內建付款功能,也沒有一鍵「連接 Stripe」的選項。你需要在你選定的服務商開立帳戶,把它的測試金鑰加入為專案機密,然後請代理在伺服器端建置結帳流程。在預覽中以服務商的測試卡號測試,然後再發布。文件的使用 Stripe 收款一節會逐步說明,而Webhook一節則涵蓋確認付款的步驟。

如需逐步建置,請參閱如何為應用程式加入付款功能,若要定期收費,則參閱如何用 Stripe 加入訂閱。

常見問題

用簡單的話說,什麼是金流閘道?

金流閘道是一項服務,它安全地從你的結帳頁面取得顧客的付款資料,送到銀行與卡片組織進行核准,並把核准或拒絕的結果回傳給你的應用程式,通常只需幾秒鐘。

金流閘道與付款處理商(payment processor)有什麼不同?

嚴格來說,閘道是安全的前門,負責擷取並傳遞付款資料;處理商則在銀行之間搬運交易。實務上,Stripe、PayPal 與 Adyen 等現代服務商會把兩者,以及商店帳戶,打包成一項服務,因此這些詞常被混用。

我要接受信用卡付款,需要符合 PCI 規範嗎?

任何接受信用卡的企業,都必須以某種形式符合 PCI DSS 安全標準。使用託管式結帳頁面,或服務商提供的內嵌付款欄位,表示卡號永遠不會經過你的伺服器,這大幅降低你需要負責的範圍。你的服務商會告訴你適用哪一種自我評估。

什麼是交易代收方(merchant of record)?

交易代收方是在法律上向顧客銷售商品的企業,負責像是收取與繳交銷售稅或增值稅、處理退款與爭議款項等事務。Paddle 與 Lemon Squeezy 這類服務會替你擔任交易代收方;使用 Stripe 或 PayPal 時,通常由你自己擔任。

我能在 AI 建置的應用程式中加入付款功能嗎?

可以。AI 建置工具可以撰寫程式,把你的應用程式連接到 Stripe 等服務商:在伺服器上建立結帳工作階段、處理 Webhook,並更新訂單。你仍然需要自己在服務商那裡開一個帳戶,並在正式上線前於其測試模式中測試所有功能。

Mythex · Pricing · 用 AI 打造任何東西 · 網站與應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費的 AI 應用程式開發工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港)