hbuilderx获取公众号的code

温馨提示:以下代码可直接复制,改一点东西就可以直接用哦

(欢迎赐教,如果对你有用的话给我点个赞叭~~~)

export default {

    onLaunch: function() {

      this.toWx()

    },

    methods: {

      toWx() {

        // 判断是否是微信内置浏览器

        const isWechat = () => {

          let ua = window.navigator.userAgent.toLowerCase();

          return ua.match(/MicroMessenger/i) == 'micromessenger';

        }

        if (isWechat) {

          // 授权回调

          var appid = '填入你的appid';

          //获取路径(要在微信内置浏览器打开,或者是用你部署环境的链接打开)

          let local = window.location.href.split("#")[0];

          // 拼接在微信时打开的url

          let url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid + "&redirect_uri=" +

            encodeURIComponent(local) + "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";

          // 从url中截取code

          let code = this.GetParam(window.location.href.split("#")[0], "code");

          if (!code) {

            window.location.href = url;

          } else {          

            // 处理截取到的code

            code = this.GetParam(window.location.href, "code");

            var openid = localStorage.getItem('openid')

            if (!openid) {

              this.$ajax({

                method: 'post',

                url: this.$config.api.target,

                data: {

                  data: JSON.stringify({

                    api: '你的接口地址',

                    data: {

                      code: code, // 传的参数

                    },

                    cmd: '因为我没有封装ajax,所以要cmd'

                  })

                },

              }).then(res => {

                alert(res, )

                if (res.data.success === 'true') {

                  alert("openid为:" + res.data.data.openid)

                  // 将openid存储到本地,避免多次获取

                  localStorage.setItem('openid', res.data.data.openid)

                  // localStorage.setItem('userid', res.data.userinfo.id)

                } else {

                  console.log('授权失败')

                }

              }).catch((res) => {})

            }

          }

        } else {

          console.log('请在微信客户端打开')

        }

      },

      GetParam(url, code) {

        url = url + "";

        let regstr = "/(\\?|\\&)" + code + "=([^\\&]+)/";

        let reg = eval(regstr);

        //eval可以将 regstr字符串转换为 正则表达式

        let result = url.match(reg);

        if (result && result[2]) {

          return result[2];

        }

      },

    },

  }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值