我们已经知道,微信无论是微信内置JSAPI支付、H5外部浏览器支付、扫码支付,都需要通过异步回调接收支付结果。
本文简介如何获取微信支付通知。
仅需要一个在之前设置好的回调地址的方法里写上如下:
//处理微信支付回调 public function notify(){ $testxml = file_get_contents("php://input"); $jsonxml = json_encode(simplexml_load_string($testxml, ‘SimpleXMLElement‘, LIBXML_NOCDATA)); $result = json_decode($jsonxml, true);//转成数组, if($result){ //如果成功返回了 $out_trade_no = $result[‘out_trade_no‘]; if($result[‘return_code‘] == ‘SUCCESS‘ && $result[‘result_code‘] == ‘SUCCESS‘){ //执行业务逻辑 } } }
需要特别注意的地方:微信支付结果通知,会按一定规则重复发送通知,因此执行业务逻辑之前,需要判断是否是重复通知。
如果自己的业务逻辑执行成功后,可以return一个规定格式的XML,来告诉微信你已成功收到通知,并做好了相应处理。(当然不return也行。。。做好重复验证机制就好)