收藏
回答

b2b支付的接口wx.requestCommonPayment,线上版本中无法发起支付?

开发工具中测试时,可以发起支付,然后用开发者的微信扫描可以正常支付,也支付成功,但不管是用真机调试,还是正式发布的线上版本,都无法发起支付。再返回到开发工具调试时,提示“702005 out_trade_no重复,请更换新单号重试”的错误。但这个单号在真机中并没有成功发起支付啊。

回答关注问题邀请回答
收藏

3 个回答

  • 神经蛙
    神经蛙
    02-02

    你单号是不是用的整数。如果是整数,检查下是不是超过了整数某个语言的最大值,导致传递过程出问题。建议传递用字符串试试。

    02-02
    有用 1
    回复 2
    • 阿亮减肥中
      阿亮减肥中
      02-02
      确实是整数,这个倒没注意,我加个字符试试。先谢谢
      02-02
      回复
    • 阿亮减肥中
      阿亮减肥中
      02-02
      试了一下,不是这个原因,还是感谢你
      02-02
      回复
  • 阿亮减肥中
    阿亮减肥中
    02-02
    wx.requestCommonPayment({
      signData: JSON.stringify({
        mchid: app.globalData.mchid,
          out_trade_no: that.data.bmCode,
          description: that.data.description,
          amount: {
            order_amount: that.data.total*100
          },
        env: 0
      }),
      paySig: paysign,
      signature: signature,
      mode: 'retail_pay_goods',
      success(res) {
        console.log('支付成功', res)
      },
      fail(errMsg, errCode) {
        console.error(errMsg, errCode)
        // console.log('支付失败:' + res)
      },
      complete(res){
      console.log('结束的回调函数:' + res)
      }
    })
    

    out_trade_no是按时间戳自动生成的,支付签名和用户态签名,是从后台获取到的。主要的问题不是单号重复,而是真机环境下不能发起支付。

    02-02
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    02-02
    有用
    回复
登录 后发表内容