VCA

用 AI 加上付費:Stripe 金流概觀

收錢的程式不能「看起來會動」就好。新手該懂的金流關鍵:託管結帳、webhook 為準、哪些絕不能交給前端。

發布於 更新於 審閱於 閱讀約 1 分鐘編輯方針#實作指南#金流#安全
屬於路線SaaS 路線

一句話解釋

金額、成功與否、重複付款都要對——這篇講金流的關鍵零件,以及為什麼「付款成功」要以後端 webhook 為準。

你會做出什麼

看懂金流的關鍵零件(Checkout、webhook、對帳),知道哪些絕不能讓前端決定。

收錢比你想的複雜

一般功能做錯,頂多畫面怪怪的;金流做錯,是真的錢出問題:算錯金額、明明付了卻沒開通、按兩下被扣兩次。所以付費這塊,「看起來會動」遠遠不夠。好消息是:你不需要自己處理信用卡,把最難的部分交給 Stripe 這類金流商即可。

最省心:用託管結帳(Checkout)

讓 Stripe 提供結帳頁面(Hosted Checkout),使用者在 Stripe 的頁面輸入卡號、付完再導回你的網站。這樣卡號完全不經過你的伺服器,省掉最麻煩的 PCI 合規。新手幾乎都該從這條路開始。

關鍵:付款成功以 webhook 為準,不是前端

最常見也最危險的錯:「使用者被導回成功頁,就把商品開通」。使用者可能根本沒付、或中途關掉。真正可信的訊號是 Stripe 從後端打給你的 webhook 事件。流程是:

三個不能省

  • webhook 驗簽 + eventId 去重:確認事件真的來自 Stripe(驗簽),且同一事件只處理一次(記 eventId,避免重送重複開通)。
  • idempotency(冪等):同一筆付款請求重送,結果要一致、不重複扣款。Stripe 有 idempotency key 機制。
  • 別自己存卡號:卡號交給 Stripe,你只存它回給你的對應 id。自己存卡號=巨大的合規與外洩風險。

Stripe 採「按筆交易抽成」,沒有月費門檻,但每筆有手續費——上線前先看清楚費率。

跟 AI 這樣說

明確要求:用 Stripe 託管 Checkout、開通邏輯放在 webhook(驗簽 + eventId 去重)、加 idempotency、不要在前端決定付款成功、不要自存卡號。把這些當驗收標準,AI 才不會給你一個「前端說付好了就開通」的危險版本。

下一步

常見問題

新手自己接金流安全嗎?會不會碰到信用卡合規(PCI)?

用 Stripe 的託管結帳(Hosted Checkout)就相對安全:卡號在 Stripe 的頁面輸入、完全不經過你的伺服器,你不存卡號,最重的 PCI 合規由 Stripe 扛。新手別自己做刷卡欄位,從託管結帳開始最穩。

為什麼不能用前端的「付款成功頁」來開通商品?

因為被導回成功頁不代表真的付款了——使用者可能中途取消、網路斷掉,甚至偽造那個頁面。唯一可信的訊號是 Stripe 從後端打給你的 webhook 事件(且要驗簽 + 去重)。前端成功頁只能當 UI 提示,不能當開通依據。

參考來源

  1. Stripe DocumentationStripe
  2. Stripe PaymentsStripe

SaaS 路線 的下一步: 從一頁式到 SaaS