用户登录

在 notify_handler 这个方法里可以得到微信服务器发送过来的支付结果 .. 这里可以先添加一个 $body_raw .. 它的值用一下 $request 上的 get_body .. 得到通过里的数据 .. 这个数据的格式是 xml .. 所以需要处理一下才能用 ..

上面先导入进来一个文件 .. 位置是 WC_WXPAY .. includes .. wxpay-sdk .. lib 下面的 WxPay.Data.php ..

下面添加一个 $wxpay_data ... 新建一个 WxPayDataBase ..

再添加一个 $body .. 它的值,用一下 $wxpay_data 上的 FromXml 方法 .. 处理一下得到的通知里带的原始数据,就是 xml 格式的数据 .. 这个 FromXml 方法可以把 xml 数据转换成数组 .. 这样我们就可以使用它了 ..

下面添加一个 $out_trade_no .. 它的值用一下 str_replace .. 替换一下字符串里的 sandbox .. 替换成空白 .. 数据是 $body 里的 out_trade_no .. 如果插件启用了 sandbox 功能,外部交易号里面会包含一个 sandbox 前缀 ..

再根据这个外部交易号得到对应的订单 .. $order 的值用一下 wc_get_order .. 把订单号告诉这个方法 .. 这里就是 $out_trade_no ..

下面再根据这个订单号得到对应的支付方法 .. $gateway .. 用一下 wc_get_payment_gateway_by_order .. 它需要一个 $order ..

回复微信的时候还需要用到一些配置,比如应用 id,商户 id 等等 .. 这些信息是在 $gateway 上的 config 这个属性里面 ..

再把这个微信支付结果数据输出到日志里检查一下 .. 用一下 gateway 上的 log .. 输出 body .. 级别是 debug .. 第三个参数设置成 true ...

上面可以再输出一条日志 .. 微信支付结果 ..

测试

回到网站前台 ... 提交一个订单 .. 支付方法选择 微信支付 ... 按一下支付按钮 .. 会返回订单感谢页面 .. 上面会显示微信支付二维码 .. 打开微信手机客户端 ... 扫一下二维码 .. 立即支付 ... 再确认支付 ..

完成以后去找一下微信支付的日志 ..

这里会显示接收到的微信服务器那里发送过来的支付结果 .. 你可以选择利用这个结果里的数据 ..

因为我们的应用收到支付通知以后并没有做出回应 .. 所以微信服务器会每隔一段时间再发送一次这个支付结果 ..

检查微信支付结果数据《 电商网站案例:微信扫码支付 》

统计

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

社会化网络

关于

微信订阅号

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