当前位置:   article > 正文

微信开发-微信支付-回调(notify_url)失败-解决思路_支付回调参数错误

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

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

我找出回调失败原因的思路是,在notify_url中,拿到微信返回来的数据,存到数据库里
  1. //thinkphp中
  2. $xml = $GLOBALS['HTTP_RAW_POST_DATA'];
  3. D('ApplyShare')->update(1, ['apply_reason' => $xml]);
数据库中存到的数据如下:
  1. <xml><appid><![CDATA[wxe6c6ab2ef372xxxx]]></appid>
  2. <attach><![CDATA[2&85&139&0]]></attach>
  3. <bank_type><![CDATA[CFT]]></bank_type>
  4. <cash_fee><![CDATA[1]]></cash_fee>
  5. <fee_type><![CDATA[CNY]]></fee_type>
  6. <is_subscribe><![CDATA[Y]]></is_subscribe>
  7. <mch_id><![CDATA[129933xxxx]]></mch_id>
  8. <nonce_str><![CDATA[6xj94ajjika3io01f50z2cf9658fhhtj]]></nonce_str>
  9. <openid><![CDATA[ojN41uHLEXYuHkrJg2_PaDvxxxxx]]></openid>
  10. <out_trade_no><![CDATA[129933950120170618102333]]></out_trade_no>
  11. <result_code><![CDATA[SUCCESS]]></result_code>
  12. <return_code><![CDATA[SUCCESS]]></return_code>
  13. <sign><![CDATA[5060B8EE326BD346B7808D9996594A79]]></sign>
  14. <time_end><![CDATA[20170618102338]]></time_end>
  15. <total_fee>1</total_fee>
  16. <trade_type><![CDATA[JSAPI]]></trade_type>
  17. <transaction_id><![CDATA[4001862001201706186249259476]]></transaction_id>
  18. </xml>
然后就可以在本地用post方式将该xml数据调notify_url,找出错误信息
最后发现我的错误原因是将订单参数封装成接口时,文件(WxPay.Api.php和WxPay.Notify.php)的引入路径出错了,在notify.php文件中将上两个文件路径修改为绝对路径之后,回调成功了
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/132168
推荐阅读
相关标签
  

闽ICP备14008679号