--------------------小程序多平台前端开发笔记--------------------
微信多平台开发:
微信公众平台 包含:微信公众号 app微信登录 微信小程序
微信开放平台账号:可以将微信公众平台(微信公众号 app微信登录 微信小程序)关联起来的账号
openid:用户在某个平台的唯一标识
unionid:用户在某个微信开放平台账号的唯一标识
(openid和unionid无法区分请看文章底部举例,可全文Ctrl+F搜索"例子")
小程序三个重要环节(获取openid流程 获取UnionID流程 获取手机号流程)
--------------------过程--------------------
小程序中获取openid可以静默获取,通过wx.login返回code值,code值调服务器接口解密返回openid(未授权则不包含unionid)
获取openid
可以静默获取(前端传递code到服务器,服务器调用auth.code2Session返回openid)
获取unionid
通过wx.login返回code值,用code去服务器换取seeionkey
用户授权设置后,会返回加密信息encryptedData和iv,把三个值传给服务端解密返回openid和unionid
解密手机号
通过wx.login返回code值,用code去服务器换取session_key
用户授权设置后,会返回加密信息encryptedData和iv,把三个值传给服务端解密返回openid和unionid
注意点:
需要提前获取session_key(建议onload的时候就获取session_key),防止刷新登录态
用户授权后,需要wx.checkSession检查session_key是否有效,无效则重新获取
-------------------结束--------------------
--------------------openid和unionid例子--------------------
1.厉害公司 同时开发了 厉害app 厉害小程序 厉害微信公众号,但是没有注册微信开放平台把他们绑定在一起
结果:开发无法通过判断opednid是否是同一个人
此时,小明和小红同时使用了这三款产品
小明 openid
厉害app 1
厉害小程序 2
厉害微信公众号 3
小红 openid
厉害app 11
厉害小程序 22
厉害微信公众号 33
2.厉害公司 同时开发了 厉害app 厉害小程序 厉害微信公众号,但是注册微信开放平台把他们绑定在一起
结果:开发可以通过unionid判断用户在三个平台是否是同一个人
此时,小明和小红同时使用了这三款产品
小明 openid unionid
厉害app 1 1
厉害小程序 2 1
厉害微信公众号 3 1
小明 openid unionid
厉害app 11 2
厉害小程序 22 2
厉害微信公众号 33 2
--------------------openid和unionid例子--------------------
---------------------------其他问题----------------------------
- 使用微信支付,必须开通商户号,一个APPID可与多个商户号创立绑定关系,一个商户号可与50个appid授权绑定;绑定后,暂不支持解绑或换绑。
- 小程序业务域名,最多支持20个可信域名,配置了一级域名不需要再次配置二级域名。