评论

如何使用微信小程序获取到主体公众号的(用户code)openid

实现微信小程序获取公众号的openid 来进行推送公众号消息通知

实现大概思路

方式一

1、在小程序里面加页面 写入 web-view

2、 在小程序主体的公众号下配置 (查看公众号主体 微信开发平台- 公众号 - 基本配置(主体名称))

3、 在主体下的域名网站配置中转页面获取到用户的code信息

4、 把 第三步 的用户信息code带回来 在微信小程序的webview页面 实现code的逻辑 获取openid或者传递给后端获取openid


实现具体方式

1 --- <web-view src="https://www.xxxxx.com/Templets/activity/supplierInquiryWXApp/getLoginInfoCode.html"/>

src 就是主体域名下的中转页面

2 --- 查看公众号下的主体域名 公众号平台 - 设置与开发 - 公众号设置 - 功能设置

3 --- getLoginInfoCode.html 页面代码

<!DOCTYPE html>

<html lang="en">

  <head>

    <meta charset="utf-8" />

    <meta name="viewport" content="width=device-width" />

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

    <!-- <title>使用获取小程序的code</title> -->

    <!-- <title>当前页面用来获取小程序用户信息请勿操作</title> -->

    <!-- 此页面勿动 此页面勿动 此页面勿动 用来获取 2023-09-22 之后小程序关于code不能用于公众号的 实现方式 -->

  </head>

  <body>

    <!-- <a href="weixin://dl/business/?appid=appid&param1=1212">跳转到小程序</a> -->

    <!-- <a href="weixin://dl/business/?action=openWeApp&appId=appid">打开小程序1111</a> -->


  </body>

// 引入官方js

  <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

  <script>

    window.onload = ()=>{

        var getUrlInfo = location.search

        if (getUrlCode().code) {

            console.log(getUrlInfo,'getUrlInfogetUrlInfogetUrlInfogetUrlInfo')

            wx.miniProgram.reLaunch({

                // 跳转到询价单 //url 是回调到小程序的页面地址

                url: `/pages/InquirySheet/InquirySheet?code=${getUrlCode().code}&appId=${'这里是小程序的openid'}`,

                success: function(res) {

                    console.log(res, '获取成功')

                },

                fall: function(err) {

                    console.log(err)

                }

            })

            // return getUrlInfo

        } else {

            window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=这里是公众号的appid&redirect_uri=https://www.xxx.com/Templets/activity/supplierInquiryWXApp/getLoginInfoCode.html&response_type=code&scope=snsapi_base&state=123#wechat_redirect'

        }

    }

    function getUrlCode() {

        // 截取url中的code方法

        var url = location.search;

        var theRequest = new Object();

        if (url.indexOf("?") != -1) {

            var str = url.substr(1);

            var strs = str.split("&");

            for (var i = 0; i < strs.length; i++) {

                theRequest[strs[i].split("=")[0]] = strs[i].split("=")[1];

            }

        }

        console.log(theRequest);

        return theRequest;

    }

  </script>

</html>



测试---

通过微信开发者工具软件 - 微信开发者工具 - 更换开发者模式 - 公众号网页 进行调试 调试路径为 主题域名下的微信官方接口 可以获取 code信息

---完结


最后一次编辑于  2023-09-27  
点赞 3
收藏
评论

1 个评论

  • 天道酬勤
    天道酬勤
    06-17

    这个得先关注才能获取到公众号openId呢。 不知道有什么逻辑可以 在小程序携带登录用户ID跳转到公众号关注页面,通过公众号关注事件存储openId 对应入库就好了  。 不使用unionId

    06-17
    赞同
    回复
登录 后发表内容