收藏
回答

公众号中怎么通过接口获取openid?

因为域名的80和443端口没有开放,不能通过网页授权的方式获取openID,是否有直接调用接口的方式拿到呢?

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

3 个回答

  • 跨商通
    跨商通
    07-29

    没有。必须开放。

    07-29
    有用 1
    回复
  • CRMEB
    CRMEB
    07-29

    1.配置网页授权回调域名:虽然 80 和 443 端口未开放,但仍需在微信公众平台的相关设置中填写域名(注意是域名,不是具体的 URL,且不要添加 http:// 等协议头)。

    2.引导用户打开授权链接:在前端代码中,构建授权链接并引导用户打开,链接格式如下:

    https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=redirect_uri&response_type=code&scope=scope&state=state#wechat_redirect

    其中,appid 为公众号在微信的 appid;redirect_uri 为处理授权回调的页面地址(需进行编码处理);scope 可选择 snsapi_base(只能获取用户 openid)或 snsapi_userinfo(可获取更多用户信息,需用户授权);state 为自定义参数。

    3.后端获取 code 并换取 openid:用户同意授权后,微信会将用户重定向到 redirect_uri,并带上 code 参数。后端接收到 code 后,通过发送请求到微信接口来换取 openid 和 access_token,接口如下:

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid&secret=appsecret&code=code&grant_type=authorization_code

    其中,appid 和 secret 为公众号的相关信息,code 为上一步获取到的参数。


    07-29
    有用 1
    回复 1
    • 沈阔行
      沈阔行
      07-29
      你好,因为80 和 443 未开放,在网页授权上配置redirect_uri时,又只能80/443,所以配置完了打不开页面
      07-29
      回复
  • hello world
    hello world
    07-29

    用户关注公众号也可以获取到

    07-29
    有用 1
    回复
登录 后发表内容