微信支付笔记
最后更新于:2022-04-02 04:32:17
## 微信支付笔记
### 扫码支付
模式二
生成的`code_url`
`weixin%3A%2F%2Fwxpay%2Fbizpayurl%3Fpr%3DaPZrlHB`
`weixin%3A%2F%2Fwxpay%2Fbizpayurl%3Fpr%3DRAX5La7`
`weixin%3A%2F%2Fwxpay%2Fbizpayurl%3Fpr%3DQ9VCMmN`
可见同一订单号,每次生成的 `code_url` 是不同的。
这是未扫描之前。扫描一个在刷新看还会不会生成:
扫描后:
`weixin%3A%2F%2Fwxpay%2Fbizpayurl%3Fpr%3D7xYdgWO`
`weixin%3A%2F%2Fwxpay%2Fbizpayurl%3Fpr%3Dl1T3xDL`
`weixin%3A%2F%2Fwxpay%2Fbizpayurl%3Fpr%3D2CWDrlB`
可见还是会继续不断的生成不同的 `code_url` 。
* * * * *
现在支付一个,看还会不会生成二维码:
支付一个,看还能不能生成二维码,复制一个页面出来
- 找一个二维码扫描支付之后,再次扫描该二维码微信会提示:“订单已经支付,请勿重复支付”
- 扫描其他复制的页面的二维码也是一样。
现在再来看,现在还能不能继续生成二维码:
- 刷新页面再次生成二维码会提示,“该订单已经支付”,也就是说微信的二维码虽然每次是不同的,但都是关联一个商户订单号,所以微信支付不存在出现重复支付的问题。
* * * * *
还有一种情况我们没试:
一个二维码两个微信去扫描会怎样?
一个订单生成的两个二维码,两个微信去各扫描一个怎么办,一个微信支付了,另一个微信去扫描呢?
如果都打开了支付页面,准备输入密码完成支付呢?各种情况下,会出现重复支付吗?
>[danger] 注意:code_url有效期为2小时,过期后扫码不能再发起支付。
**定义:什么叫重复支付?**
>[danger] 对于商户(我们的系统)来说,同一个订单号,发起了多笔支付,并且成功了。
**商户订单号**
商户支付的订单号由商户自定义生成,微信支付要求商户订单号保持唯一性(建议根据当前系统时间加随机序列来生成订单号)。重新发起一笔支付要使用原订单号,避免重复支付;已支付过或已调用关单、撤销(请见后文的API列表)的订单号不能重新发起支付。
参见:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_2#
* * * * *
**临时笔记**
~~~
INVALID_REQUEST: 201 商户订单号重复
原来是订单号太短了的原因!
这是什么情况呢?
是生成的二维码超过30分钟吗?
~~~
last update:2017-6-30 23:49:09
';