• 微信公众号获取openid流程


    说明

    微信公众号获取openid,在官方文档中称为网页授权,授权有两种scope,snsapi_base和snsapi_userinfo,snsapi_base是静默授权,不需要用户同意,以下要说的就是静默授权。

    关于网页授权的两种 scope 的区别说明
    以snsapi_base为 scope 发起的网页授权,是用来获取进入页面的用户的 openid 的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
    以snsapi_userinfo为 scope 发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
    用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户 OpenID 来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。

    步骤

    获取openid的步骤是固定的,在此过程中要填入公众号的appid、appSecret

    1. 微信中请求https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${redirect_uri}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect ,注意填入appidredirect_uri
    2. 微信会请求上一步填写的redirect_uri(此时的redirect_uri相比较上步填写的redirect_uri多了code),比如http://mydomain.com?myparam=myvalue&code=xxx,redirect_uri中的域名要在公众号管理平台配置,微信公众管理平台,开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息 的配置选项中,修改授权回调域名,注意是域名而不是url,比如是www.qq.com,而不是http://www.qq.com,详情请参考官方文档
    3. 开发者服务器收到redirect_uri请求后,请求https://api.weixin.qq.com/sns/oauth2/access_token?appid=${appid}&secret=${appsecret}&code=${code}&grant_type=authorization_code,就可获得openid,返回参数格式
    {
      "access_token":"ACCESS_TOKEN",
      "expires_in":7200,
      "refresh_token":"REFRESH_TOKEN",
      "openid":"OPENID",
      "scope":"SCOPE" 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

  • 相关阅读:
    GDAL库学习
    Docker 学习视频集 bilibili
    Android14之java层:增加系统API(二百二十)
    MAP和MLE的区别(自用)
    Vue学习之--------组件在Vue脚手架中的使用(代码实现)(2022/7/24)
    Springmvc中对请求的处理
    JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服
    保姆级JAVA 性能指标、压测入门
    [区间dp]添加括号
    内网初步探测与扫描
  • 原文地址:https://blog.csdn.net/wangjun5159/article/details/127450393