收藏
回答

使用uni-app开发微信支付时 调用uni.requestPayment报错:fail err?

在使用uni.requestPayment 调起支付时出现:fail errors。

后端返回数据基本和官方的实例一样,后端签名也是按照官方步骤来的

怎么解决,一直没有头绪。求大神指点指点!














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

6 个回答

  • 张波
    张波
    2020-10-09

    兄弟怎么解决的?

    2020-10-09
    有用
    回复
  • qinpengfei
    qinpengfei
    2020-08-15

    兄弟,你解决了吗?我也遇到这个问题了,麻烦分享下

    2020-08-15
    有用
    回复 1
    • Yan tao
      Yan tao
      2020-08-28
      兄弟,解决了么,遇到同样问题
      2020-08-28
      回复
  • 微信支付技术助手8
    微信支付技术助手8
    2020-07-28

    1,签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。麻烦按照以上几点进行排查。

    2,打印后台传过来的参数,和生成订单的参数进行对比。尤其注意APPID等关键参数。

    2020-07-28
    有用
    回复 4
    • undefined
      undefined
      2020-07-28
      检查过了,未发现相关错误 ,相关报错只有一个:fail:errors
      2020-07-28
      回复
    • 微信支付技术助手8
      微信支付技术助手8
      2020-07-28回复undefined
      你把后台传回来的参数和生成订单的参数打印一下,仔细对比一下。
      2020-07-28
      回复
    • undefined
      undefined
      2020-07-28回复微信支付技术助手8
      对过了,一样的
      2020-07-28
      回复
    • Yan tao
      Yan tao
      2020-08-28
      大佬,遇到同样问题,困扰两天,麻烦分享下经验
      2020-08-28
      回复
  • 谋谋谋
    谋谋谋
    2020-07-27

    manifest.json 里边配置对了么 如果对了那就是后端参数有问题

    wx.requestPayment({

        timeStamp:res.data.req.minreq.timestamp,

        nonceStr: res.data.req.minreq.noncestr,

        package: res.data.req.minreq.package,

        signType:res.data.req.minreq.signtype,

        paySign: str,

        success: function (res) {

            uni.showToast({

            title:"充值成功",

            icon:"none"

            })

        },

        fail: function (err) {

            uni.showToast({

            title:"充值失败请重试",

    icon:"none"

            })

        }

    });

    2020-07-27
    有用
    回复 12
    查看更多(7)
  • Admin ²º²³
    Admin ²º²³
    2020-07-27

    你这个data是后端发起支付接口返回的data吗?

    这数据不对啊,大小写不对,另外,格式也看起来怪怪的。


    2020-07-27
    有用
    回复 1
    • undefined
      undefined
      2020-07-27
      orderInfo的数据格式好像没有大小写吧,我找到的全部是没有大小写的
      2020-07-27
      回复
  • Listen
    Listen
    2020-07-27
    const data = res.data
    const OrderInfo = {
      timeStamp: data.timeStamp,
      nonceStr: data.nonceStr,
      package: `prepay_id=${data.prepayId}`,
      signType: 'MD5',
      paySign: data.paySign,
      appId: data.appId
    }
    
    注意请求参数区分大小写
    
    参考:https://uniapp.dcloud.io/api/plugins/payment?id=orderinfo
    
    

    2020-07-27
    有用
    回复 5
    • undefined
      undefined
      2020-07-27
      没有吧,好像不区分大小写吧,我改了也没用阿
      2020-07-27
      回复
    • Listen
      Listen
      2020-07-27回复undefined
      你好好检查,看看你传的package是啥?
      2020-07-27
      回复
    • undefined
      undefined
      2020-07-27
      你这是小程序的吧,我这是app支付哦
      2020-07-27
      回复
    • undefined
      undefined
      2020-07-27
      而且官方的package是让返回Sign=WXPay阿
      2020-07-27
      回复
    • Listen
      Listen
      2020-07-27回复undefined
      哦,告辞!
      2020-07-27
      回复
登录 后发表内容
问题标签