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 clip-path 用法介绍详解
Mar 01 HTML / CSS
使用css3实现超炫的loading加载动画效果
May 07 HTML / CSS
用CSS3来实现社交分享按钮
Nov 11 HTML / CSS
CSS3实现可爱的小黄人动画
Jul 11 HTML / CSS
浅谈CSS3特性查询(Feature Query: @supports)功能简介
Jul 31 HTML / CSS
详解css3中dispaly的Grid布局与Flex布局
Sep 11 HTML / CSS
微信小程序“圣诞帽”的实现思路详解
Dec 28 HTML / CSS
canvas离屏技术与放大镜实现代码示例
Aug 31 HTML / CSS
详解使用postMessage解决iframe跨域通信问题
Nov 01 HTML / CSS
Html5之自定义属性(data-,dataset)
Nov 19 HTML / CSS
详解CSS玩转图片Base64编码
May 25 HTML / CSS
使用CSS实现小三角边框原理解析
Nov 07 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 版获取重定向后的地址(代码)
2013/06/26 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
Javascript之String对象详解
2016/06/08 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python中关于for循环的碎碎念
2017/06/30 Python
python决策树之CART分类回归树详解
2017/12/20 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
Python API自动化框架总结
2019/11/12 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
python如何随机生成高强度密码
2020/08/19 Python
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
应聘自荐信
2013/12/14 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
公益广告标语
2014/06/19 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
个人原因辞职信模板
2015/05/13 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书