vue前端开发微信支付和支付宝支付

1.微信支付

在这里插入图片描述
在这里插入图片描述

微信支付后台程序员会给你返一个地址,首先我们需要安装qrcodejs2将地址转换成二维码,需要先npm install qrcodejs2

然后需要一个div来存放这个微信二维码,宽高样式各位自己可以去css里写,我在这里还加了一个loading,有需要的也可以自己加

                               <div id="wechatcode" v-loading="loading" 
                                element-loading-text="拼命加载中"
                                element-loading-spinner="el-icon-loading"
                                element-loading-background="rgba(0, 0, 0, 0.8)"></div>

不要忘记在

import QRCode from 'qrcodejs2' // 引入qrcode

下面是接口数据获取然后操作二维码

 getWechatCode() {
                Models
                    .getModel("wechatpay")
                    .get({
                        orderId:this.orderId
                    })
                    .then(res => {
                        if(res.data.code == 200){
                            this.wechatPayUrl = res.data.resultData
                            if(!this.flag){
                            //重点是这里,其余的是为了我的切换业务逻辑和接口
                                let wechatcode = new QRCode('wechatcode', {
                                    width: 200,
                                    height: 200,
                                    text: this.wechatPayUrl, // 二维码地址
                                    colorDark: "#000",
                                    colorLight: "#fff",
				                })
                            }
                            this.flag = true
                            this.loading = false
                            this.isWechatCodeShow = true
                        }
                    })
        },

在微信扫描支付完之后,后台人员可以拿到支付成功结果,返给前台人员,那么前端人员只能不断去调接口查询是否已支付,在这里我们可以用生命周期来做轮询,在跳出之后需要销毁

mounted() {
        this.getWechatCode()
        //实现轮询
        this.interval = window.setInterval(() => {
        setTimeout(this.getOrderStatus(), 0);
        }, 3000);
        
    },
    beforeDestroy() {
        //清除轮询   
        clearInterval(this.interval)
        this.interval = null
    },

在这里插入图片描述
这里的getOrderStatus()方法是为了查询后台支付状态的,如果成功跳转到支付页面,做个If else判断即可

2.支付宝支付

我发现支付宝返回的是个html,form文件,它会让你跳转到支付宝的页面进行支付,而且实时更新,那么我们需要将返回的form文件放到一个div并且跳转新页面

getAliPay(){
            Models
                .getModel("alipay")
                .post({
                    orderId:this.orderId
                })
                .then(res => {
                    this.isWechatCodeShow = !this.isWechatCodeShow
                    //主要部分如下
                    const div=document.createElement('divform');
                    div.innerHTML=res.data; // data就是接口返回的form 表单字符串
                    document.body.appendChild(div);
                    document.forms[0].setAttribute('target', '_blank') // 新开窗口跳转
                    document.forms[0].submit();
                    })
                },
  • 3
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
qrcodejs2是一个用于生成二维码的JavaScript库,用于在前端将微信支付的特殊链接转换为可供用户扫码支付的二维码。它可以通过引入qrcodejs2插件来实现。首先,需要在项目中安装qrcodejs2插件,可以使用npm install qrcodejs2 --save命令进行安装。接下来,在前端代码中使用qrcodejs2来生成二维码。首先,需要在页面引入qrcodejs2插件,可以使用import QRCode from "qrcodejs2"语句进行引入。然后,可以使用qrcodejs2的API来生成二维码,具体的代码可以参考中的示例。使用this.qrcode = new QRCode("qrcode", {...})语句来创建一个二维码实例,其中"text"参数为微信支付接口返回的特殊链接,"width"和"height"参数为二维码的宽度和高度,"colorDark"和"colorLight"参数为二维码的颜色配置。使用这种方式可以实现在前端页面上显示微信支付的二维码。可以在需要的页面中引入import QRCode from "qrcodejs2";语句来使用qrcodejs2插件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue项目在PC端的支付调用(支付宝和微信支付使用qrcodejs2渲染二维码)](https://blog.csdn.net/m0_47703222/article/details/110631816)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值