微信沙盒支付流程
- 下单请求地址修改,修改为https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder(沙盒环境下单只允许使用特定金额)
- 按正式流程生成sign
- 用正式sign,额外调用 api.mch.weixin.qq.com/sandboxnew/… 获得sandbox_signkey
- 用sandbox_signkey 替换用户自己的key,再生成sign签名
- 用第二次生成的sign来掉起支付
- 发起支付的瞬间就会有回掉通知
遇到的问题
-
调用https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder请求超时
这个问题似乎无法有效的解决,会导致微信下单失败,只能多试几次 -
后端正确返回参数,APP支付时弹出:支付签名校验失败
APP需要正式环境的签名,否则签名对不上 -
后端正确返回参数,APP拉起支付后弹出支付失败,无法调起微信APP,但后端有收到微信的回调通知
沙盒环境无法拉起微信APP进行支付,但是客户端调起沙盒支付会收到特殊的code,直接判断支付成功就行了 -
微信沙盒环境下单时只允许特定金额(1.01和1.02),需注意回调时的实付金额
实付金额只有101或102两个值,但项目在回调时有对金额进行校验,需要做特殊处理