微信开发-微信支付-回调(notify_url)失败-解决思路

首先,要提醒一下。微信支付跟支付回调是分开的。支付回调通常是微信收款成功后,回调你的php接口(带上$attach_data),在php接口中你根据$attach_data将购买的信息存到数据库。但微信并不保证支付回调一定成功。回调不成功时,微信会继续在30分钟内8次回调你的接口,如果一直返回false,微信应该不会无限次的去回调。这样,用户购买了,但购买记录没有存库,会很麻烦。

写微信支付时,我将生成订单参数写成了php接口,前端调php接口拿到订单参数,再在微信浏览器中调起微信支付,付款成功,但支付回调一直不成功。

我找出回调失败原因的思路是,在notify_url中,拿到微信返回来的数据,存到数据库里
//thinkphp中
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
D('ApplyShare')->update(1, ['apply_reason' => $xml]);
数据库中存到的数据如下:














1


然后就可以在本地用post方式将该xml数据调notify_url,找出错误信息
最后发现我的错误原因是将订单参数封装成接口时,文件(WxPay.Api.php和WxPay.Notify.php)的引入路径出错了,在notify.php文件中将上两个文件路径修改为绝对路径之后,回调成功了

你可能感兴趣的:(bakend,微信开发,php)