updream
updream
  • 发布:2020-05-22 12:15
  • 更新:2020-08-25 19:18
  • 阅读:4348

uniapp 微信支付调不起来 返回 "errMsg": "requestPayment:fail errors"

分类:uni-app

uniapp Android调用 微信支付的直接返回这个是什么意思?
前端的问题还是后端的问题?

err:返回的


{
"errMsg": "requestPayment:fail errors"
}

这是代码


let orderInfoObj = {
"appid": res1.data.data.appid,
"noncestr": res1.data.data.noncestr,
"package": res1.data.data.package,
"partnerid": res1.data.data.partnerid,
"prepayid": res1.data.data.prepayid,
"timestamp": res1.data.data.timestamp,
"sign": res1.data.data.sign
}
let orderInfoStr = JSON.stringify(orderInfoObj)
uni.requestPayment({
provider: 'wxpay',
orderInfo: orderInfoStr,
success: (respay) => {
console.log(respay)
},
fail: (err) => {
console.log(err)
//直接走到这里了!!!
},
complete: (e) => {
}
});

而且 orderInfo 格式不管是字符串还是json格式都试了,返回这都是直接走失败了?
能判断到底是怎么失败的吗?
谢谢感谢

补充 https://pay.weixin.qq.com/wiki/tools/signverify/ 这是微信公众平台支付接口调试工具

2020-05-22 12:15 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com

"errMsg": "requestPayment:fail"
一样的问题!!!来个大神指导下吧,快崩溃了

  • 1***@qq.com

    你们解决了吗,我也遇到这个问题,字符串 json格式都不行 大写 小写都不行

    2021-10-27 10:23

1***@qq.com

1***@qq.com - 想要得到的一切,都要努力去争取

我也是这个问题 ,求大神教 付费也行

1***@qq.com

1***@qq.com - 想要得到的一切,都要努力去争取

const orderinfo = JSON.stringify({
appid: info.appid,
noncestr: info.noncestr,
package: info.package,
partnerid: info.partnerid,
prepayid: info.prepayid,
timestamp: info.timestamp,
sign: info.sign
})
uni.requestPayment({
provider: 'wxpay',
orderInfo: orderinfo,
success: (e) => {
console.log("success", e);
uni.showToast({
title: "感谢您的赞助!"
})
},
fail: (e) => {
console.log("fail", e);
uni.showModal({
content: "支付失败,原因为: " + e.errMsg,
showCancel: false
})
},
// complete: () => {
// this.providerList[index].loading = false;
// }
})

1***@qq.com

1***@qq.com - 想要得到的一切,都要努力去争取

求大神教 付费也行 ,这个应该怎么解决啊 要被逼疯了

  • updream (作者)

    我的ios的可以,Android的不行,真是奇怪,别人一般都是ios不行

    2020-05-27 15:21

  • 1***@qq.com

    回复 updream: 大哥 你解决了没哟

    2020-05-27 15:26

  • 4***@qq.com

    回复 1***@qq.com: 大哥,你解决没和你问题一样

    2020-11-18 11:46

8***@qq.com

8***@qq.com - 842022895

object string 都试了还不行 真的是服了

  • updream (作者)

    https://pay.weixin.qq.com/wiki/tools/signverify 让后台检查一下, 排查一下,是不是验签顺序不对

    2020-05-29 20:12

  • 8***@qq.com

    回复 updream: 你好 你给的这个网址是打不开的 验签的话 后台验过是正确的

    2020-06-02 14:26

  • updream (作者)

    回复 8***@qq.com: https://pay.weixin.qq.com/wiki/tools/signverify/ 如果打不开就搜索 ‘微信公众平台支付接口调试工具’

    2020-06-02 18:28

8***@qq.com

8***@qq.com - 842022895

还是不行 我感觉我后台写的应该是没有问题的 我有在其它地方看到 说uniapp请求时的参数sign要截取30位 微信返还的是32位 我想问下你 uniapp请求时携带orderinfo中的参数sign是多少位

