公众号
- 订阅号
- 个人
- 服务号
- 企业与组织
微信公众号接入
-
填写服务器配置
- URL
- 服务器地址
- Token
- 令牌
- EncodingAESKey
- 消息加解密密钥
- URL
-
验证消息的确来自微信服务器
- 微信服务器将发送GET请求到填写的服务器地址URL上
- signature
- timestamp
- nonce
- echostr
- 步骤
- 将token、timestamp、nonce三个参数进行字典序排序
- 将三个参数字符串拼接成一个字符串进行sha1加密
- 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
- 返回echostr参数
- 微信服务器将发送GET请求到填写的服务器地址URL上
-
access_token管理
- 获取access_token
- https://api.weixin.qq.com/cgi-bin/token
- grant_type=client_credential
- appid=APPID
- secret=APPSECRET
- https://api.weixin.qq.com/cgi-bin/token
- 获取access_token
{"access_token":"ACCESS_TOKEN","expires_in":7200}
网页授权
-
scope
- snsapi_base
- 用户无感知,仅能获取openId
- snsapi_userinfo
- 许用户授权,可以获取用户基本信息
- snsapi_base
-
第一步
- 用户授权,获取code
- https://open.weixin.qq.com/connect/oauth2/authorize
- appid=APPID
- redirect_uri=REDIRECT_URI
- response_type=code
- scope=SCOPE
- state=STATE#wechat_redirect
- 返回
- redirect_uri/?code=CODE&state=STATE
-
第二步
- 通过code获取accsess_token
- 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"
}
- 第三步
- 刷新access_token
- https://api.weixin.qq.com/sns/oauth2/refresh_token
- appid=APPID
- grant_type=refresh_token
- refresh_token=REFRESH_TOKEN
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
-
第四步
- 拉取用户信息
- scope=snsapi_userinfo
- https://api.weixin.qq.com/sns/userinfo
- access_token=ACCESS_TOKEN
- openid=OPENID
- lang=zh_CN
-
第五步
- 验证access_token是否有效
- https://api.weixin.qq.com/sns/auth
- access_token=ACCESS_TOKEN
- openid=OPENID
{ "errcode":0,"errmsg":"ok"}