异步接收支付结果

异步接收

无论是公众号支付,原生扫码支付还是小程序支付,用户支付后,微信都会通过异步的方式通知WeiPHP系统。系统自动更新完订单状态后,会根据之前统一下单的callback参数,再把支付结果以数组的方式传回给开发者。

如callback设置为Common/Service/payok时,WeiPHP系统会这样调用

  1. D('Common/Service')->payok($data);

实现回调,其中支付结果的数组($data)的参数请参考微信官方的说明

开发者得到支付的参数后,就可以在自己定义的回调里进行具体的业务开发了。

回调方法payok的例子:

  1. public function payok($res_data)
  2. {
  3. // 记录下日志
  4. add_debug_log($res_data, 'payok');
  5. // 进行具体的业务操作
  6. // TODO
  7. }

主动查询

如果未收到支付通知的情况,开发者可以调用查询订单接口得到支付结果,调用方法如下:

  1. $appid = '你的公众号appid';
  2. $out_trade_no'=>'商户系统内部订单号';
  3. $res = D('weixin/Payment')->query_order($appid, $out_trade_no);

系统会以数组的方式返回查询结果

至此支付流程完成,开发者得到支付结果后进行相应的业务开发。