用户登录

现在我们这个支付宝插件入口文件里的代码有点多,可以把一些代码放在单独的一个类里面 .. 比如把处理支付宝通知结果的代码放在一个类里 ..

在插件的 includes 里面新建一个 php 文件 .. 名字是 class-wc-gateway-alipay-notify.php .. 一个开始的 php 标记 .. 再加上一段防止单独执行的代码 ..

文件里面定义一个 class .. 类的名字是 WC_Gateway_Alipay_Notify .. 在这个类里面先添加一个构造方法 .. public function .. __construct ..

在插件里面,挂载了一个 woocommerce_thankyou_alipay 动作 .. 它是支付成功以后出现的感谢页面 .. 在这个页面上我们处理了支付宝同步返回的数据 .. 这个挂载动作可以把它放在刚才我们创建的类的构造方法里面 ..

在类里挂载动作,它的处理方法可以使用这个类里的方法 .. 一个 array .. $this .. 表示当前这个类的实例 .. 第二个项目就是这个类里的一个方法,这个方法就是动作的处理方法 ..

这个名字可以换成 return_handler .. 再回来剪切一个函数 .. 就是这个 woocommerce_alipay_thank_you .. 把它粘贴到这个类里面 .. function 前面加上一个 public .. 函数的名字要改一下,换成 return_handler ..

在这个方法里面用到了一个验证数据签名的函数 .. 这个函数也可以把它放在这个类里面 .. $this .. verify_sign ..

回到插件 .. 再剪切一下这个 woocommerce_alipay_verify_sign .. 粘贴到这个类里面 .. 修改一下 .. function 前面加上 public ..

名字换成 verify_sign ..

异步通知

在插件里我们还定义了一个 REST 接口 .. 用它来处理支付宝异步发送的支付结果 .. 剪切一下这段代码 .. 把它们放在这个类里面 ..

这个挂载动作可以放在类的构造方法里面 .. 修改一下处理方法 .. 一个 array .. $this 表示当前实例 .. 方法的名字可以改一下 .. 改成 rest_api_init ..

修改一下 .. function 前面加上一个 public .. 方法的名字是 rest_api_init .. 这个方法里面用了 register_rest_route 注册了一个路由 .. 这个路由的处理方法可以再改一下 .. 一个 array .. $this .. 名字可以换成 notify_handler ..

再修改一下这个方法 .. 加上 public .. 名字换成 notify_handler .. 这里面用到了一个验证签名用的函数 .. 把它换成 $this .. verify_sign ..

实例化

回到插件入口 .. 这里的 woocommerce alipay init .. 会在启用的插件都载入以后执行 .. 在这个函数里面 .. 把刚才创建的类包含进来 .. 下面创建一个 WC_Gateway_Alipay_Notify 这个类的实例 ..

改进:把处理支付通知的代码放在单独的类里《 电商网站案例:支付通知 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点