收到了微信发送过来的支付结果需要做一些验证,然后要给微信服务器一个回应 ... 验证数据处理回应的功能可以单独放在一个类里面 .. 在这个 notify_handler 里面,先导入一个文件 .. 位置是 WC_WXPAY .. 加上 includes ..class-wc-gateway-wxpay-notify-reply.php ..
然后在方法里面添加一个 notify .. 新建一个 WC_Gateway_Wxpay_Notify_Reply 这个类的实例 .. 它需要 $order ,还有 $gateway ..
这个类会继承微信支付 SDK 里的 WxPayNotify .. 所以这个类的实例上会有一个 Handle 方法 .. 下面用一下 notify .. 上的 Handle 方法 .. 它需要 $config .. 第二个参数是,是否需要签名 .. 先把它设置成 false ..
最终它会生成需要的回复数据,响应给微信服务器,这个数据是 xml 格式的 .. 为了防止跟我们的这个 REST 接口有冲突,下面可以执行一下 exit ..
然后在方法的最上面可以设置一下 header .. Content-Type 设置成 application/xml ..
创建类
再去创建需要的类 .. 放在 includes 下面,名字是 class-wc-gateway-wxpay-notify-reply.php .. 添加一个 php 开始标记 .. 下面是一段防止单独执行的代码 ..
然后去导入几个文件 .. 位置是 WC_WXPAY .. 加上 includes .. wxpay-sdk .. lib 下面的 WxPay.Api.php .. 再导入一个 WxPay.Data.php .. 还需要一个 WxPay.Notify.php ..
下面去创建一个类 .. 名字是 WC_Gateway_Wxpay_Notify_Reply .. 它要继承一下 WxPayNotify 这个类 ..
在类里面先添加一个构造方法 .. __construct .. 接收两个参数 .. 一个是 $order ,表示订单 .. 还有一个是 $gateway .. 它是支付方法对象 ..
方法里面设置一下 $this .. order ,让它等于 $order .. 再设置一下 $this .. gateway.. 它的值是 $gateway ..
这个 $gateway 里面有一个 config 属性 .. 单独再设置一个 this .. config .. 让它等于 $gateway 上的 config .. 它里面会包含微信支付的一些配置信息 .. 比如商户 id,应用 id 这些东西 ..