Html5页面获取微信公众号的openid的方法


Posted in HTML / CSS onMay 12, 2020

1、H5页面是运行在微信浏览器的

2、需要与公众号关联(即需要openid)

3、判断需求是否需要弹窗告知用户授权操作

4、获取地址栏参数判断是否有'code',有的话直接传给后台换取openid,没有就跳转微信提供的获取code的链接

5、获取到的openid做本地存储,判断没有openid进行获取openid操作

6、这边的操作是不需要弹出授权框,且code不能重复使用,所以做了关注二维码弹窗且不能关闭弹窗操作

// 强制关注公众号,获取openid
getCode = function () {
    if (sessionStorage.getItem("openid")&&sessionStorage.getItem("openid")!="undefined") {
        return false;
    }
    var code = getUrlParam('code') // 截取路径中的code,如果没有就去微信授权,如果已经获取到了就直接传code给后台获取openId
    var local = window.location.href;
    var APPID = 'xxx';
    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=#wechat_redirect'
    } else {
        getOpenId(code) //把code传给后台获取用户信息
    }
}
//把code传给后台,得到openid
getOpenId = function (code) {
    $.ajax({
        type: 'POST',
        dataType: 'json',
        url: 'xxx',
        data: { code: code },
        success: function (res) {
            if (res.status == -1) {
                // 提示没有关注公众号 没有关注公众号跳转到关注公众号页面
                console.log('您还未关注公众号喔');
                //二维码弹窗
                $('.openPopup').click();
                return;
            } else {
                // 本地存储这个openid,并刷新页面
                sessionStorage.setItem("openid", res.data.openid);
                location.reload();
            }
        }
    });
}
//获取地址栏的参数
getUrlParam= function (name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) return unescape(r[2]); return null;
}
//页面执行调用
getCode();

到此这篇关于Html5页面获取微信公众号的openid的方法的文章就介绍到这了,更多相关Html5获取公众号的openid内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
今天学到的CSS最新技术(与图片背景相关)
Dec 24 HTML / CSS
CSS去掉A标签(链接)虚线框的方法
Apr 01 HTML / CSS
CSS3 flex布局之快速实现BorderLayout布局
Dec 03 HTML / CSS
CSS3实现swap交换动画
Jan 19 HTML / CSS
CSS3 @keyframes简单动画实现
Feb 24 HTML / CSS
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
Jan 09 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
Apr 29 HTML / CSS
深入解析HTML5使用SVG图像时的viewBox属性用法
Sep 02 HTML / CSS
HTML5声音录制/播放功能的实现代码
May 03 HTML / CSS
html svg生成环形进度条的实现方法
Sep 23 HTML / CSS
amazeui页面校验功能的实现代码
Aug 24 HTML / CSS
css height属性中的calc方法详解
Jun 03 HTML / CSS
钉钉企业内部H5微应用开发详解
May 12 #HTML / CSS
html5 横向滑动导航栏的方法示例
May 08 #HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
May 08 #HTML / CSS
HTML5 body设置自适应全屏
May 07 #HTML / CSS
iframe与window.onload如何使用详解
May 07 #HTML / CSS
HTML5录音实践总结(Preact)
May 07 #HTML / CSS
详解HTML5.2版本带来的修改
May 06 #HTML / CSS
You might like
PHP 各种排序算法实现代码
2009/08/20 PHP
php whois查询API制作方法
2011/06/23 PHP
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
基于PHP中的常用函数回顾
2013/07/11 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
使用隐藏的new来创建对象
2011/03/29 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
详解Python中expandtabs()方法的使用
2015/05/18 Python
Python排序算法实例代码
2017/08/10 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
挂牌仪式策划方案
2014/05/18 职场文书
建筑学专业自荐书
2014/07/09 职场文书
高考升学宴主持词
2019/06/21 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python