微信openId是微信公众号和用户相互绑定的唯一标识
获取微信openId
第一步:填写服务器配置
url必须以http://或https://开头,支持80端口和443端口
Token是服务器端特定验证字符串
EncodingAESKey是随机校验字符串
消息加密形式可选明文和密文
验证通过后即可通过微信公众号访问第三方服务器
第二步:请求微信服务器获取用户code
访问地址 https://open.weixin.qq.com/connect/oauth2/authorize
参数
appid 必填字段 公众号的唯一标识
redirect_url 必填字段 授权后重定向的回调链接地址,请使用urlEncode对链接进行处理
response_type 必填字段 返回类型,请填写code
scope 必填字段 应用授权作用域,snsapi_base(不弹出授权页面)或snsapi_userinfo(弹出授权页面)
state 选填字段 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
请求实例:https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx********as6d&redirect_uri=http%3a%2f%2feip.hljtx.com%2fsafefood%2fwechat%2fgetOpenId.do&response_type=code&scope=snsapi_userinfo&state=123
回调路径 http://eip.hljtx.com/safefood/wechat/getOpenId.do 必须是和第一步设置的服务器域名相同
通过回调第三方服务器获取到code
第三步:请求微信服务器获取用户openId
获取微信回调code后,需再次请求微信服务器
访问地址 https://api.weixin.qq.com/sns/oauth2/access_token
参数
appid 必填字段 公众号的唯一标识
secret 必填字段 公众号的appsecret
code 必填字段 填写第二步获取的code参数
grant_type 必填字段 authorization_code
尤其注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。
我们必须在服务器端进行http请求
请求成功后获取到微信服务器返回的JSON
正确时返回的JSON数据包如下:
{ "access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID","scope":"SCOPE" }
解析JSON数据包可获取到openId及access_token
注意:access_token有效时间为2小时,后期后需要重新刷新