永豐金流收款 API 在目前我們從文件看到的,支援信用卡付款及虛擬帳號 ATM 付款。信用卡付款方式在前幾天的文章已經完成了。今天,筆者要介紹的即是另一種付款方式 - 「虛擬帳號付款」。
在 Day 20 「定義信用卡付款閘道」這篇文章已經提過,再重覆一次說明,方便從 Google 搜尋進來的朋友們參考。
WooCommerce 有定義好它自己的付款閘道,稱為 Payment Gateway API,任何付款方式都是透過此 API 進行功能實作。
以下連結是開發前可以先服用的良方,請先服用幫助消化喔 ^^"
WooCommerce 外掛本身帶上了幾個內建的付款方式,也是很不錯的參考範例,位置在這個目錄:
plugins\woocommerce\includes\gateways
像是銀行轉帳 (direct bank transfer)、貨到付款 (COD, cash on delivery)、支票 (cheque)、PayPal 等等。
圖 26-1: WooCommerce 外掛的目錄 - geteways
讀者們可以直接複製其中一個付款方式進行修改,或者打開檔案參考寫法,會比較快上手喔!
基於官方的範例,建立了一個 Class 名為 WC_SinoPac_Virtual_Account_Payment 的類別,繼承 Payment Gateway API 的 WC_Payment_Gateway。
圖 26-2: 虛擬帳號付款閘道
第 8 行 這個 id 值非常重要,它會是以後我們讀取訂單,判斷訂單付款方式的依據。在 Day 20 建立信用卡付款閘道時,其 id 值為 sinopac-cc
,這裡延續相同的前輟 sinopac,定義為 sinopac-va
。
第 11 行 在設定付款的頁面時顯示的標題。
第 12 行 在設定付款的頁面時顯示的介紹文字。
第 24 行 設定選項設定。
第 25 行 初始化設定。
第 68 行 Payment Gateway 用來處理付款時的邏輯。
圖 26-3: SinoPac_Payment controller
第 6-19 行 稍微修改了一下 load_payment_class,讓我們的虛擬帳號付款閘道能夠被引入。
第 31 行 註冊我們的虛擬帳號付款閘道到付款列表中。
複製之前定義好的 settings-cc-payment.php,命名為 settings-va-payment.php。
圖 26-4: settings-va-payment.php
目前檔案內容相同,但是使用不同設檔案的主要考量點是它們的付款邏輯不一樣,以後會有擴充功能的需求情境時,會新增的設定值欄位也會不同,避免互相影響,所比一開始就分成兩個不同的檔案載入。
有一點小修改的的方在 enabled
、title
、description
、order_button_text
四個選項,在預設的描述有些許不同,其它的設定選項和信用卡付款閘道一樣。
圖 26-5: 付款方式設定
已經可以在付款方式的列表看到虛擬帳號付款方式可以啟用囉。
圖 26-2 的第 55-69 行使用虛擬帳號付款方式的實作還沒開始寫,因此還沒辦法完成整個流程。在明天的文章中,把這個實作的程式碼寫進去,就可以開始使用虛擬帳號付款了。我們明天見囉。