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制作精致的照片墙特效
Jun 07 HTML / CSS
css3实现背景颜色渐变让图片不再是唯一的实现方式
Dec 18 HTML / CSS
css3实现背景图片拉伸效果像桌面壁纸一样
Aug 19 HTML / CSS
使用CSS3的font-face字体嵌入样式的方法讲解
May 13 HTML / CSS
CSS3自定义滚动条样式的示例代码
Aug 21 HTML / CSS
css3中flex布局宽度不生效的解决
Dec 09 HTML / CSS
HTML5 本地存储和内容按需加载的思路和方法
Apr 07 HTML / CSS
HTML5离线应用与客户端存储的实现
May 03 HTML / CSS
Canvas多边形绘制的实现方法
Aug 05 HTML / CSS
AmazeUI的下载配置与Helloworld的实现
Aug 19 HTML / CSS
详解HTML5中CSS外观属性
Sep 10 HTML / CSS
html解决浏览器记住密码输入框的问题
May 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
《APMServ 5.1.2》使用图解
2006/10/23 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
Html5新增标签有哪些
2017/04/13 HTML / CSS
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
上课迟到检讨书
2014/01/19 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
体育活动总结范文
2014/05/04 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
小学生暑假生活总结
2015/07/13 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python
如何使用php生成zip压缩包
2021/04/21 PHP