vue 微信(企业微信)获取openId

项目背景:
一个H5活动页,获取企业微信的用户openId,然后通过openId调用接口判断用户是否是第一次登陆,第一登陆跳转index,不是第一次调转about。
开发:
参考很多博客,用了中转页面的方法,新建了一个welcome的白屏菜单,用来中转。
先上代码

<template>
  <div>
    <div>
      <p></p>
    </div>
  </div>
</template>

<script>
import { api } from "@/api/api";

export default {
  name: "welcome",
  data() {
    return {};
  },
  created() {
    this.getCode();
  },
  mounted() {},
  methods: {
    getCode() {
      // 非静默授权,第一次有弹框
      const code = this.getUrlParam("code"); // 截取路径中的code,如果没有就去微信授权,如果已经获取到了就直接传code给后台获取openId
      const local = window.location.href;
      const APPID = "wwcxxxxxxxxxx"; // 企业微信
      if (code == null || 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=STATE#wechat_redirect";
      } else {
        this.getOpenId(code); //把code传给后台获取用户信息
        console.log(code);
      }
    },
    getUrlParam(name) {
      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");

      var r = window.location.search.substr(1).match(reg);
      console.log(r);

      if (r != null) return unescape(r[2]);

      return null;
    },

    getOpenId(code) {
      // 通过code获取 openId等用户信息,/api/user/wechat/login 为后台接口
      let _this = this;
      console.log(code);
      let param = {
        code: code
      };
      api("/app/weChat/getUserId", "get", param).then(res => {
        console.log(res);
          let userId ;
        if (res.data.code == 2000) {
              userId = res.data.data;
        }else{
            console.log(res);
            return;
        }
        localStorage.setItem("userId", userId);
        _this.getindexOne(userId);
      });
    },
    getindexOne(userId) {
      let params = {
        'channel': "qyvx",
        'openID': userId
      };
      api("/app/arrange/judgeOrder", "get", params).then(res => {
        if (res.data.data == 0) {
          this.$router.push({ name: "index" });
        //   window.location.replace("/#/index");
        } else {
          this.$router.push({ name: "about" });
        //   window.location.replace("/#/about");
        }
      });
    }
  }
};
</script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值