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