ArcherHuang / e-commerce

2 stars 2 forks source link

金流串接 #96

Closed jacs0110 closed 5 years ago

jacs0110 commented 5 years ago

藍新金流串接

測試帳號 https://cwww.newebpay.com/main/login_center/single_login

-- 目前金流串接流程

  1. 透過 GET /orders/:order_id/payment 將訂單 (order) 轉換為交易參數 (tradeInfo),並將資料送到前端的 form

  2. 使用者會將 form 發送至藍新金流(前端範例:https://codepen.io/wbruce0110/pen/QWWGrrE ) 實際上我們不需要讓使用者可以有編輯這個 form 的權力,只是讓他確認資訊而已

  3. 使用者將 form 送出後,會跳轉至藍新金流的付款頁面

  4. 使用者付款成功後,藍新金流會打我們的 POST /newebpay/callback 並回傳交易資料,收到資料會會更新訂單的付款狀態 (paymentStatus)

Stripe 金流串接

  1. Stripe 商店名稱為 AJA-EC,已經邀請阿全&Alvis 加入成為 team member (developer role),需要自訂登入的帳號密碼

  2. 目前都是使用 Test Mode,左邊導覽列最下面有可以切換模式的地方。另外只要是處在 Test Mode,所有頁面上方都會顯示 TEST DATA Imgur

  3. API keys 頁面可以找到 Publishable key 和 Secret key。Publishable key 是提供前端 JS 使用,Secret key 是提供 Server 端使用

  4. 前端範例 https://codepen.io/wbruce0110/pen/xxxRMwm?editors=1010

    • 前端 JS code 主要用來收集使用者的付款資訊,並打包成 token 送至後端
    • 目前前端 form 的 action 目標為 https://05dff78e.ngrok.io/orders/postStripePayment ,若要測試請將 api 改為測試 server 或正式 server 的 api 連結 (https://xxxx/orders/postStripePayment)
    • 前端表單需帶入訂單資訊,主要為 amount & sn,name & email 非必要,屆時需要變成 hidden input 讓我們自己帶入訂單資訊 (不需要讓使用者自己輸入,只要讓使用者看到確認即可)
  5. 後端驗證

    • 前端表單帶入的訂單金額 (amount) 資訊,是否和資料庫中的訂單資料金額相同
    • 訂單是否存在、是否尚未繳費
    • 確認 Stripe 回傳的資料:paid: true 以及 description: sn 資料存在
jacs0110 commented 5 years ago

update stripe documentation