# 微信公众号开发

测试账号 (opens new window)

# 授权获取信息


获取信息流程 (opens new window)

# 前端引导


测试账号需要设置回调地址
企业微信截图_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

1
2
3
4
5
6

参数含义:

appid 公众号的唯一标识
redirect_uri 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
response_type 返回类型,请填写code
scope 应用授权作用域(snsapi_base
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
1
2

返回如下数据格式

{
  "access_token":"ACCESS_TOKEN",
  "expires_in":7200,
  "refresh_token":"REFRESH_TOKEN",
  "openid":"OPENID",
  "scope":"SCOPE" 
}
1
2
3
4
5
6
7

# 获取用户信息


如果授权作用域为 snsapi_userinfo

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

返回如下数据格式

{   
  "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"
}
1
2
3
4
5
6
7
8
9
10
11

# 自定义菜单

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

通过请求接口 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"
      }]
   }]
 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

具体参数可以查看文档详情 (opens new window)

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

更新于: 5/21/2020, 1:46:49 AM