Day 26 - WooCommerce: 定义虚拟帐号付款闸道

永丰金流收款 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 行使用虚拟帐号付款方式的实作还没开始写,因此还没办法完成整个流程。在明天的文章中,把这个实作的程序码写进去,就可以开始使用虚拟帐号付款了。我们明天见罗。


<<:  近似最短路径 (6)

>>:  DAY 28 Big Data 5Vs – Value(价值) – QuickSight(2)

DAY5-PHP这是什麽老东西

前言: PHP(Hypertext Preprocessor)作为网页开发的先驱,可是不知道是因为...

D3JsDay10 遇到元素资料不相等,用函式解决高人一等

绑定的资料和画面上的元素不相等 enter()函式—没放入元素的资料 先看以下程序码 <bod...

# Day9--老爸,我可以继承你的家产,但我不想长得太像你

引述自100Days of Swift-Class inheritance: The second ...

JS 10 - 原型继承

大家好! 今天只会简单介绍原型的继承关系,当我们介绍完原型链後,就会详细说明继承的方法。 我们出发吧...