ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

我的小程序之旅九—微信开放平台unionId机制介绍

2022-02-28 12:02:28  阅读:230  来源: 互联网

标签:openid code String RequestParam 微信 开放平台 旅九


一、机制说明

参考文档:https://developers.weixin.qq.com/minigame/dev/guide/open-ability/union-id.html

如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。

 

二、获取微信小程序的unionId

1、微信开放平台绑定小程序

2、调用wx.login()方法获取code

3、使用code调用

https://api.weixin.qq.com/sns/jscode2session?appid=appId&secret=secret&js_code=jsCode&grant_type=authorization_code

返回值如下

{
	"unionid":"oQ19D6OLhLKzJTOFJyx5nj2Yd-_g",
  "openid":"oKeNO44zXYi_sp9WqKZaHQwWvdmU",
  "session_key":"dFTHtJhhZcNvHvsvR1KnYg=="
 }

 

三、获取微信公众号的unionId

1、微信开放平台绑定公众号

 

2、配置服务回调域名和接口

3、当有事件(如关注公众号、在公众号里发消息),微信就会回调服务器地址并且将openId传过来

可以使用如下接口进行接收

/**
  * 公众号回调接口
  */
@RequestMapping(value = "/gzh/callback", method = RequestMethod.POST, produces = "application/xml; charset=UTF-8")
public String callback(@RequestBody String requestBody,
                       @RequestParam("signature") String signature,
                       @RequestParam("timestamp") String timestamp,
                       @RequestParam("nonce") String nonce,
                       @RequestParam("openid") String openid,
                       @RequestParam(name = "encrypt_type", required = false) String encType,
                       @RequestParam(name = "msg_signature", required = false) String msgSignatur

4、调用https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN获取unionId

参考文档:https://developers.weixin.qq.com/doc/offiaccount/User_Management/Get_users_basic_information_UnionID.html#UinonId

返回值如下:

{
    "subscribe": 1, 
    "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
    "language": "zh_CN", 
    "subscribe_time": 1382694957,
    "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL",
    "remark": "",
    "groupid": 0,
    "tagid_list":[128,2],
    "subscribe_scene": "ADD_SCENE_QR_CODE",
    "qr_scene": 98765,
    "qr_scene_str": ""
}

 

标签:openid,code,String,RequestParam,微信,开放平台,旅九
来源: https://www.cnblogs.com/wlovet/p/15944972.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有