uniapp 微信支付及解决报错requestPayment:fail:[payment微信:-1]General errors 证书别名签名等
app调用微信支付先配置manifest.json然后 附上前端代码:步骤一 先获取支付方式,查看手机上有无微信和支付宝app/* 获取支付方式 */uni.getProvider({service: "payment",success: (e) => {e.provider.map((value) => {switch (value) {..
app调用微信支付
先配置manifest.json

然后 附上前端代码:
步骤一 先获取支付方式,查看手机上有无微信和支付宝app
/* 获取支付方式 */
uni.getProvider({
service: "payment",
success: (e) => {
e.provider.map((value) => {
switch (value) {
case 'alipay':
this.list.push({
name: '支付宝支付'
})
break;
case 'wxpay':
this.list.push({
name: '微信支付'
})
break;
default:
break;
}
})
},
fail: (e) => {
alrt("获取支付通道失败:", e);
}
});
步骤二 调用后台接口,获取orderInfo
let providerType = 'wxpay'
this.loading = true;//设置每次点击支付按钮后置为loading状态
/* 调用订单详情接口 */
this.$apiconfig.createOrder({"orderId":'23232'}).then(res=>{
console.log("详情",res)
this.loading = false;//调通接口后loading状态取消
if(res.code==200){
this.requestPayment(providerType,res.data)
}else{
uni.showToast({
title:res.msg,
icon:'none'
})
}
})
步骤三 调用uniapp中微信支付api
requestPayment(type,detail) {
/* 调用支付宝支付接口 */
uni.requestPayment({
provider: type,
orderInfo: detail,
success: (e) => {
console.log("success", e);
uni.showToast({
title: "感谢您的赞助!"
})
},
fail: (e) => {
console.log("fail", e);
uni.showModal({
content: "支付失败,原因为: " + e.errMsg,
showCancel: false
})
},
complete: () => {
this.loading = false
}
})
},
结果:由于不管是真机测试还是打包成app
都会报错requestPayment:fail:[payment微信:-1]General errors
解决:根据网上各种方法试过后发现申请商户号时没有填写 应用包名 和 应用签名 ,需要获取这两个参数
1、应用包名
应用包名可以在打包时看到

包名是可以随意取名的,只要统一就行
2、应用签名
查询后可知,若想获取应用签名,需要先让后台生成keyStore证书文件,
获取流程如下:获取 Andriod keystore签名证书文件,用于打包APP应用_你挚爱的强哥❤给你发来1条消息❤-CSDN博客
然后将获取到的证书文件放到app项目根目录

然后打包时需要填写生疏别名、私钥密码,和证书文件路径
其中,证书路径直接选择到文件即可,私钥是后台在获取证书时输入的,
需要注意的是:证书别名不是证书名!需要后台在生成证书之后查看别名:
(在证书文件所在位置 直接cmd 输入:keytool -list -v -keystore 加上证书名)

然后前端就可以打包了。
打包完成之后安装到手机上,同时需要在手机上安装签名工具,下载地址:https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk
将签名工具和apk的项目包安装到手机上之后,打开签名工具,输入项目包名,就可以获取到应用签名了

结尾:
将其和应用包名一起交给后台填写好就可以了
如果还是报-1的错误,可能是有缓存的原因,重新卸载之后安装试试
更多推荐




所有评论(0)