cay
cay
  • 发布:2020-04-17 13:55
  • 更新:2020-11-10 09:53
  • 阅读:7208

安卓微信支付报错{"errMsg":"requestPayment:fail errors"}

分类:uni-app

今天早上发现已经可以顺利支付,前后台代码没有做任何修改。正式打包后就可以支付了。
前两天正式打包后也不能支付,可能是因为开始的配置有问题导致的,修改正确后微信有缓存。
如果大家还有问题的话,建议仔细核对微信的配置参数,然后等一段时间。


是不是我升级最新的HbuilderX的问题。。。
有人知道是什么问题呀?如何解决呢?谢谢

环境为 mac HbuilderX 2.6.11.20200409
参照官方的 hello 示例可以正常调用微信和支付,
将示例URL:https://demo.dcloud.net.cn/payment/?payid=wxpay&appid=HBuilder&total=1改成我们自己的URL就报错。
如下:fail, [Object] {"errMsg":"requestPayment:fail errors"}

let orderInfo = await this.getOrderInfo();
console.log('得到订单信息', orderInfo);
if (orderInfo.statusCode !== 200) {
console.log('获得订单信息失败', orderInfo);
this.showPopup('获得订单信息失败');
return;
}
uni.requestPayment({
provider: 'wxpay',
orderInfo: orderInfo.data,
success: e => {
console.log('success', e);
},
fail: e => {
console.log('fail', e);
},
complete: () => {
//this.providerList[index].loading = false;
}
});

我们自己接口返回的订单数据:
{"appid":"wxa92d2bcb43fa2a0a","noncestr":"umwpbfj1pqe87tnr","package":"Sign=WXPay","partnerid":"1584561651","prepayid":"wx171348138648989b812c9e771046911600","timestamp":1587102493,"sign":"A3837F4BD91A3C44148DDD0D3DE12EDE"}

检查了appid、MCHID、KEY
也将预下单接口返回的字段确定了
开始用的是jdk11签名没有md5格式,重新用jdk1.8生成了md5的签名,并更改了包名
重新设置了商户平台的API证书和API密码

微信在线校验签名
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=20_1

参照教程:
后端支付代码:https://github.com/dcloudio/H5P.Server/tree/master/payment/wxpayv3
app代码:https://uniapp.dcloud.io/api/plugins/payment

2020-04-17 13:55 负责人:无 分享
已邀请:
社交软件联盟

社交软件联盟 - 免费的社交软件开发框架和运营支持合作联盟

我也遇到了这个问题,处理了 2 ,3个小时。

我遇到的问题是,字段写错了。因为之前先做了小程序上的微信支付,然后做app的用了通用的代码。

可是小程序和app的字段名称不一致。

小程序的是:appId,signType,timeStamp,nonceStr,package

app的是:appid,partnerid,prepayid,noncestr,timestamp,package

神坑

w***@163.com

w***@163.com - 90后

昨天成功了一次,今天又不行了。。。

w***@163.com

w***@163.com - 90后

我华为手机可以调起支付,小米不行。。。

  • cay (作者)

    小米的没有试,我也是用华为的

    2020-04-18 10:48

k***@163.com

k***@163.com - 1

同样的问题啊啊啊

  • cay (作者)

    认真检查下微信的配置参数和服务器返回的数据,正式打包再试试

    2020-04-28 15:28

  • k***@163.com

    回复 cay: 是的,真机运行一直报错,打包就行了,唉

    2020-05-09 16:34

1***@qq.com

1***@qq.com

同问

兔子RabBit

兔子RabBit

我这边也是一直报这个 {"errMsg":"requestPayment:fail errors"}

1***@qq.com

1***@qq.com

同样的问题已解决——
app参数的是 appid,partnerid,prepayid,noncestr,timestamp,package, sign

2***@qq.com

2***@qq.com

我的一直行不通,大佬们指点指点

d***@gmail.com

d***@gmail.com

一个很诡异的现象,调试第一次的时候成功调起了微信支付,以后就再也调不起了,一直是{"errMsg":"requestPayment:fail errors"}。然后换一台手机来测,也是第一次的时候成功调起了微信支付,以后就再也调不起了。要说有什么错吧,应该一次都不能成功才对啊。有老哥知道这是什么问题吗?

d***@gmail.com

d***@gmail.com

找到原因了,调不起支付是因为没有在微信开放平台配置安卓包名和签名(之前配置了苹果的,没有配置安卓的)。配置好安卓签名和包名后,要清理调试手机的微信的缓存,清理了缓存后就可以成功调起了。

7***@qq.com

7***@qq.com

打的自定义调试基座跑起来报:{"errMsg":"requestPayment:fail errors"} ;是不是必须打正式包?

2***@qq.com

2***@qq.com

我这边是正式打包发布后才可以

7***@qq.com

7***@qq.com

清理微信缓存~~

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