Payment Service(一): 付款流程
在購買商品的過程中,付款時需要金流系統提供各種不同支付方式。除了付款,退貨時也需要退款。如果商品是訂閱制,不續訂時也須提供停止訂閱的服務,除此之外,每個月的續訂,系統必須能夠確認有沒有扣款成功。因此,一個金流系統的功能需包含:付款、退款、取消訂閱和檢查訂閱狀態。
Wiki topics:
FIN · Fintech & Banking
Payment Service(一): 付款流程
在購買商品的過程中,付款時需要金流系統提供各種不同支付方式。除了付款,退貨時也需要退款。如果商品是訂閱制,不續訂時也須提供停止訂閱的服務,除此之外,每個月的續訂,系統必須能夠確認有沒有扣款成功。因此,一個金流系統的功能需包含:付款、退款、取消訂閱和檢查訂閱狀態。
付款依照不同的支付方式有不同的流程,手機和網頁支付的支付方式也不大一樣。
手機支付(Apple/Google)
手機如果已經有登入一些金流商,可以由前端直接導到付款頁面。再由前端或金流商通知後端訂單狀態。

網頁支付(ecpay/paypal)
網頁支付通常需要選擇支付方式之後,再由後端提供付款連結給前端,前端在導到金流商付款頁面,付款完成後,由金流商通知後端訂單狀態。

db schema設計
以手機支付為例,為了要讓金流系統可以更好的支援更多金流商,設計db table的時候,可以把金流系統本身的訂單邏輯和金流商的收據或訂單邏輯隔離開,當需要新增一個金流商時,就可以新增一張table,而不需要更動原本table的欄位,只需要在程式裡把金流系統本身訂單的欄位跟金流商的收據的欄位做mapping即可。

Reference:
- https://ithelp.ithome.com.tw/articles/10197489?sc=pt
- https://medium.com/ikala-tech/payment-manager-%E7%9A%84%E8%A8%AD%E8%A8%88%E5%8E%9F%E5%89%87%E5%92%8C%E5%AF%A6%E8%B8%90-%E7%B5%B1%E4%B8%80%E7%AE%A1%E7%90%86%E5%A4%9A%E7%A8%AE%E6%94%AF%E4%BB%98%E7%AE%A1%E9%81%93%E7%9A%84%E5%BF%83%E5%BE%97%E5%88%86%E4%BA%AB-104f4314608f
- https://medium.com/starbugs/payment-system-%E5%AF%A6%E6%88%B0%E7%B3%BB%E5%88%97-%E4%B8%89-%E9%96%8B%E7%99%BC%E5%89%8D%E7%9A%84%E5%85%B1%E5%90%8C%E9%A0%88%E7%9F%A5-69666666204f
- https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions?hl=zh-tw
- https://developer.apple.com/documentation/appstorereceipts/responsebody
메타데이터
- post_id
- f8a57d6a5393
- slug
- payment-service-一-付款流程-f8a57d6a5393
- url
- https://medium.com/hjorus-sharing/payment-service-%E4%B8%80-%E4%BB%98%E6%AC%BE%E6%B5%81%E7%A8%8B-f8a57d6a5393
- canonical_url
- https://medium.com/hjorus-sharing/payment-service-%E4%B8%80-%E4%BB%98%E6%AC%BE%E6%B5%81%E7%A8%8B-f8a57d6a5393
- author_url
- https://medium.com/@hjoruhjoru
- status
- ok
- fetched_at
- 2026-06-11 15:16:29