微信公众号支付

这段代码展示了在微信环境中如何根据支付类型选择微信公众号或普通支付,并调用微信支付接口进行支付。当服务费大于0时,会进行微信或支付宝的后端请求,然后调用相应的支付平台接口进行支付操作。支付成功后,会跳转到订单页面。
摘要由CSDN通过智能技术生成
doSubmit(data) {
			this.info.tradepwd = data;
				let ua = window.navigator.userAgent.toLowerCase(); //判断的登录环境
				if (ua.indexOf('micromessenger') != -1) { //如果是微信
			    if (this.info.pay[1].pay_type == 'wechat') {
				this.info.pay[1].pay_type = 'official'
				console.log('走微信公众号付款');
			}}
			this.$api.pay(this.info).then(res => {
				if (res.code == 1) {
					if (this.info.pay[1].pay_type == 'official') {
						this.wxPay(res.data.payParams)
						
						// let payinfo = JSON.parse(res.data.payParams)
						// this.wxPay(payinfo)
						console.log('微信支付',res.data.payParams);
						return
					}
					if (parseFloat(this.service) > 0) {
						if (this.info.pay[1].pay_type == "service" || this.info.pay[1].pay_type ==
							"commission") {
							this.$msg(res.msg);
							setTimeout(() => {
								uni.switchTab({
									url: '/pages/my/my'
								})
							}, 500)
							return false;
						}
						var info;
						var provider;
						if (this.info.pay[1].pay_type == 'wechat') {
							info = JSON.parse(res.data.payParams);
							provider = 'wxpay';
						} else if (this.info.pay[1].pay_type == 'alipay') {
							info = res.data.payParams;
							provider = 'alipay';
						}
						uni.requestPayment({
							provider: provider,
							orderInfo: info,
							success: function(res) {
								setTimeout(() => {
									uni.navigateTo({
										url: `/pages/order/order?status=1`
									})
								}, 1500)
							},
							fail: function(err) {
								console.log('fail:' + JSON.stringify(err));
							}
						});
					} else {
						this.$msg(res.msg);
						setTimeout(() => {
							uni.switchTab({
								url: '/pages/my/my'
							})
						}, 500)
						return false;
					}

				} else {
					this.$msg(res.msg);
				}
			})
		},

 wxPay(data) {
			//微信公众号支付
			function onBridgeReady() {
				WeixinJSBridge.invoke(
					'getBrandWCPayRequest', {
						...data,
						// "appId": data.appid, //公众号名称,由商户传入     
						// "timeStamp": data.times, //时间戳,自1970年以来的秒数     
						// "nonceStr": data.nonce_str, //随机串     
						// "package": "prepay_id=u802345jgfjsdfgsdg888",
						// "signType": "RSA", //微信签名方式:     
						// "paySign": data.sign //微信签名 
					},
					function(res) {
						if (res.err_msg ==
							"get_brand_wcpay_request:ok") {
							// msg(res.msg)
							setTimeout(() => {
								uni.switchTab({
									url: '/pages/my/my'
								})
							}, 500)
							
							
						} // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回    ok,但并不保证它绝对可靠。 
					}
				);
			}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值