Vue微信公众号静默授权 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 公众号相关 >

Vue微信公众号静默授权

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:62

首先要注册一个公众号
再里面配置自己的安全域名 有两个地方要配置 开发-》设置
配置完之后 在微信开发工具打开,
因为微信那边的限制 我目前只能在把页面放到服务器上进行访问
这个是静默授权在逻辑是打开页面时 有一个redirect_uri 这个参数 是获取code后的重定向位置 一般就是当前页面
code 的值 获取成功后会放到url中 通过 location去获取就好了

 created() {
                this.getUrl()
            },
getUrl() {
                    let userAgent = navigator.userAgent;
                    if (userAgent.includes("iPhone") || userAgent.includes("iPad")) {
                        sessionStorage.setItem("originUrl", location.href); // 用于ios分享
                    }
                    this.getBaseInfos();
                },

                // 编码函数
                getUrlParam(name) {
                    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
                    var r = window.location.search.substr(1).match(reg); //匹配目标参数

                    if (r != null) return unescape(r[2]);
                    return null; //返回参数值
                },

                getBaseInfos() {
                    if (this.isWeiXin()) {
                        const code = this.getUrlParam("code"); // 截取路径中的code
                        if (code == null || code === "") {
                            let url = "";
                            let userAgent = navigator.userAgent;
                            if (userAgent.includes("iPhone") || userAgent.includes("iPad")) {
                                url = sessionStorage.getItem("originUrl");
                            } else {
                                url = window.location.href;
                            }
                            window.location.href =
                                "https://open.weixin.qq.com/connect/oauth2/authorize?appid=你申请的appkey&redirect_uri=" +
                                encodeURIComponent(url) +
                                "&response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect";
                        } else {
                        }

                        if (code != "" && code != null) {
                            this.wxCode = code;
                            console.log(code)
                            this.getOpenid(code)
                        }
                    } else {
                    }
                },

                isWeiXin() {
                    var ua = window.navigator.userAgent.toLowerCase();
                    if (ua.match(/MicroMessenger/i) == "micromessenger") {
                        return true;
                    } else {
                        return false;
                    }
                },

相关案例查看更多