zoukankan      html  css  js  c++  java
  • H5页面获取微信公众号的openid

    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();
    与尘埃中开出花朵。
  • 相关阅读:
    【BZOJ】1827: [Usaco2010 Mar]gather 奶牛大集会
    【BZOJ】1708: [Usaco2007 Oct]Money奶牛的硬币
    【BZOJ】1690: [Usaco2007 Dec]奶牛的旅行
    【BZOJ】1725: [Usaco2006 Nov]Corn Fields牧场的安排
    【BZOJ】1711: [Usaco2007 Open]Dining吃饭
    【BZOJ】1579: [Usaco2009 Feb]Revamping Trails 道路升级
    【BZOJ】1572: [Usaco2009 Open]工作安排Job
    【51NOD】1717 好数
    【POJ】3233 Matrix Power Series
    【BZOJ】1717: [Usaco2006 Dec]Milk Patterns 产奶的模式
  • 原文地址:https://www.cnblogs.com/congfeicong/p/11125575.html
Copyright © 2011-2022 走看看