用 AI 加上付費:Stripe 金流概觀
收錢的程式不能「看起來會動」就好。新手該懂的金流關鍵:託管結帳、webhook 為準、哪些絕不能交給前端。
一句話解釋
金額、成功與否、重複付款都要對——這篇講金流的關鍵零件,以及為什麼「付款成功」要以後端 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 才不會給你一個「前端說付好了就開通」的危險版本。
下一步
- 先把帳號 / 權限做好:用 AI 做一個登入系統
- 規劃要存哪些訂單 / 付款資料:用 AI 設計資料庫
常見問題
新手自己接金流安全嗎?會不會碰到信用卡合規(PCI)?
用 Stripe 的託管結帳(Hosted Checkout)就相對安全:卡號在 Stripe 的頁面輸入、完全不經過你的伺服器,你不存卡號,最重的 PCI 合規由 Stripe 扛。新手別自己做刷卡欄位,從託管結帳開始最穩。
為什麼不能用前端的「付款成功頁」來開通商品?
因為被導回成功頁不代表真的付款了——使用者可能中途取消、網路斷掉,甚至偽造那個頁面。唯一可信的訊號是 Stripe 從後端打給你的 webhook 事件(且要驗簽 + 去重)。前端成功頁只能當 UI 提示,不能當開通依據。
參考來源
- Stripe Documentation — Stripe
- Stripe Payments — Stripe
SaaS 路線 的下一步: 從一頁式到 SaaS →