您查询的关键词是:vue 支付功能 
下面是原始网址 https://blog.csdn.net/weixin_35101697/article/details/112053356 在 2023-01-09 05:56:32 的快照。

360搜索与该网页作者无关,不对其内容负责。

vue 微信支付的坑_Vue实现微信支付功能遇到的坑_aheemi的博客-CSDN博客

vue 微信支付的坑_Vue实现微信支付功能遇到的坑

微信支付功能相比较支付宝支付,有点点繁琐,整理记录下来,以便日后所需

项目用VUE+EL搭建而成,支付用EL的radio来做的

微信支付

推荐安装最新版微信使用

支付宝

推荐有支付宝账户的用户使用

坑来了。。。。

之前一直是前端请求后台接口,后台调取微信支付接口,但点击微信支付后一直提示跨域、重定向问题

就是这个坑,问了好多人,都在说是不是没有配置安全域名或接口白名单什么的,但后端真真的已经配置了,后来我们换了一种方法,由前端来提供code 授权成功之后,返回给后端

在mounted()获取code:

this.code = ''

var local = window.location.href // 获取页面url

var appid = ''

this.code = getUrlCode().code // 截取code

if (this.code == null || this.code === ''){

window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${encodeURIComponent(local)}&response_type=code&scope=snsapi_base&state=123#wechat_redirect`

};

function getUrlCode(){

var url = location.search

// this.winUrl = url

// alert(this.winUrl)

var theRequest = new Object()

if (url.indexOf("?") != -1){

var str = url.substr(1)

var strs = str.split("&")

for(var i = 0; i < strs.length; i ++){

theRequest[strs[i].split("=")[0]]=(strs[i].split("=")[1])

}

}

return theRequest

};

然后再点击按钮中写判断了

methods:{

Compay(){

let radio_data = this.radio

if(radio_data == 'weixin'){

if (this.code) { // 如果没有code,则去请求

this.$axios({

method: "post",

url: "后台接口",

params: {code: this.code} //将code传给后台,如果有其他参数需要传递,请一并传递

}).then((res)=>{

//调取微信支付

var that = this;

function onBridgeReady(){

WeixinJSBridge.invoke("getBrandWCPayRequest",{

appId: res.data.appId, //公众号名称,由商户传入

timeStamp: res.data.timeStamp, //时间戳,自1970年以来的秒数

nonceStr: res.data.nonceStr, //随机串

package: res.data.package,

signType: res.data.signType, //微信签名方式:

paySign: res.data.paySign //微信签名sign

},

function(res){

if (res.err_msg == "get_brand_wcpay_request:ok"){

alert('恭喜您,支付成功!')

}else if(res.err_msg == "get_brand_wcpay_request:cancel"){

alert('支付失败!');

}else if (res.err_msg == "get_brand_wcpay_request:fail"){

alert('调起微信支付失败');

}

}

);

}

onBridgeReady();

//微信支付

})

}

}else if(radio_data == 'zhifubao'){

this.$axios.post('后台接口',data).then((res)=> {

this.html = res.data

var form= res.data;

const div = document.createElement('div') //创建div

div.innerHTML = form//此处form就是后台返回接收到的数据

document.body.appendChild(div)

var queryParam = ''; Array.prototype.slice.call(document.querySelectorAll("input[type=hidden]")).forEach(function (ele) {

queryParam += '&' + ele.name + "=" + encodeURIComponent(ele.value);

});

var gotoUrl = document.querySelector("#alipaysubmit").getAttribute('action') + queryParam;

_AP.pay(gotoUrl); //在微信中用浏览器跳转到支付宝支付

})

}

}

}

总结

以上所述是小编给大家介绍的Vue实现微信支付功能遇到的坑,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对找一找教程网网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

aheemi

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值