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 相关文章推荐
CSS3弹性盒模型开发笔记(三)
Apr 26 HTML / CSS
基于CSS3实现的漂亮Menu菜单效果代码
Sep 10 HTML / CSS
结合CSS3的布局新特征谈谈常见布局方法
Jan 22 HTML / CSS
用CSS3实现无限循环的无缝滚动的实例代码
Jul 04 HTML / CSS
详解CSS3中常用的样式【基本文本和字体样式】
Oct 20 HTML / CSS
html5适合移动应用开发的12大特性
Mar 19 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
Mar 11 HTML / CSS
canvas探照灯效果的示例代码
Nov 30 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
Feb 18 HTML / CSS
canvas小画板之平滑曲线的实现
Aug 12 HTML / CSS
html5移动端禁止长按图片保存的实现
Apr 20 HTML / CSS
关于CSS浮动与取消浮动的问题
Jun 28 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
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
2018/07/05 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
pytorch ImageFolder的覆写实例
2020/02/20 Python
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
2014年健康教育实施方案
2014/02/17 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
实习单位推荐信
2015/03/27 职场文书
感动中国何玥观后感
2015/06/02 职场文书
2015大一新生军训感言
2015/08/01 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL