最近写了一个ThinkPHP5的微信支付SDK, 感觉微信官方SDK有很多值得学习的地方, 其中异步通知算是写的比较巧妙的, 下面就做一下分析:
首先看一下我写的SDK的使用方法:
$notify = new \wxpay\Notify();
$notify->Handle();
由此, 我们需要去看一下 extend\wxpay\Notify.php, 我们看到
class Notify extends \WxPayNotify
{
public function NotifyProcess($data, &$msg)
{
// 1.校检参数
...
// 2.微信服务器查询订单,判断订单真实性(可不需要)
...
// 3.去本地服务器检查订单状态(强烈建议需要)
...
// 4.检查订单状态
...
}
}
这里我们继承了 WxPayNotify类 并写了一个主函数 NotifyProcess, 主函数中调用了很多方法, 对数据校检, 对订单处理等
那么, 我们回头看, notify->Hanle() 到底做了什么, 我们为什么要写 NotifyProcess()