uniapp企业微信第三方网页授权登录获取code

用法同微信公众号网页一样,直接看文档

构造网页授权链接 - 接口文档 - 企业微信开发者中心

关于调试:没有开发工具,直接下载应用,在应用内打开调试的

客户端网页调试工具 - 接口文档 - 企业微信开发者中心

建议: 因为只能线上测试 ,建议多打印方便找问题,不要怕麻烦,否则发布一版改一点更麻烦

注意: 1. 回调地址404,查询其他链接是否带#,回调redirect_uri要一致

            2. 其他404: uniapp打包H5空白页面或者刷新404问题_lianzhang861的博客-CSDN博客

1. 获取code 核心代码块

getCode() {

    const code = uni.getStorageSync('code');

    if (code) {

        console.log("授权成功 开始登录",code)

        this.loginWxBtn(code)

        uni.removeStorageSync('qywxUrl');

        uni.removeStorageSync('code');

    } else {

        let REDIRECT_URI = urlencode(window.location.protocol + '//' + window.location.hostname +'/pages/index/login');

        let link = window.location.href;

        uni.setStorageSync('qywxUrl',link); 

        // redirect_uri 授权后重定向的回调链接地址获取code,使用urlencode对链接进行处理

        // link 获取code后重定向的授权之前的页面

        window.location.replace(

            `https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=${REDIRECT_URI}&response_type=code&scope=snsapi_userinfo&state=1&connect_redirect=1#wechat_redirect`

        );       

    }

}

2. 回调页面接收回调code参数

// 地址带# 可能获取不到参数 建议采用方法二

// 方法一: 直接获取

onLoad(options) {
            // #ifdef H5
            if(this.app.isWeiXin){
                let link = uni.getStorageSync('qywxUrl');
                if (link) {
                    uni.setStorageSync('code', options.code);
                    window.location.replace(link)
                }
            }
            // #endif
},

// 方法二  

onLoad() {
            // #ifdef H5
            if(this.app.isWeiXin){
                let link = uni.getStorageSync('qywxUrl');
                if (link) {
                    let code = this.getUrlParam('code');
                    uni.setStorageSync('code', code);
                    window.location.replace(link)
                }
            }
            // #endif
},

//获取地址栏url后的参数值
function getUrlParam(key) {
   var href = window.location.href;
   var url = href.split("?");
   if(url.length <= 1){
      return "";
   }
   var params = url[1].split("&");
   
   for(var i=0; i<params.length; i++){
      var param = params[i].split("=");
      if(key == param[0]){
         return param[1];
      }
   }
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值