微信小程序与公众号关联(同一主体),获取unionId并关联公众号openid

这篇具有很好参考价值的文章主要介绍了微信小程序与公众号关联(同一主体),获取unionId并关联公众号openid。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

有一些同学在实际开发中,会有通过微信的openid获取公众号的openid,或者其他内容,这几天正好在研究这个功能的实现(已实现),现做思路上的简单分享,希望能对需要解决该问题的同学有所帮助,有误之处敬请指正。

工作流程

微信小程序的unionid查询同主体下的公众号openid,微信小程序,微信小程序,小程序,微信公众平台

开发工具

工具/语言/依赖 版本 备注
uniapp 2023-12
Springboot 2.1.12.RELEASE
weixin-java-miniapp 4.1.0 Springboot依赖包,兼容性请自行解决

问题

1.通过微信openid获取公众号的openid

2.通过unionid获取公众号的openid

3.其他通过openid、unionid相互获取

微信官方说明

极其重要:同一主体下的小程序与公众号未关联,无法在使用uni.login时通过code获取到unionid.

前置工作

解决该问题的大前提:在微信·开放平台对应路径绑定小程序、绑定公众号

具体操作:(略)

开发逻辑

整体思路:通过unionid关联微信小程序openid与公众号openid

1.微信小程序发起微信登录请求,需发送有效的code至后端待后续换取session信息;

2.微信小程序业务实现接口:存储获取到的微信小程序openid、unionid,备用;

3.微信公众号业务实现接口:获取accessToken、获取用户列表(主要是获取openid)、批量获取用户列表(关注与未关注的用户完整信息);

4.使用批量获取的用户列表结果中通过第二步中拿到的uinonid获取公众号的openid即可。

开发准备

Springboot 项目添加依赖

<!-- https://mvnrepository.com/artifact/com.github.binarywang/weixin-java-miniapp -->
<dependency>
    <groupId>com.github.binarywang</groupId>
    <artifactId>weixin-java-miniapp</artifactId>
    <version>4.1.0</version>
</dependency>

​

开发实操

1.java后端使用code置换seesion信息

// 1.获取微信会话信息
WxMaJscode2SessionResult sessionResult = wxService.getUserService().getSessionInfo(code);

2.存储微信小程序openid、session_key、unionid

3.微信公众号获取信息

3.1 获取access_token
https请求方式: GET 
url: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

APPID: 公众号appid
APPSECRET: 公众号的appsecret
3.2 获取公众号用户列表
获取关注微信公众号用户列表

/**
 * http请求方式:get
 * url: https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN
 * http请求返回的数据
 * {
 *     "total": 7,
 *     "count": 7,
 *     "data": {
 *         "openid": [
 *             "onitD6eh2CmVAjJyvXvjgaTmWVQo",
 *             "onitD6Rtzk8LYeTHIk07OseyIWI8",
 *             "onitD6SUQfEerhm7qhQvB5zRK6t4",
 *             "onitD6eSfArnbPs3RxoQu64ALFgU",
 *             "onitD6XQDKdWaYw2GUwEo1GYamkg",
 *             "onitD6fg0vwdpAnJR2rb3dkxPkqw",
 *             "onitD6StpbW2Nn7Srzl9J4WjShJ8"
 *         ]
 *     },
 *     "next_openid": "onitD6StpbW2Nn7Srzl9J4WjShJ8"
 * }
 */
3.3 批量请求用户信息
批量获取用户信息的请求参数:

/**
 * 批量请求用户信息的数据格式
 * http方式: POST
 * url: https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN
 * {
 *     "user_list": [
 *         {
 *             "openid": "xxxx",
 *             "lang": "zh_CN"
 *         },
 *         {
 *             "openid": "xxxx",
 *             "lang": "zh_CN"
 *         }
 *     ]
 * }
 */
批量获取用户信息的返回结果:

/**
 * 批量请求用户信息返回结果数据格式
 * url: https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN
 * http方式: POST
 * 返回结果:
 * {
 *    "user_info_list": [
 *        {
 *            "subscribe": 1,
 *            "openid": "xxxx",
 *            "language": "zh_CN",
 *
 *           "subscribe_time": 1434093047,
 *            "unionid": "xxxx",
 *            "remark": "",
 *
 *            "groupid": 0,
 *            "tagid_list":[128,2],
 *            "subscribe_scene": "ADD_SCENE_QR_CODE",
 *            "qr_scene": 98765,
 *            "qr_scene_str": ""
 *
 *       },
 *        {
 *            "subscribe": 0,
 *            "openid": "xxxx"
 *        }
 *    ]
 * }
 */

第一个为已关注的用户
第二个为未关注的用户

4.使用第四步中的返回结果unionid与第二步中微信小程序获取到的unionid关联

综上就完成了微信小程序与微信公众号信息的关联。

至于其他信息的关联和处理请大家自行想办法,至此结束。

