iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
永豐金融APIs

永豐金 API - 豐支付 PHP SDK 設計及 WooCommerce 電商串接實戰系列 第 27

Day 27 - WooCommerce: 建立虛擬帳號付款訂單

鐵人賽進入尾聲了,和大家分享個好消息,這支 WordPress 付款外掛已經寫好送審到 WordPress 外掛目錄並已經官方審核通過囉,因此在鐵人賽的最後一天會公佈下載點,請拭目以待唷^^ 回歸正題,今天的要進行的是使用虛擬帳號付款方式,在永豐銀行收款平台建立虛擬帳號付款訂單。

處理付款

虛擬帳號付款的商業邏輯和信用卡付款有明顯的差別。當顧客進行信用卡付款的流程時,刷卡這一關能不能成功刷過,我們當下就可以取得 PayToken 來查詢訂單狀態得知結果了。

而虛擬帳號付款是屬於被動的等待通知,顧客有進行銀行轉帳消費的金額到虛擬帳號時,永豐銀行會即時通知我們的網站。

圖 21-1
圖 21-1: 文件第 6 頁

回顧一下永豐 API 文件中的第 6 頁流程示意圖中的第 3 步驟「回傳付款虛擬帳號」。我們今天的流程就是要在永豐銀行收款平台建立一筆虛擬帳號付款訂單,然後等待顧客實際付款。

改寫 process_payment

圖 27-2
圖 27-2: class-wc-gateway-sinopac-va.php

第 9 行 取得 QPay 實例。
第 13-14 行 取得商品名稱。訂單中可能有多筆,取第一筆當代表就好。
第 17-23 行 組成要給永豐金流收款 API 的訊息內文結構,atm_expired_date 是虛擬付款必填參數,設定此虛擬帳號的時效為 7 天。
第 27 行 送出建立信用卡訂單的請求到給永豐 API。
第 28 行 分析永豐 API 的回覆,見圖 27-3 說明。
第 30-32 行 有錯誤直接丟出 Exception 沒關係,WooCommerce 會補捉它並在 AJAX 跑完後顯示紅色錯誤訊息在頁面上。
第 34-42 行 永豐 API 給我們成功的回覆,清空購物車。
第 46 行 把交易資料存到 meta。
第 54 行 會走到這一行代表 API 回覆錯誤訊息,存 log,準備偵錯。

圖 27-3
圖 27-3: class-wc-gateway-sinopac-va.php

第 17 行 付款的是虛擬付款。
第 18-21 行 主要是要取得 AtmPayNo,讓它可以顯示給顧客,讓顧客知道要付款到該帳號完成消費。

第 31 行 回傳 ATM 資料。

流程總結

今天的流程更動的程式碼已經可以讓我們建立虛擬帳號訂單並取得永豐銀行的虛擬帳號了,接下來要把此組號碼顯示在網頁上給顧客,這樣顧客才知道要轉帳到那個銀行帳號。

接下來的實作細節,在明天和大家分享喔,我們明天見。

註:本日的範例程式碼可在這裡瀏覽


上一篇
Day 26 - WooCommerce: 定義虛擬帳號付款閘道
下一篇
Day 28 - WooCommerce: 顯示虛擬帳號付款資訊
系列文
永豐金 API - 豐支付 PHP SDK 設計及 WooCommerce 電商串接實戰30

尚未有邦友留言

立即登入留言