微信支付接口调用的后续问题

在完成PC、APP(基于APICLOUD开发,所以用APICLOUD封装的微信支付接口)订单支付开发以后,进行测试,发现一个问题,如果在PC或者APP生成订单,点击确认支付时,如果取消支付,会出现一下问题:

在PC支付然后取消,重新在PC支付没有问题,

在APP支付然后取消,重新在APP支付没有问题

但是,如果是PC支付取消后,在APP或者反过来操作,那么就会支付失败,在这里纠结很久,没有测试出来问题所在,后来经过打印微信APP支付时的预支付状态,发现问题 ,代码如下:

微信支付接口调用的后续问题_第1张图片

PC生成订单,支付过程取消,然后切换到APP去支付,在预支付时,会打印如下:

微信支付接口调用的后续问题_第2张图片

恍然明白,之所以支付宝没有出现这样的问题,是因为支付宝不存在预支付这个环节,微信之所以有这个问题,是因为当点击支付唤醒微信支付时,首先进行了预支付,预支付成功后才会出现输入密码等界面,当取消时,预支付订单号并没有消失,切换PC或者APP不同的访问来源,用同一个订单号再次预支付,会出现订单号重复的报错。

 

你可能感兴趣的:(微信)