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 07 HTML / CSS
css3实例教程 一款纯css3实现的环形导航菜单
Oct 20 HTML / CSS
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
Jan 08 HTML / CSS
用HTML5.0制作网页的教程
May 30 HTML / CSS
HTML5 在canvas中绘制文本附效果图
Jun 23 HTML / CSS
基于HTML5代码实现折叠菜单附源码下载
Nov 27 HTML / CSS
整理HTML5的一些新特性与Canvas的常用属性
Jan 29 HTML / CSS
HTML5新特性之用SVG绘制微信logo
Feb 03 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
Aug 22 HTML / CSS
使用html2canvas.js实现页面截图并显示或上传的示例代码
Dec 18 HTML / CSS
详解webapp页面滚动卡顿的解决办法
Dec 26 HTML / CSS
HTML5来实现本地文件读取和写入的实现方法
May 25 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制作中间带自己定义图片二维码的方法
2014/01/27 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
php文件上传的两种实现方法
2016/04/04 PHP
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
linux环境下python中MySQLdb模块的安装方法
2017/06/16 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
Python多继承原理与用法示例
2018/08/23 Python
python实现词法分析器
2019/01/31 Python
python如何制作缩略图
2019/04/30 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
python文件排序的方法总结
2020/09/13 Python
python/golang 删除链表中的元素
2020/09/14 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
导游词之无锡古运河
2019/11/14 职场文书
Python 中面向接口编程
2022/05/20 Python