uniapp app 端调微信支付接口
程序员文章站
2024-01-22 21:44:58
...
uni-app 官方文档支付接口如下:
uni.requestPayment({
provider: provider, // wxpay、alipay
orderInfo: 'orderInfo', //微信、支付宝订单数据
success: function (res) {
console.log('success:' + JSON.stringify(res));
},
fail: function (err) {
console.log('fail:' + JSON.stringify(err));
}
});
文档中 orderInfo 的格式没写清楚,今天刚好在研究支付,发现调起微信支付接口的 orderInfo 可以是对象,也可以是对象字符串,比如:
let obj = {
appid: 应用ID,
noncestr: 随机字符串,
package: 'Sign=WXPay', // 固定值,以微信支付文档为主
partnerid: 商户号,
prepayid: 预支付交易会话ID,
timestamp: 时间戳,
sign: 签名 // 根据签名算法生成签名
}
// 第一种写法,传对象
let orderInfo = obj
// 第二种写法,传对象字符串
let orderInfo = JSON.stringify(obj)
uni.requestPayment({
provider: 'wxpay',
orderInfo: orderInfo, //微信、支付宝订单数据
success: function (res) {
console.log('success:' + JSON.stringify(res));
},
fail: function (err) {
console.log('fail:' + JSON.stringify(err));
}
});
Tips:
当时做项目所传的参数和签名都正确,结果还是返回 -1,查了半天结果用的是 deCloud 的标准定义基座,它的包名跟自己的 app 申请的包不一样,导致不能正常调起微信支付接口,但支付宝的可以。更换自定义基座,填上自己的包名,证书等,然后打包安装运行就 ok 了
上一篇: (摘抄)oracle index 索引
下一篇: Ionic5项目android打包流程