第一次串接 LINE Pay 的線上付款的沙盒是我還在做轉職的專案的時候,覺得好久遠啊~趕緊回想起來啊啊啊
在開始之前,我們必須前往 LINE Pay Developers 的 sandbox 創建帳戶,直接點擊註冊 sandbox 帳號的按鈕,填寫帳號註冊表,你專屬的 sandbox ID 和 密碼會被寄到你填寫的信箱中:
再前往商家後台 登入帳號,從左側側欄中的「管理付款連結」進入「管理連結金鑰」」,點「查詢」來得知 channel ID 和 secret~
channel ID 和 channel secret 是商店與 LINE Pay 之間的「身份驗證憑證」,主要用在 後端伺服器呼叫 LINE Pay API 時的請求 Header,如下:
POST /v3/payments/request
Host: sandbox-api-pay.line.me
Content-Type: application/json
X-LINE-ChannelId: {Channel ID}
X-LINE-ChannelSecret: {Channel Secret}
POST /v3/payments/{transactionId}/confirm
Host: sandbox-api-pay.line.me
Content-Type: application/json
X-LINE-ChannelId: {Channel ID}
X-LINE-ChannelSecret: {Channel Secret}
接下來我們來看看基本流程:
整個付款流程主要是由專案的 後端伺服器 與 LINE Pay 伺服器 進行互動。當使用者在前端按下「結帳」按鈕時,後端會向 LINE Pay 發送 付款請求 (Request API),該請求中必須包含 商品資訊、金額、幣別、訂單編號 以及 回調網址 (confirmUrl、cancelUrl)。LINE Pay 收到付款請求後,會回傳一組 交易編號 (transactionId) 與 付款導向網址 (paymentUrl)。後端再將該付款網址傳遞給前端,使用者會被導向至 LINE Pay 的付款頁面。進入付款頁面後,使用者會先看到 LINE Pay 認證介面,需要進行授權同意。授權完成後,系統會進入 付款授權流程,由 LINE Pay 伺服器確認顧客的身份與付款方式,若驗證成功,則進入 付款處理 (Payment Processing) 階段。此時,LINE Pay 會自動進行請款。如果付款成功,顧客會看到「付款完成頁面」;如果付款失敗或被取消,則會回到 cancelUrl 或顯示錯誤頁面。同時,LINE Pay 會將交易結果 redirect 回商店後端設定的 confirmUrl,並附帶 transactionId。後端此時需要再次呼叫 Confirm API,將 transactionId、交易金額與幣別送回 LINE Pay 驗證。若回應結果中的 returnCode = "0000",代表此次付款確認成功,訂單即可更新為已付款狀態;若為其他錯誤代碼,則代表付款未完成或需進一步處理。