getUserInfo() encryptedData解密后没有unionid

发布于 8 年前作者 qiangdu11027 次浏览最后编辑 8 年前来自 ask

请问这个是什么原因呢?

解密代码:

解密后的数据包:

10 回复
wei21
wei211 楼6 年前

您好,还是不太理解模板小程序

weimo
weimo2 楼6 年前

我是第一种方式,获得了解密文件 iv session 等信息解密的啊。

liangxiuying
liangxiuying3 楼6 年前

不  我的意思是你这个是模板的小程序吧  那个是没openid的   就你设置了extjson文件的话

renping
renping4 楼6 年前

那就不知道了  我只知道模板小程序中无法获得unionid的  自己日常用我还真没遇到过没unionid的情况

xiayong
xiayong5 楼6 年前

没有在平台将公众账号与小程序关联绑定吧!要绑定后才能获取到!或者你关注了该公众号,你可以在登录时通过

wx.login就能拿到unionid

jun87
jun876 楼6 年前

小程序获取用户unionid有两个途径 1、通过wx.getUserInfo获取到的密文中解密获得。 2、如果用户有关注同开发者帐号且同主体的公众号,或者用户有授权过同主体的移动应用。可以通过jscode2session获取。这里细则参看文档

https://mp.weixin.qq.com/debug/wxadoc/dev/api/uinionID.html

这是以前官方的答案

guiying91
guiying917 楼6 年前

需要在开放平台绑定后才能获取到unionid

vdai
vdai8 楼6 年前

这个获取不是需要满足一定条件的吗?你在社区搜索unionid有相关的帖子的

qiuwei
qiuwei9 楼6 年前

简答:因为你没有把小程序绑定到 腾讯开发平台 中

详解:

微信要求你:先要注册一个 腾讯开放平台

然后去开放平台中绑定你的小程序

然后用户用你的小程序,你小程序弹框授权,用户点击同意,内部获取到js_code,发送到服务器端

服务器端再去调用接口获取token,再去调用接口获取解密代码(可参考官网给的示例代码中的Python,Nodejs,C++,PHP等)去解密,才能拿到unionid。

下面部分纯属推测,仅供参考:

而从你截图看,你是用js代码去解密的(IDE是Sublime或VSCode?)

-》感觉不像是服务器端之一的nodejs的js代码?

-》如果你是在前端小程序中的js代码去解密,本身和标准流程不一致

-》需要放到后端服务器端去做解密的事情

wsong
wsong10 楼6 年前

不是的。是NODEJS后端解码的。