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 transform属性详解
Sep 30 HTML / CSS
一款基于css3和jquery实现的动画显示弹出层按钮教程
Jan 04 HTML / CSS
深入浅析CSS3中的Flex布局整理
Apr 27 HTML / CSS
Css3实现无缝滚动防抖
Sep 14 HTML / CSS
css3弹性盒子flex实现三栏布局的实现
Nov 12 HTML / CSS
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
Nov 17 HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
Apr 10 HTML / CSS
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
Sep 02 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
Apr 14 HTML / CSS
使用html5 canvas创建太空游戏的示例
May 08 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
Jan 01 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
Nov 19 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注释实例技巧
2008/10/03 PHP
php 静态化实现代码
2009/03/20 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
php单链表实现代码分享
2016/07/04 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
js常见表单应用技巧
2008/01/09 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
nodejs实现简单的gulp打包
2017/12/21 NodeJs
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
详解python时间模块中的datetime模块
2016/01/13 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
《埃及的金字塔》教学反思
2014/04/07 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
Python实现拼音转换
2021/06/07 Python
用Python可视化新冠疫情数据
2022/01/18 Python