iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0

永豐金流收款 API 在目前我們從文件看到的,支援信用卡付款及虛擬帳號 ATM 付款。信用卡付款方式在前幾天的文章已經完成了。今天,筆者要介紹的即是另一種付款方式 - 「虛擬帳號付款」。

Payment Gateway API

Day 20 「定義信用卡付款閘道」這篇文章已經提過,再重覆一次說明,方便從 Google 搜尋進來的朋友們參考。

WooCommerce 有定義好它自己的付款閘道,稱為 Payment Gateway API,任何付款方式都是透過此 API 進行功能實作。

以下連結是開發前可以先服用的良方,請先服用幫助消化喔 ^^"

WooCommerce 外掛本身帶上了幾個內建的付款方式,也是很不錯的參考範例,位置在這個目錄:

plugins\woocommerce\includes\gateways

像是銀行轉帳 (direct bank transfer)、貨到付款 (COD, cash on delivery)、支票 (cheque)、PayPal 等等。

圖 26-1
圖 26-1: WooCommerce 外掛的目錄 - geteways

讀者們可以直接複製其中一個付款方式進行修改,或者打開檔案參考寫法,會比較快上手喔!

虛擬帳號付款閘道

基於官方的範例,建立了一個 Class 名為 WC_SinoPac_Virtual_Account_Payment 的類別,繼承 Payment Gateway API 的 WC_Payment_Gateway。

圖 26-2
圖 26-2: 虛擬帳號付款閘道

第 8 行 這個 id 值非常重要,它會是以後我們讀取訂單,判斷訂單付款方式的依據。在 Day 20 建立信用卡付款閘道時,其 id 值為 sinopac-cc,這裡延續相同的前輟 sinopac,定義為 sinopac-va
第 11 行 在設定付款的頁面時顯示的標題。
第 12 行 在設定付款的頁面時顯示的介紹文字。
第 24 行 設定選項設定。
第 25 行 初始化設定。
第 68 行 Payment Gateway 用來處理付款時的邏輯。

載入類別

圖 26-3
圖 26-3: SinoPac_Payment controller

第 6-19 行 稍微修改了一下 load_payment_class,讓我們的虛擬帳號付款閘道能夠被引入。

第 31 行 註冊我們的虛擬帳號付款閘道到付款列表中。

設定選項

複製之前定義好的 settings-cc-payment.php,命名為 settings-va-payment.php。

圖 26-4
圖 26-4: settings-va-payment.php

目前檔案內容相同,但是使用不同設檔案的主要考量點是它們的付款邏輯不一樣,以後會有擴充功能的需求情境時,會新增的設定值欄位也會不同,避免互相影響,所比一開始就分成兩個不同的檔案載入。

有一點小修改的的方在 enabledtitledescriptionorder_button_text 四個選項,在預設的描述有些許不同,其它的設定選項和信用卡付款閘道一樣。

圖 26-5
圖 26-5: 付款方式設定

已經可以在付款方式的列表看到虛擬帳號付款方式可以啟用囉。

流程總結

圖 26-2第 55-69 行使用虛擬帳號付款方式的實作還沒開始寫,因此還沒辦法完成整個流程。在明天的文章中,把這個實作的程式碼寫進去,就可以開始使用虛擬帳號付款了。我們明天見囉。


上一篇
Day 25 - WooCommerce: 驗收永豐銀行刷卡流程
下一篇
Day 27 - WooCommerce: 建立虛擬帳號付款訂單
系列文
永豐金 API - 豐支付 PHP SDK 設計及 WooCommerce 電商串接實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言