小程序已经绑定到开放平台,但小程序jscode2session方法依然不返回unionid,有解吗?
发布于 7 年前 作者 wsong 8850 次浏览 来自 问答

如题,开放平台已经开通认证,小程序也是上线版本,两者是同一个主体,但是小程序绑定到开放平台后,在后端调用jscode2session,依然只返回openid,不会返回unionid,怎么处理呢?

想一开始就获取到unionid,为以后上APP做准备。


已找到方案,直接把小程序绑到开放平台后,通过解密数据获取unionid,同时遇到了很坑的sessionkey导致解密报错的问题,是wxlogin会触发sessinonkey刷新,参考资料如下:

  //session_key失效导致"校验签名失败或解密失败":

//1,确保调用顺序为:先登录拿到code换取sessionkey,然后才去拿“加密的用户授权信息”进行解密,反过来先有加密信息再去获取解密的sessionkey是不对的。

//2,wx.login会“无规律”去刷新sessionkey,所以如果先拿“加密的用户信息”再根据code获得的sessionkey,碰上了login触发刷新,解密时就会报错“填充无效,无法被移除”

            //www.mamicode.com/info-detail-2431223.html

            //www.cnblogs.com/fancyblogs/p/9560268.html

            //www.cnblogs.com/microestc/p/11828654.html

            //developers.weixin.qq.com/community/develop/doc/0006c2d816000003f8a73340051000?highLine=remove

3 回复

必须满足条件,单独一个小程序获取不到unionid

必须用户在两个端口都授权才可以获取unionid。

。。。。。

这都是啥回答呀,误人子弟

小程序获取unionid只需要小程序绑定到开放平台就行了,别的啥也不需要,你别听他们误导你,什么啊

只不过你不能简单的通过jscode2session来获取了而已

你需要用button让用户授权然后拿到encryptedData和iv 然后传到后台结合session_key来解密用户信息,解密出来的数据就一定有unionid

回到顶部