微信相关

①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳✕✓✔✖

关于登陆,就离不开微信

1. 开放平台

开放平台的网址,具体包含了如下功能

  • 移动应用
  • 网站应用
  • 第三方平台
  • 服务平台
  • 小程序硬件框架
  • 其他
    • 资源下载
    • 返回码

1.1 网站应用

主要功能是:

  • 微信登陆
  • 微信智能接口

主要步骤:

  • 申请一个账户
  • 微信登陆
    • 获取 access_token
    • 获取用户信息
    • 接收微信服务器的消息推送
      • 参数配置
      • 用户取消授权
  • 微信智能接口
    • 使用 grant_type=client_credential 获取 token
    • 调用这个https://api.weixin.qq.com/semantic/semproxy/search网址做只能查询,例如:"查一下明天从北京到上海的南航机票"

关键点:

拿到文档,不要太着急,先按照的文档,用 postman 来测试一下。

第一步:请求 code

https://open.weixin.qq.com/connect/qrconnect?appid=wxd2dcccd8f0204763&redirect_uri=http://127.0.0.1/ok&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect

网页应用目前 scope 仅填写 snsapi_login

第二步:通过 code 获取 access_token

http请求方式: GET
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxd2dcccd8f0204763&secret=SECRET&code=CODE&grant_type=authorization_code

返回参数

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

第三步:获取个人信息与 unionid

为什么要获取unionid呢? 因为对同一个微信开放平台下的不同应用,unionid是相同的

http请求方式: GET
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

正确的 Json 返回结果:

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

其他常用接口

对于接口作用域(scope),能调用的接口有以下:

授权作用域(scope)接口接口说明
snsapi_base/sns/oauth2/access_token通过 code 换取 access_token、refresh_token 和已授权 scope
snsapi_base/sns/oauth2/refresh_token刷新或续期 access_token 使用
snsapi_base/sns/auth检查 access_token 有效性
snsapi_userinfo/sns/userinfo获取用户个人信息

1.2 第三方平台

想成为一个第三方开发平台,可以参考本章节。