为什么现在不返回unionId了?多了个expires_in: 7200,好像回到旧的体系了。原来绑定过并能得到unionId,今天重新登录后台服务器收不到unionId了。
允许我先明确一个问题:楼主提及的获取unionID接口是 wx.login 还是 wx.getUserInfo?
上面提到的“解密方式”是指 wx.getUserInfo 获得的encryptedData解密而得到的unionID。接口下发unionID条件是是"小程序已经绑定开发者帐号"。上述信息查到的小程序已经绑定,所以解密出来也肯定会有unionID。
而最近我们升级unionID获取方案是指“满足一定条件即可通过 wx.login 获取 unionid”。
同一个微信开放平台下的相同主体的App、公众号、小程序,如果用户已经关注公众号,或者曾经登录过App或公众号,则用户打开小程序时,开发者可以直接通过wx.login获取到该用户UnionID,无须用户再次授权。
按照上述提供的case,不满足条件“用户已经关注公众号,或者曾经登录过App或公众号”。所以wx.login是拿不到unionid的。
目前可以获取unionId的途径。
1、wx.getUserInfo succ回调返回,前提条件是小程序必须绑定了开放平台帐号,没有其他条件。
2、通过wx.login 获得code, 调用jscode2session接口返回。前提条件是小程序绑定了开放平台帐号,且用户曾经关注过同主体同开放平台下的公众号/移动app。这与小程序与公众号是否绑定没有关