vue调用微信公众号支付

87 篇文章 2 订阅
41 篇文章 0 订阅

微信支付官方文档

https://pay.weixin.qq.com/wiki/doc/api/index.html

	//将支付的认证和回调 封装成函数
        onBridgeReady(){
            let that = this
            WeixinJSBridge.invoke(
            //微信支付的一些认证  需要去网站设置好  然后在这调用
                'getBrandWCPayRequest', {
                    "appId":that.appId,                            //公众号名称,由商户传入     
                    "timeStamp":that.timeStamp,         //时间戳,自1970年以来的秒数     
                    "nonceStr":that.nonceStr,                //随机串     
                    "package":that.package,     
                    "signType":that.signType,         //微信签名方式:     
                    "paySign":that.paySign             //微信签名 
                },
                function(res){
                //这个是支付成功的回调
                
                    if(res.err_msg == "get_brand_wcpay_request:ok" ){
                    // 使用以上方式判断前端返回,微信团队郑重提示:
                            //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。

                            // alert(1)
                            // alert(res.err_msg)
                            that.$router.push({
                                path:'/ing',
                                query:{
                                    ordersn:that.ordersn
                                }
                            })
                    } else{
                    //else 支付不成功的回调
                    
                        // alert(2)
                        // alert(res.err_msg)
                        that.$router.push({
                            path:'/ing',
                            query:{
                                ordersn:that.ordersn
                            }
                        })
                    }
                }); 
        },

//在这里调用支付 并把认证的参数代入

	qr(){
                // this.popupVisible = true
                let a = ''
                if(JSON.parse(localStorage.getItem('info')) == null){
                    a = ''
                }else{
                    a= JSON.parse(localStorage.getItem('info')).token
                }

            console.log(this.radio)
            this.$axios({
                method:'post',
                url:this.api+'mobile/order/pay',
                data:{
                    token:a,
                    ordersn:this.ordersn,
                    paytype:this.radio,
                    client:'web',
                }
            }).then(res=>{
                console.log(res.data)
                //判断状态  在什么情况下调用微信支付
                if(res.data.status == 1 && this.radio == '3'){
                    let qas = res.data.result
                    console.log(qas)
                            this.appId = qas.appId
                            this.timeStamp = qas.timeStamp
                            this.nonceStr = qas.nonceStr
                            this.package = qas.package
                            this.paySign = qas.paySign
                            this.signType = qas.signType

                    let vm = this
                    // alert(3)
                    
                    //判断typeof WeixinJSBridge是否为undefind
                    if (typeof WeixinJSBridge == "undefined"){
                    //js事件  冒泡.
                        if( document.addEventListener ){
                            document.addEventListener('WeixinJSBridgeReady', vm.onBridgeReady, false);
                        }else if (document.attachEvent){
                            document.attachEvent('WeixinJSBridgeReady', vm.onBridgeReady); 
                            document.attachEvent('onWeixinJSBridgeReady', vm.onBridgeReady);
                        }
                    }else{
                    //部位空时执行 调用微信支付
                        // alert(4)
                        vm.onBridgeReady();
                    }


                    // this.$message.success(res.data.message)
                    // this.popupVisible = true
                }else if(res.data.status == 10000){
                    this.$message.success(res.data.message)
                    this.popupVisible = true
                }
                else{
                    this.$message.error(res.data.message)
                }
            })
        },

其实就是官方文档 ctrl+c 加上ctrl+v 复制粘贴就好 再根据自己的代码改改就好

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值