微信支付沙盒环境填坑

1,497 阅读1分钟

微信沙盒支付流程

  1. 下单请求地址修改,修改为https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder(沙盒环境下单只允许使用特定金额)
  2. 按正式流程生成sign
  3. 用正式sign,额外调用 api.mch.weixin.qq.com/sandboxnew/… 获得sandbox_signkey
  4. 用sandbox_signkey 替换用户自己的key,再生成sign签名
  5. 用第二次生成的sign来掉起支付
  6. 发起支付的瞬间就会有回掉通知

遇到的问题

  1. 调用https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder请求超时

     这个问题似乎无法有效的解决,会导致微信下单失败,只能多试几次
    
  2. 后端正确返回参数,APP支付时弹出:支付签名校验失败

     APP需要正式环境的签名,否则签名对不上
    
  3. 后端正确返回参数,APP拉起支付后弹出支付失败,无法调起微信APP,但后端有收到微信的回调通知

      沙盒环境无法拉起微信APP进行支付,但是客户端调起沙盒支付会收到特殊的code,直接判断支付成功就行了
    
  4. 微信沙盒环境下单时只允许特定金额(1.01和1.02),需注意回调时的实付金额

      实付金额只有101或102两个值,但项目在回调时有对金额进行校验,需要做特殊处理