概述
环境准备
微信公众平台配置位置:开发 – 基本配置 – 服务器配置 中点击启用。
这里所谓的开发环境准备主要指的是我们项目服务端和微信服务端的网络通讯环境准备。
我们平常开发可能只需要IP端口就能通讯,顶多配置下白名单放行,但微信公众号开发我们需要通过域名通讯(微信会访问我们配置的域名地址:服务器基本配置中的URL,下面会介绍),也就是我们各自开发环境需要拥有独立的域名,微信就能通过这个域名请求到我们的本地开发服务,各自进行开发测试。
总体来说就是配置我们的后台服务器,用于验证来自微信服务器的消息和接入微信。
服务器接入
开发-基本配置-服务器配置中的基本参数
开发者ID(AppID)
公众号唯一开发识别码,配合开发者命名可以调用公众号的接口能力
开发者密码(AppSecret)
校验公众号开发者身份的密码,具有极高的安全性。切记勿把密码直接交给第三方开发者或直接存储在代码中。如需第三方代开发公众号,请使用授权方式接入。其中获取accessToken就需要同时传入AppId和AppSecret获取。
服务器地址(URL)
是开发者用来接收微信消息和事件的接口URL,也就是我们服务器后端的入口地址,需要注意的是该地址必须以域名形式填写,且必须以http或https开始,分别支持80端口和443端口。如:http://yuanj.natapp1.cc/wechat
令牌(Token)
由开发者任意填写,用作生成签名(该Token会和接口Url中包含的Token进行比对,从而验证安全性),也就是我们项目后端和腾讯的微信服务器端进行通信时,必须保证公众平台配置的Token和我们后台配置的Token保持一致,这样微信就能验证我们的身份。
EncodingAESKey
该参数由开发者手动填写或随机生成,将用作消息体加解密密钥,我们前期可以采用明文模式进行开发测试,暂时先不用关注。
服务器接入流程
填写服务器配置
1、微信公众号后台填写验证后端服务器的接口URL、Token
我们点击提交时,微信会以GET请求的方式访问我们配置的URL地址,并附加几个参数进行验证,所以你需要在该地址对应的项目后端接口里对这几个参数进行加工处理,返回微信需要的结果,这样就可以验证成功,使微信服务端认可你配置的URL和Token参数,后续就能互相通信了!
2、验证服务器地址的有效性
配置URL、Token两个参数,点击提交,微信会以GET请求的方式访问我们配置的URL地址,并附加几个参数进行验证,所以你需要在该地址对应的项目后端接口里对这几个参数进行加工处理,返回微信需要的结果,这样就可以验证成功,使微信服务端认可你配置的URL和Token参数,后续就能互相通信了!
服务器验证接口,该接口只会在页面填完后提交保存时使用一次,没有其他场景会调用。
鉴权流程
主动获取用户openId
通过获取code地址获取授权code
通过获取code地址获取code(https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect)
重点参数是redirect_uri,这个参数填的既可以是前端项目url,也可以是后端接口Url;不管是通过前端还是后端调用获取code地址后,微信服务器收到请求后,会重定向到我们填写的redirect_uri,会在此redirect_uri后拼接上一个code参数。
重定向到我们配置的地址后,我们可以通过上步的code获取access_token、openId等
重定向到我们配置的地址后,我们可以通过上步的code获取access_token、openId等(https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code)
调用地址后的主要返回值如下:
- openid
用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用和公众号唯一的OpenId。 - access_token
网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同(基础支持的access_token是通过oauth2客户端认证方式获取的access_token)。 - scope
用户授权的作用域,使用逗号(,)分隔
通过用户openId获取用户信息
拉取用户信息(相当于去资源服务器获取资源)需要拉取方拥有scope为snsapi_userinfo的权限,使用下面接口获取:
用户信息获取地址获取用户信息(https://api.weixin.qq.com/sns/userinfo?access_token=xxx&openid=xxx&lang=zh_CN)
基础支持的access_token(不调用公众号提供的功能可以不去获取)
access_token是公众号的全局唯一接口调用凭据,调用公众号提供的功能时是都需要使用access_token。开发者需要妥善保存,access_token的存储只是要保留512个字符空间。access_token的有效期目前为2小时(7200s),需定时刷新,重复获取将导致上次获取的access_token失效。
获取access_token
方法1:
使用oauth2的客户端认证方式,通过AppId、AppSecret到微信认证服务器(https://api.weixin.qq.com/cgi-bin/token)获取access_token。
方法2:
通过oauth2的客户端认证流程:
- 客户端向认证服务器进行身份认证,并要求一个访问令牌;
- 认证服务器确认无误后,向客户端提供访问令牌;
- 客户端携带令牌向资源服务器请求访问资源;
- 资源服务器返回资源。
配置微信菜单
需要在微信公众号里配置微信菜单。
配置业务入口url。
业务交互
微信鉴权完成后,业务的交互直接使用业务服务器自己的可访问url就可以了。
鉴权完成后,进入业务页面就像正常开发一样,前后台使用真实的url正常交互就可以了。
参考
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100135.html