sns/component/jscode2session
sns/jscode2session
2个接口我都没取到 unionID ,但后面的解密中可以取到。
如果有影响 官方说明的特别注意 是不是矛盾了?
用户首先第一次通过小程序打开,此时因为该用户没有关注同一主体的其他公众号,或者使用过app,login的时候获取不到unionId,官方的解释是:
同一个微信开放平台下的相同主体的App、公众号、小程序,如果用户已经关注公众号,或者曾经登录过App或公众号,则用户打开小程序时,开发者可以直接通过wx.login获取到该用户UnionID,无须用户再次授权。
如果直接开放了unionid,就会出现这种情况:当你作为一个用户进入一个小程序,这个小程序并没要求你授权就直接把你的头像昵称显示出来(它之前把unionId对应的头像昵称都存了下来),但是这个小程序主体(open平台主体和公众平台主体并不相同)相关的任何一个应用你从来没用过,你会不会觉得很奇怪并且很不舒服,觉得自己在微信内的用户信息没有丝毫的保障?
第一:授权问题
目前规则是,同一个开放平台,相同主体,公众号A和小程序A属于一个主体,用户第一次打开小程序A的时候,login拿不到unionID,试想因为是第一次,开放unionID也暴露不了任何隐私,但是对于开发来说,后续这个用户关注公众号,因为第一次unionID,很容易就做好用户统一,且无需用户授权。这体验才是最好啊。
第二:卡券用户唯一问题
因为现在商户基本都是小程序和公众号,也都是绑定在一个开放平台,在卡券领取,分享,转赠的时候,都只有相对微信公众号的openID。一个场景,用户A分享一张券给用户B,用户B领取,事件中只能拿到openId,如果用户B只用了商户的小程序,没有关注公众号,此时只能创建新用户C。当用户B再次打开商户的小程序,却看不到这张券。其实用户B和C应该是同一个用户。