微信公众平台、微信公众平台.小程序、微信.开放平台三者关系及unionid

以下内容,仅限于根据自己开发以及阅读微信文档总结,错误之处敬请指出,共同进步!

一、微信公众平台、微信公众平台.小程序、微信.开放平台登录地址

项目 微信公众平台 微信公众平台.小程序 微信。开放平台
登录地址 https://mp.weixin.qq.com https://mp.weixin.qq.com https://open.weixin.qq.com
登录账号 sensor@**** 1960314645**** 2851513591****
简称 公众号平台 小程序平台 开放平台
微信认证 每年年审,费用 300元/年 无认证费用 需要一次性认证,认证费300元

这三个平台必须使用不同的账号申请,因为账号是邮箱地址,所以,必须使用3个不同的邮箱地址作为账号,如果某个邮箱地址已经是微信公众平台的账号,则这个邮箱地址就不能用于另外的两个平台。
事实上,微信公众平台为了和微信公众平台.小程序区分开来,也可以称作微信公众平台.公众号。以下简称:公众号平台、小程序平台、开放平台

二、登录成功后界面

  1. 公众号平台 (微信公众平台.公众号)
    微信公众平台、微信公众平台.小程序、微信.开放平台三者关系及unionid_第1张图片
  2. 小程序平台 (微信公众平台.小程序)
    微信公众平台、微信公众平台.小程序、微信.开放平台三者关系及unionid_第2张图片
  3. 开放平台(微信.开放平台)
    微信公众平台、微信公众平台.小程序、微信.开放平台三者关系及unionid_第3张图片

三、三者之间的关系

如果需要搞清楚三者之间的关系,就涉及到unionid。关于unionid,在【微信官方文档.公众号】是这样描述的:开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的
微信公众平台、微信公众平台.小程序、微信.开放平台三者关系及unionid_第4张图片
综上结合自己的理解:
1、公众号平台负责管理公众号;
2、小程序平台负责管理小程序;
3、每个平台对于某个用户都会产生一个OpenID,在单独的平台上这个OpenID是唯一的,但是如果某个用户既要使用公众号,又有小程序,那么在公众号和小程序平台上OpenID是分别不一样的。
4、此时就需要开放平台,凡是在开放平台登记的应用,对于这个开放平台都将使用一个统一的unionID。这样就可以在不同的平台上唯一确定某个用户了。

这么理解,公众号平台和小程序平台是相互独立的平台,可以各自开发各自的应用,如果是一个独立的应用,那么只需要使用OpenID就可以区别用户,例如如果只是使用公众号,不使用小程序,那么直接使用公众号的OpenID就可以了,繁殖对于小程序来说也是一样的。同一个用户在公众号平台和在小程序平台上的OpenID是不一样的,但是实际应用是经常会需要公众号和小程序同时使用,这样就需要使用开放平台来统一OpenID,最终出现了unionid。这个是唯一的,不变的!

四、小程序开发中关于使用Session_Key可以解开得到unionid问题

按照官方文档的说明,前端是可以通过 wx.login 获取到 code 登录凭证,然后在后台通过 auth.code2Session 换取openid,session_key,unionid,需要说明的是,unionid是用户在开放平台的唯一标识符,在满足 UnionID 下发条件的情况下会返回。那么满足什么样的条件会直接返回unionid呢?答案是注册认证微信开放平台,注意一定要认证,也就是说要交300元通过认证,这样后台就会直接返回unionid。否则,按照官方说的如果没有返回unionid,也可以通过session_key在后台进行解密,解密需要的相关参数需要前端通过wx.getUserInfo调用获取到userInfo,rawData,signature,encryptedData,iv,cloudID参数。后台通过加密算法解密,最终可以得到unionid。 我测试的时候,如果没有通过开放平台认证,密文数据中始终没有返回unionid,不知道不认证的情况下满足什么样的条件才会返回。

你可能感兴趣的:(微信开放平台,Delphi)