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实现预加载动画效果
Sep 06 HTML / CSS
10个很棒的 CSS3 开发工具 推荐
May 16 HTML / CSS
css3实现背景图片拉伸效果像桌面壁纸一样
Aug 19 HTML / CSS
一款利用css3的鼠标经过动画显示详情特效的实例教程
Dec 29 HTML / CSS
一款纯css3实现的鼠标悬停动画按钮
Dec 29 HTML / CSS
CSS3改变浏览器滚动条样式
Jan 04 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
Mar 13 HTML / CSS
HTML5 WebSocket实现点对点聊天的示例代码
Jan 31 HTML / CSS
data:image data url 文件转为Blob上传后端的方法
Jul 16 HTML / CSS
html2 canvas生成清晰的图片实现打印功能
Sep 23 HTML / CSS
HTML中meta标签及Keywords
Apr 15 HTML / CSS
分享CSS盒子模型隐藏的几种方式
Feb 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
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
php数组去重复数据示例
2014/02/25 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
vue v-on监听事件详解
2017/05/17 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
python中import学习备忘笔记
2017/01/24 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
快速了解python leveldb
2018/01/18 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
给男朋友的道歉信
2014/01/12 职场文书
美发店5.1活动方案
2014/01/24 职场文书
协会周年庆活动方案
2014/08/26 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python