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,但并不保证它绝对可靠。
}
);
}
微信公众号支付
最新推荐文章于 2024-09-17 11:42:54 发布
这段代码展示了在微信环境中如何根据支付类型选择微信公众号或普通支付,并调用微信支付接口进行支付。当服务费大于0时,会进行微信或支付宝的后端请求,然后调用相应的支付平台接口进行支付操作。支付成功后,会跳转到订单页面。
摘要由CSDN通过智能技术生成