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的错误,可能是有缓存的原因,重新卸载之后安装试试

Logo

一站式 AI 云服务平台

更多推荐