iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
Modern Web

Medusa.js 石化我的心系列 第 10

Day10 探查基本功能 - 付款流程

  • 分享至 

  • xImage
  •  

今天,我們要來簡單說明一下,在於 MedusaJSPayment Module 中粗略的付款流程是怎什麼。

付款流程

當使用者對於滿足購物後,會前往結帳,前往結帳的第一個動作,會建立一個 Payment Collection(收款作業)

Step 1 建立 Payment Collection

Payment Collection(付款),他會將購物車或者訂單來的付款細節資料進行儲存,
還包括 以下列項:

  • 下個步驟Payment Session(付款工作階段) 傳來的授權成功或者失敗的回應。
  • 當 付款授權成功後,該筆 Payment(支付記錄) 的狀態。
  • Payment Provider(第三方金流) 對於 Payment Session(付款工作階段) 發送要求時的處理狀態。

還有 MedusaJSPayment Collection 是支援分割付款的,假如你買 1000 個商品,
你可以分 600、400 以不同第三方金流去處理。

建立好 Payment Collection(付款)後,接下來就是根據使用者付款的方式,建立一個 Payment Session(付款工作階段)

Step 2 建立 Payment Session

Payment Session(付款工作階段)就是開始對第三方金流進行對話,我們先來說說關於此 Payment Session(付款工作階段)會有的資料屬性。

  • 跟第三方金流第一次交流時,儲存交流中的資料,例如第三方金流處理 id,方便跟蹤。
  • 當第三方金流授權該筆付款時,儲存授權後資料,將資料做日後對於收款作業。

注意:這個 Payment Session(付款工作階段)data(資料) 前端也是可以存取。所以只要將可公開的部分讓前端存取就好,例如 進入與 第三方金流上次溝通紀錄點的鑰匙(token)

Payment Session(付款工作階段) 也會儲存 與第三方金流的交流status(狀態),有以下狀態:

  • pending(等待授權)
  • require_more(需要更多資訊)
  • authorized(授權)
  • error(付款時發生錯誤)
  • cancel(已取消)

Step 3 建立 Payment

Payment Session(付款工作階段) 的狀態是 authorized,會建立一個  Payment data model,這筆付款可以被 capture(確認)或者refund(退款)

以下介紹一下 PaymentPayment session(付款工作階段) 等等的關聯性

  • 對於這 Payment 建立是與 Payment session(付款工作階段) 關聯的,所以 他們屬於同一個 Payment Collection(付款)
  • Payment 也會與 Payment Session(付款工作階段) 溝通的 Payment Provider(第三方支付) 有關聯。
  • Payment 也會多儲存 Payment Session(付款工作階段) 的 資料屬性。

再來說明一下 capture(確認) 以及 refund(退款) 是什麼

當訂單 出貨 或 到貨 時,可以點選 capture(確認)表示請款(補份或全部)。
當訂單被 取消 或 退貨 時 ,可以點選 refund(退款) 表示 退款(部分或全部)。

第三方金流Payment Provider

MedusaJS 中,只有一家金流插件可以馬上下載並且使用,就是 stripe
其他的都要自己寫程式串接。所以這次介紹了流程,也是方便各位如果要自己實作金流串接前,想了解一下支付過程。

明天玩玩看系統的付款流程 ლ(・´ェ`・ლ)


上一篇
Day9 探查基本功能 - 購物車
系列文
Medusa.js 石化我的心10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言