orange123456

orange123456 - 80后IT男

requestPayment:fail,这种错误太广泛了,你先在后台接口拦截这个错误,把详细的错误信息打印出来,看看到底是什么问题,大多是签名出错,如果是在本地调试的也会有这种错

  • 8***@qq.com

    错的比较搞笑吧,在哪里都拦截不到错误原因的。是我后台封装返还给前端的数据时,map中放了timeStamp,中间的S应该是小写。这个错误前端后端都给不了错误信息,所以只给了fail errors.

    2020-06-03 09:53

  • orange123456

    回复 8***@qq.com: 很明显这是写接口的人只返回fail errors,估计你是直接套用网上的接口,你看微信的文档,有对应的错误码,另外就是微信返回的xml数据,你直接打印整个xml出来就知道什么回事了

    2020-06-03 10:30

  • 8***@qq.com

    回复 orange123456: fail errors 是uniapp封装返还的值,uniapp没有对该返还值做释义

    2020-06-04 09:03

  • orange123456

    回复 8***@qq.com: uniapp封装的支付没有问题,我的android ios都可以支付,搞了半天你都没搞明白怎么调试,出错后uniapp肯定抛出错误,你可以在success或fail里输出错误信息,如果线上的不方面修改app,你可以在接口里拦截微信返回的xml数据,写日志。难怪很多问题官方都没人回答~~

    2020-06-04 09:33

  • orange123456

    回复 orange123456: 如果接口都没法改了,前端也不懂调试,那就放弃吧,这里的坑很多

    2020-06-04 09:39

  • 8***@qq.com

    回复 orange123456: 本来不想再继续说的,但是看你一副教书育人的语气,还是跟你解释一下吧。首先前端后台都是我自己写的,前端接收到的orderinfo数据中的timestamp参数名中间的S我写成了大写的,这个时候呢,uni.requestPayment就去拿着orderinfo ,去做了微信app支付业务流程中的第10-11步中间的《验证支付参数、app支付权限等()》这一步,因为参数timestamp与timeStamp不一致,所以uni.requestPayment返还给我了fail errors,这个就是错误信息,是我在fail函数里面输出的

    {

    "errMsg": "requestPayment:fail canceled"

    }。明白??有的问题官方不回答是因为有些错误没办法去定义,java还需要抛出空指针异常呢 ,你觉得java可以直接告诉谁是空值吗,每个人写的对象名称会是一样吗?

    2020-06-04 09:57

  • l***@qq.com

    回复 8***@qq.com: 解决了吗?同样也是这个问题····· 真操蛋

    2020-06-11 20:53

欢呀

欢呀

我记得我之前也是这个错误,原因找了很久 是签名的原因 签名好像不能直接用,需要将你app的的包名用生成工具生成签名给后台替换签名,然后就可以了。可以试试

  • orange123456

    这种问题官方不会回答的,因为这里涉及前后端。如果是熟悉前后端的人这种问题就很容易解决了。错误原因不要去猜,你可以在接口里拦截微信返回的xml数据,写日志,是什么错误就一目了然了

    2020-06-04 09:54

4***@qq.com

4***@qq.com

这个问题我解决了

s***@foxmail.com

s***@foxmail.com - 为了和平

我的之前是ios可以 ,安卓9以下可以,现在索性安卓的就不行了

  • updream (作者)

    让后台看看验签顺序有问题没有,按说是可以的,你看那一下别人的评论,排查一下,字母大小写什么的有没有错

    2020-06-30 09:37

  • s***@foxmail.com

    回复 updream: 二次签名生成都是排过序的,字母都是小写的,都检查过的

    2020-06-30 14:53

  • 4***@qq.com

    你解决了吗

    2020-11-18 14:59

该问题目前已经被锁定, 无法添加新回复