微信公众号和微信小程序均不能获取unionId
发布于 6 年前 作者 linqiang 9043 次浏览 来自 问答

我有一个微信小程序APPID为:wxbcc9395b803c43b2 ,一个微信订阅号APPID为:wxd70b90a01ce9c343 以及一个服务号APPID为:wx6d0fa8adb70b9c9f 。三个号为同一主体:成都丘山科技有限公司。

刚开始的时候,我的小程序是通过微信认证(300元)了的,订阅号只是通过了打款认证,我使用小程序API :wx.getUserInfo 获取用户信息,将encryptedData以及iv发送给后台进行解密,解密出来的数据中没有unionid,在调用wx.getUserInfo之前调用过wx.login,也尝试过直接通过 code2Session 进行unionid获取,也同样没有返回unionid,我尝试的微信号是我自己的,是关注了订阅号的。

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

在以上方法无果的情况下,我猜测是订阅号没有通过微信认证的原因导致的,所以我又注册了一个服务号,通过了微信认证,然后我的微信号关注了

这个服务号,使用以上方法同样无法获取unionid,因为我的订阅号已经拥有了获取用户信息的权限,我又尝试了对应接口:

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

仍然没有返回unionid。

综上,通过小程序的wx.getUserInfo 以及 wx.login+code2Session方式和微信服务号的接口方式都无法获取用户的unionid,目前还没有尝试通过支付后的getPaidUnionId来获取unionid,所以请教下,是否有人遇到过类似的情况,是什么原因导致的?是哪里还需要设置吗?判断账号关联(是否同一主体)应该是微信系统直接完成的吧?

1 回复

https://open.weixin.qq.com

注册完成,绑定公众号,绑定小程序

UnionID 机制说明

如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

回到顶部