永丰金流收款 API 在目前我们从文件看到的,支援信用卡付款及虚拟帐号 ATM 付款。本次铁人赛在也会实作这两种付款方式,而今天,笔者要介绍的即是信用卡付款方式。
WooCommerce 有定义好它自己的付款闸道,称为 Payment Gateway API,任何付款方式都是透过此 API 进行功能实作。
以下连结是开发前可以先服用的良方,请先服用帮助消化喔 ^^"
WooCommerce 外挂本身带上了几个内建的付款方式,也是很不错的参考范例,位置在这个目录:
plugins\woocommerce\includes\gateways
像是银行转帐 (direct bank transfer)、货到付款 (COD, cash on delivery)、支票 (cheque)、PayPal 等等。
图 20-1: WooCommerce 外挂的目录 - geteways
读者们可以直接复制其中一个付款方式进行修改,或者打开档案参考写法,会比较快上手喔!
基於官方的范例,建立了一个 Class 名为 WC_SinoPac_Credit_Card_Payment 的类别,继承 Payment Gateway API 的 WC_Payment_Gateway。
图 20-2: 信用卡付款闸道
这个档案放在 includes 目录中,稍候载入。
从程序码的编排风格来看,和编写 Sinopac PHP SDK 时差别非常多。既然进入 WordPress 的世界,就入境随俗采用 WordPress 的程序码风格标准。如果转换上有困难,可以参考笔这在去年铁人赛写的文章使用 PHP CodeSniffer 帮助熟悉 WordPress 程序码风格。
第 8 行 这个 id 值非常重要,它会是以後我们读取订单,判断订单付款方式的依据。
第 11 行 在设定付款的页面时显示的标题。
第 12 行 在设定付款的页面时显示的介绍文字。
第 24 行 设定选项设定。在 Day 21 有详细介绍。
第 25 行 初始化设定。
第 68 行 Payment Gateway 用来处理付款时的逻辑。
信用卡付款闸道的 PHP 档案建立好了,需要有地方载入它。
图 20-3: 初始化档案内容
在昨天的初始化档案的 Todo 字串下,载入了 controller,并实例化它,执行 init 方法。
图 20-4: SinoPac_Payment controller
这个地方有两个重点,在第 9-10 行两个 Hook。
第 9 行 要载入定义信用卡付款闸道的 PHP 档案,由於该档案是继承 WC_Payment_Gateway,是在 WooCommerce 载入後才有,因此必须挂在 plugins_loaded 这个 Hook 下。
注:plugins_loaded 是在 WordPress 生命周期中,在所有外挂载入後触发的第一个 Hook。
第 10 行 要注册我们的付款方式到列表中。
图 20-5: 付款方式列表
这样在 WooCommerce 的付款方式设定中,就可以看到我们刚刚定义的信用卡付款闸道罗。
接下来还有选项设定的部分要做,像是让使用者可以自定付款方式标题及介绍、设定该付款方式是在正式环境或是沙盒测试、填入永丰金流 API 需要的相关栏位等等。
这些选项就在 Day 21 进行规划,我们明天见罗!
<<: EP22 - 持续部署使用 Octopus Deploy 二部曲,安装 Octopus Deploy
本系列文章同步发布於笔者网站 前一篇文章以比较非技术角度介绍了 OpenStack 这个专案。今天开...
前言 上一篇介绍 interact 基本的用法,可以设计使用者介面(UI),但无法取得输入值,本篇介...
1. 产品列表 (1)制作页面(元件) src/views/Userboard.vue 产品navb...
28 - Find the missing letter Don't say so much, ju...
Day 5 进到了网站中最常见需要做功能性的环节 Button <Button variant...