vue--微信支付

1、当前页面没有注册:

  需要登录微信支付商家后台,添加支付路径授权

2、安装 weixin-js-sdk 微信SDK npm install weixin-js-sdk --save  

3、引入 import wx from 'weixin-js-sdk';

4、在 created()中 执行一个函数获取APPID等参数进行微信授权

fetchGetsignpackageAction(){
        let param = {};
        param.url = window.location.href;
        fetchGetsignpackage(param).then((res) => {
          let resData = res.data;
          if (resData.respHeader.resultCode === 0) {
            const Data = resData.respBody;
            wx.config({
              debug: false,
              appId: Data.appId,
              timestamp: Data.timestamp,
              nonceStr: Data.nonceStr,
              signature: Data.signature,
              jsApiList: [
                'checkJsApi',
                'onMenuShareAppMessage',
                'onMenuShareTimeline',
                'updateAppMessageShareData',
                'updateTimelineShareData',
                'hideMenuItems',
                'showMenuItems',
                'hideAllNonBaseMenuItem',
                'showAllNonBaseMenuItem',
                'getNetworkType',
                'getLocation',
                'hideOptionMenu',
                'showOptionMenu',
                'closeWindow',
                'scanQRCode',
                'chooseWXPay'
              ]
            });
          }else{
            Toast({
              message: retData.respHeader.message || "网络异常",
            });
          }
        })

  

fetchGetsignpackage() axios请求返回的参数如下:

5、点击支付调起微信支付执行的方法:

okFryWxPayHandler(){
        let reqBody = {};
        reqBody.orderId = this.orderId;
        reqBody.payType = this.payType;
        reqBody.openId = Cookies.get("openId");
        fetchOrderPayMsg(reqBody).then((res) => {
          let resData = res.data;
          if(resData.respHeader.resultCode == 0){
            let msg = JSON.parse(resData.respBody);
            let _this = this;
            wx.chooseWXPay({
              "timestamp": msg["timestamp"], // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
              "nonceStr": msg["nonceStr"], // 支付签名随机串,不长于 32 位
              "package": msg["package"], // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
              "signType": msg["signType"], // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
              "paySign": msg["paySign"], // 支付签名
              success: function (res) {
                // 支付成功后的回调函数
                // alert(res);
                _this.submitActive = true;
                _this.$router.push({path: '/busi/paySuccess',query: {price: _this.totalPrice}});
              },
              cancel: function () {
                _this.submitActive = true;
              }
            });
          }else{
            this.submitActive = false;
            Toast({
              message: resData.respHeader.message,
            });
          }
        });
      }

  nuxt中 由于路径问题,微信支付没办法成功。。。。

 

转载于:https://www.cnblogs.com/ilovexiaoming/p/11136882.html

Vue3中进行微信支付,你可以使用JSAPI微信支付的方法。首先,你需要在公众号后台进行相应的配置,确保paydatac变量返回了微信签名等必要信息。然后,你可以使用WeixinJSBridge进行支付操作。在Vue的代码中,你可以将微信支付相关的逻辑写在vuex的mutations中的wechatPay方法中。在该方法中,你可以调用微信的chooseWXPay方法,传入相应的参数,如时间戳等。通过这样的方式,你可以实现在Vue3中进行微信支付的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue项目使用微信公众号支付总结及遇到的坑](https://download.csdn.net/download/weixin_38499349/13588413)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [微信支付、公众号支付、JSAPI,vue 调取微信支付功能](https://download.csdn.net/download/weixin_38502762/14886417)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vue 面试题( 前端开发 + Vue + 面试题 + 准备)](https://download.csdn.net/download/weixin_41784475/88219148)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值