收藏
回答

cgi-bin/user/info获取用户信息接口使用unionId调用失败?

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 这个接口用公众号openId成功拿到了unionId,但是拿这个unionId却调不通,报错【invalid openid hint】,我看文档上是说用unionId可以调通的。有大佬知道原因吗

ps:1.公众号已绑定到开放平台,

2.access_token是有效的

3.用unionId调用时参数名用【openid】或【unionId】都尝试了,都调不通

回答关注问题邀请回答
收藏

2 个回答

  • 微盟
    微盟
    2023-04-10

    如果在调用 cgi-bin/user/info 接口时使用 unionid 参数获取用户信息失败,可能是由于以下原因:

    1. 用户未关注公众号或未授权给该公众号获取其 unionid。在用户未关注公众号时,无法通过公众号接口获取其 unionid。在用户授权给公众号获取其 unionid 后,公众号可以通过 access_token 调用 cgi-bin/user/info 接口来获取用户的详细信息,包括 unionid
    2. 公众号未通过微信认证。在公众号未通过微信认证时,无法获取用户的 unionid,因此在调用 cgi-bin/user/info 接口时也无法获取用户的详细信息。
    3. 接口调用方式错误。在使用 unionid 参数获取用户信息时,需要使用 OAuth2 授权方式,先通过 snsapi_basesnsapi_userinfo 授权方式获取到用户的 access_token,然后再使用 access_token 调用 cgi-bin/user/info 接口来获取用户的详细信息。如果调用方式不正确,也可能导致无法获取用户的 unionid

    针对上述情况,可以按照以下步骤排查和解决问题:

    1. 确认用户是否已关注公众号,并且已授权给该公众号获取其 unionid。可以通过微信公众平台后台的用户管理功能来查看用户的详细信息和授权情况。
    2. 确认公众号是否已通过微信认证。可以通过微信公众平台后台的开发设置页面来查看公众号的认证情况。
    3. 确认接口调用方式是否正确。可以参考微信公众平台开发文档中关于 OAuth2 授权方式和 cgi-bin/user/info 接口的详细说明来检查接口调用方式是否正确。可以尝试使用 snsapi_base 授权方式来获取用户的 openid,然后再通过 access_token 调用 cgi-bin/user/info 接口来获取用户的详细信息。如果仍然无法获取到用户的 unionid,可以联系微信公众平台技术支持来寻求帮助。


    2023-04-10
    有用
    回复 1
    • Mr.Zhao
      Mr.Zhao
      2023-04-10
      chatGPT的答案吗
      2023-04-10
      回复
  • Mr.Zhao
    Mr.Zhao
    2023-04-10

    没看懂为啥要用unionid去查询?

    2023-04-10
    有用
    回复 3
    • 黄灰红
      黄灰红
      2023-04-10
      我们这边需要在微信小程序里判断用户是否订阅公众号,只能拿到用户的unionId
      2023-04-10
      回复
    • Mr.Zhao
      Mr.Zhao
      2023-04-10回复黄灰红
      只能传openid
      2023-04-10
      回复
    • 黄灰红
      黄灰红
      2023-04-10
      好的,谢谢
      2023-04-10
      回复
登录 后发表内容