微信支付提示支付失败,但所有流水状态是成功的

因为微信返回的res.err_msg值,微信也不能保证一定准确,所以本人是根据订单的状态值来判断订单是否支付成功。此后出现了一些异常事件:1.有用户对同一商品购买了两次,原因是商城购买后弹框提示支付失败,但都扣款成功。2.我在弹框前断点打印订单状态是0(未支付的),而最后数据库里的状态却是成功的。3.最后根据用户反映,弹框提示有时是成功的,有时是失败的。

本人把微信支付的所有流程进行了检查,为了解决问题,这中间我自己给自己挖了一些坑,想必你们是不会有这样的错误的,所以在这里就不多说了。最后导致有这些问题的原因是本人的微信支付前端跳转速度太快了,而微信服务器返回xml数据,我再进行判断更新订单状态,速度太慢了。所以才会出现弹框提示支付失败,最后数据库里的状态却是成功的现象,因为弹框提示时,订单状态还未来的及更新。


最后一个延迟跳转就可以解决了

window.setTimeout('window.location="/payments/completed/id/<?php echo $userPaymentsp['order_id']?>"',2000);

//两秒后跳转新页面


在这里特别感谢我的同事方涛给我提供的帮助,向我推荐了强大postman异步调试工具。

在这里我也向大家推荐异步调试工具postman.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值