Java与uniapp代码目前还未开放,待后续提供至个人github仓库。

有问题可以联系我:code_captain@163.com文章来源地址https://www.toymoban.com/news/detail-850577.html

到了这里,关于微信小程序与公众号关联(同一主体),获取unionId并关联公众号openid的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Java获取微信小程序code获取openid、session_key、unionid,获取授权信息解密获取手机号

    WechatUtils (具体实体类自己根据自己的业务需求配置就行) service impl实现类 👆这个代码已经可以解析出code信息,具体的业务流程自己去添加就ok 还是我们之前的WechatUtils,在里面添加getPhone方法 service impl实现类 👆以上就是本次的笔记了,大家有需要用的自取,有用记得点个赞

    2024年02月16日
    浏览(10)
  • 小程序进入webView进行微信公众号授权获取用户openId,用来判断用户是否关注与当前小程序关联的公众号

    小程序进入webView进行微信公众号授权获取用户openId,用来判断用户是否关注与当前小程序关联的公众号

    文档:网页授权 | 微信开放文档   4.1 appid:为公众号的appid,前期可以去申请测试公众号,地址:微信公众平台 4.2 redirect_uri:由后端提供,在这里面进行授权 4.3 response_type:授权获取到的code值,这里默认为code,后端会根据这个code来获取openId 4.4 scope:有两种类型,snsapi_

    2024年02月04日
    浏览(42)
  • 微信小程序中wx.login()获取到的openid、unionid、session_key含义及用处

    openid: 微信公众平台对用户的唯一标识 unionid: 同一个微信开放平台下的用户唯一标识 session_key: 会话密钥 可理解成1个微信用户打开1个微信公众号大门的唯一的1把钥匙 同一组织(企业)注册的不同类型公众平台,被看作是多个不同的账号 所以,当小明同学同时注册了统一企业的

    2024年02月02日
    浏览(22)
  • 微信小程序引导关注公众号(超详细),获取公众号openID,是否关注公众号信息

    微信小程序引导关注公众号(超详细),获取公众号openID,是否关注公众号信息

    需求背景:微信小程序里,需要判断使用该小程序的用户是否有关注该小程序关联的公众号,如未关注要引导用户去关注公众号(用于公众号推送信息) 官网: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html 接口(获取Code): 参数: APPID:公众号的唯

    2024年02月15日
    浏览(18)
  • 微信公众号和微信小程序进程名获取及配置

    微信公众号和微信小程序进程名获取及配置

    微信公众号和微信小程序使用到了webview,但是和混合应用有区别。微信公众号和微信小程序不是利用安卓默认的浏览器内核,做了二次开发,称为X5内核。 1、开启X5内核调试模式 这个操作必须在真机上进行,模拟器无法操作 1.1 微信版本在7.0以下(不包含7.0),可以在任意聊

    2024年02月10日
    浏览(37)
  • 微信小程序通过web-view网页授权获取用户公众号OpenID

    微信小程序通过web-view网页授权获取用户公众号OpenID

    第一步: 通过该地址 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfot=sandbox/index 获取到微信公众号测试号AppID与appsecret (测试公众号可以测试使用,个人公众号不允许使用。微信认证服务号可以使用,微信认证订阅号不可以使用)。 接口权限查看链接: https://developers.weix

    2024年02月08日
    浏览(11)
  • 微信小程序主体迁移

    微信小程序主体迁移

            由于公司经营要求,会出现将一个小程序的主体从A公司迁移到B公司的需求,本人全称操作了一次小程序的主体迁移,将迁移过程遇到的坑分享给大家,力求在做迁移的时候用最短的时间,对线上小程序影响最小。不多说,下面进入正题:         1,登录要迁

    2024年02月09日
    浏览(7)
  • 小程序静默授权获取unionid

    小程序静默授权获取unionid

    小程序静默授权获取unionid 用wx.login(Object object)放到app.js里面 效果: 您好,我是肥晨。 欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

    2024年02月03日
    浏览(11)
  • 微信小程序如何跳转微信公众号

    微信小程序如何跳转微信公众号

    登录微信公众号,点击【小程序管理】: 点击【添加】: 点击【关联小程序】: 输入小程序进行关联: 登录微信小程序,点击【设置】: 打开 “引导关注公众号”,设置需要关注的公众号: 首页添加代码: 如果关联的公众号为已认证企业号,可以添加如下代码: url 为公

    2024年02月11日
    浏览(121)
  • 企业微信工具栏获取外部联系人unionid

    企业微信工具栏获取外部联系人unionid

    企业微信H5获取外部联系人unionid 使用企业微信获取外部联系人unionid关联小程序,优先需要知道的是,企业微信可以通过用户userid获取到unionid,小程序可以通过openid,获取unionid,但是无法获取userid或者openid,两者只能通过统一unionid来关联。 特别需要注意的是,如果开发者拥

    2024年02月08日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包