项目 | 微信公众平台 | 微信公众平台.小程序 | 微信.开放平台 |
---|---|---|---|
登录地址 | https://mp.weixin.qq.com | https://mp.weixin.qq.com | https://open.weixin.qq.com |
简称 | 微信公众平台 | 小程序平台 | 开放平台 |
微信认证 | 每年年审,费用 300元/年 | 无认证费用 | 需要一次性认证,认证费300元 |
三个平台必须使用不同的账号申请,使用3个不同的邮箱地址作为账号。
以下简称:公众号平台、小程序平台、开放平台。
关于unionid,在【微信官方文档.公众号】是这样描述的:开发者可通过OpenID来获取用户基本信息。同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
综上结合自己的理解:
1、公众号平台负责管理公众号;
2、小程序平台负责管理小程序;
3、每个平台对于某个用户都会产生一个OpenID,在单独的平台上这个OpenID是唯一的,但是如果某个用户既要使用公众号,又有小程序,那么在公众号和小程序平台上OpenID是分别不一样的。
4、此时就需要开放平台,凡是在开放平台登记的应用,对于这个开放平台都将使用一个统一的unionID。这样就可以在不同的平台上唯一确定某个用户了。
如果是一个独立的应用,同一个用户在公众号平台和在小程序平台上的OpenID是不一样的,可以区别用户。但是实际应用是经常会需要公众号和小程序同时使用,这样就需要使用开放平台来统一OpenID,最终出现了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,不知道不认证的情况下满足什么样的条件才会返回。
一个小程序账号对应一个小程序,可发布一个小程序上线。如果需要开发多款小程序,请注册新的账号。参考
点击上传旁边的详情按钮,打开配置页面,修改项目addip,修改成需要覆盖的线上小程序id即可。参考