码迷,mamicode.com
首页 > 微信 > 详细

微信开发之网页授权

时间:2017-12-03 13:02:07      阅读:353      评论:0      收藏:0      [点我收藏+]

标签:ima   xls   回调   信息   ase   bsp   ref   hat   alt   

第一步:成为开发者

  在自己的公众号点击基本配置,点击基本配置,填写服务器配置

技术分享图片

技术分享图片

Url服务器地址是微信回调地址,必须以 http://或https://开头,端口号必须为80或443。 
Token令牌由用户自己定义,数字或字母,长度为3~32字符。 
EncodingAESKey随机生成即可。 
加密方式可以选明文模式和安全模式

点击提交,微信会发送请求到你填写的url地址验证服务器是否与所填写的资料匹配,配置成功则可以开始开发了

第二步:微信网页授权

微信授权分为静默授权和非静默授权

静默授权:用户感受不到他们操作了授权,公众号开发者获取的资料较少,

非静默授权:用户需要点击授权,开发者获得用户较多的信息,比如所在省市,昵称头像等

前提配置:

1.获取公众号appIDappsecret

2.开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名,:www.qq.com,不用加http等协议

技术分享图片

技术分享图片

授权步骤:

1.用户关注微信公众账号。

2.微信公众账号提供用户请求授权页面URL。公众号提供一个链接或二维码或点击的自定义菜单,若用户点击,开发者服务器向微信服务器接口发送请求获取code,

获取code的微信服务器接口:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

:https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx4a22b50d7e897f97&redirect_uri=http%3a%2f%2fad.seewo.com%2foauth.php&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect

*Appid: 公众号的唯一标识(这个就是我们前面申请的)

*redirect_uri: 授权后回调的url(这里需要具体,在我们前面设置的回调域名后加具体的文件或方法地址)

*response_type: 返回类型,请填写code

*Scope: 应用授权作用域,snsapi_base (静默授权,不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)

State: 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节,该值会被微信原样返回,我们可以将其进行比对,防止别人的攻击。

#wechat_redirect:直接在微信打开链接可不填此参数。做页面302重定向时候,必须带此参数

3.用户点击授权页面URL,将向服务器发起请求

4.服务器询问用户是否同意授权给微信公众账号(snsapi_base时无此步骤)

 技术分享图片

5.用户同意(snsapi_base时无此步骤)

6.服务器将CODE通过回调传给微信公众账号,同时给回调域名根目录下所有php文件

7.微信公众账号获得CODE,域名下php文件获取code

8.微信公众账号通过CODE向服务器请求Access Token,域名下PHP文件请求access token

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

:https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx41cb8dbd827a16e9&secret=d4624c36b6795d1d99dcf0547af5443d&code=00137323023ab55775be09d6d8e75ffA&grant_type=authorization_code

 

*Appid 公众号的唯一标识

*Secret 公众号的appsecret

*Code 填写第一步获取的code参数

*grant_type    填写为authorization_code

9.服务器返回Access TokenOpenID给微信公众账号和回调域名

正确返回如下:

{

   "access_token":"ACCESS_TOKEN",

   "expires_in":7200,

   "refresh_token":"REFRESH_TOKEN",

   "openid":"OPENID",

   "scope":"SCOPE"

}

access_token 网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同

expires_in access_token 接口调用凭证超时时间,单位(秒)

refresh_token 用户刷新access_token

Openid 用户唯一标识

Scope 用户授权的作用域,使用逗号(,)分隔

10.微信公众账号通过Access Token向服务器请求用户信息(snsapi_base时无此步骤)

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

11.服务器将用户信息回送给微信公众账号(snsapi_base时无此步骤)

{

   "openid":" OPENID",

   " nickname": NICKNAME,

   "sex":"1",

   "province":"PROVINCE"

   "city":"CITY",

   "country":"COUNTRY",

    "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",

"privilege":[

"PRIVILEGE1"

"PRIVILEGE2"

    ],

    "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"

}

 

Openid 用户的唯一标识

Nickname 用户昵称

Sex 用户的性别,值为1时是男性,值为2时是女性,值为0时是未知

Province 用户个人资料填写的省份

City 普通用户个人资料填写的城市

Country 国家,如中国为CN

Headimgurl 用户头像,最后一个数值代表正方形头像大小(有0466496132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。

Privilege 用户特权信息,json 数组,如微信沃卡用户为(chinaunicom

Unionid 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:获取用户个人信息

 

微信开发之网页授权

标签:ima   xls   回调   信息   ase   bsp   ref   hat   alt   

原文地址:http://www.cnblogs.com/php-4/p/7965485.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!