- 当前 Bug 的表现:
小程序使用微信账号登录时,请求微信授权返回的信息有点奇怪,只有openid,没有unionid;
我们现在注册登录全是用unionid的,就报错了;
非常的诡异。
小程序上已经是调用接口 wx.getUserInfo来获取UnionID,但是部分用户微信登录时候,却获取不到?
如下面异常信息没有unionid:
object(stdClass)#25 (2) {
["session_key"]=>
string(24) "9J6u+ywvbQQTggJfTlPi8g=="
["openid"]=>
string(28) "osgEB5e2_RrNU4N4f5e8xcTREN8s"
}
- 预期表现
object(stdClass)#24 (3) {
["session_key"]=>
string(24) "EoRkGVV54XoB5+s5Kguo0A=="
["openid"]=>
string(28) "osgEB5SEojaE9yGB8bE83wOmBObQ"
["unionid"]=>
string(28) "o3BP7w4kci7rYCN5qAo7SXUVQfIc"
}
因为目前官网PC端、移动APP和小程序都是绑定在同一个微信开放平台账号下的,使用微信登录,考虑小程序登录账号统一性使用unionid来登录,但是出现如上异常,导致部分用户的微信账号无法登录小程序。
现在的情况就是,100个用户中可能有2到3个用户,无法使用微信登录这个情况。
急,求帮忙指点下~
,用户是否已经关注该公众号
有关注的,按道理说,即使用户未关注公众号。
小程序通过wx.getUserInfo来获取UnionID,也是可以的吧?
未关注的需通过解密返回
请问下,通过解密返回是指原接口已返回的加密串进行解密得到呢,还是要另外调用其他接口获得?如果是第一点,我们已经是通过解密来获取openID和unionID了的
解密也没有嘛?
我们是按照官方提供文档接入,好像还是不行呢。
程序流程是这样的:
小程序调用wx.getUserInfo接口,获得iv、signature、encryptedData
后端获取上面三个值后,调用jscode2session获取session_key
最后使用iv、session_key来解密encryptedData
encryptedData是在第一步wx.getUserInfo接口获得的
jscode2session只是为了获取session_key
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html#%E5%8A%A0%E5%AF%86%E6%95%B0%E6%8D%AE%E8%A7%A3%E5%AF%86%E7%AE%97%E6%B3%95
解密