本文相关代码地址:github 原文链接: 原文链接

测试账号地址:测试账号

授权获取信息


获取信息流程

企业微信截图_15903696148073.png

前端引导


测试账号需要设置回调地址
企业微信截图_15899384478073.png
企业微信截图_15899396164716.png


前端进入首页时引导用户打开下面链接

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

参数含义:

appid 公众号的唯一标识
redirect_uri 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
response_type 返回类型,请填写code
scope 应用授权作用域(snsapi_base  snsapi_userinfo )
state 一些自定义参数
wechat_redirect 无论直接打开还是做页面302重定向时候,必须带此参数


注意:

  • 回调地址 redirect_uri 使用 encodeURI 处理、
  • 顺序不能乱,scope=snsapi_userinfo 排在 response_type=code 的后面
  • scope

    • snsapi_base:不弹出授权页面,直接跳转,只能获取用户openid
    • snsapi_userinfo: 弹出授权页面,可通过openid获取用户信息 

当用户同意授权时,微信自动重定向至 redirect_uri ,同时会带上 code 参数

获取 access_token

通过上面带来的 code 信息,传递给后端服务,后端服务根据下方接口获取到授权信息

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

返回如下数据格式

{
  "access_token":"ACCESS_TOKEN",
  "expires_in":7200,
  "refresh_token":"REFRESH_TOKEN",
  "openid":"OPENID",
  "scope":"SCOPE" 
}

获取用户信息


如果授权作用域为 snsapi_userinfo

https://api.weixin.qq.com/sns/userinfo?
access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

返回如下数据格式

{   
  "openid":" OPENID",
  "nickname": NICKNAME,
  "sex":"1",
  "province":"PROVINCE",
  "city":"CITY",
  "country":"COUNTRY",
  "headimgurl":       "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
  "privilege":[ "PRIVILEGE1" "PRIVILEGE2"     ],
  "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

自定义菜单

个人订阅号不能自定义菜单,自定义菜单需要公众号认证


通过请求接口 POST https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN 


请求格式:

{
  "button":[
    {    
      "type":"view",
            "name":"Mondo",
      "url": "https://imondo.cn"
    },
    {
      "name":"菜单",
      "sub_button":[
        {    
          "type":"view",
          "name":"搜索",
          "url":"http://www.soso.com/"
        },
        {
          "type":"miniprogram",
          "name":"wxa",
          "url":"http://mp.weixin.qq.com",
          "appid":"wx286b93c14bbf93aa",
          "pagepath":"pages/lunar/index"
        },
        {
          "type":"click",
          "name":"赞一下我们",
          "key":"V1001_GOOD"
      }]
   }]
 }

具体参数可以查看文档详情


以上都可以使用微信提供的调试工具来对自己接口进行调试


欢迎关注公众号,大家一起共同交流和进步。


Mondo
968 声望19 粉丝

现在开始,从心出发