一.OAuth2.0 接口
作用:当用户通过微信访问网站时,需要获取用户ID来判断用户是否属于企业号中通讯录成员。
通过此接口获取成员身份会有一定的时间开销。对于频繁获取成员身份的场景,建议采用如下方案:
1、企业应用中的URL链接直接填写企业自己的页面地址
2、成员跳转到企业页面时,企业校验是否有代表成员身份的cookie,此cookie由企业生成
3、如果没有获取到cookie,重定向到OAuth验证链接,获取成员身份后,由企业生成代表成员身份的cookie
4、根据cookie获取成员身份,进入相应的页面
步骤:
1.在企业号后台开启应用可信域名配置。
2.获取用户授权Code
Https请求方式: GET,需构造如下的链接
参数 | 必须 | 说明 |
appid | 是 | 企业的CorpID |
redirect_uri | 是 | 授权后重定向的回调链接地址,请使用urlencode对链接进行处理 |
response_type | 是 | 返回类型,此时固定为:code |
scope | 是 | 应用授权作用域,此时固定为:snsapi_base |
state | 否 | 重定向后会带上state参数,企业可以填写a-zA-Z0-9的参数值,长度不可超过128个字节 |
#wechat_redirect | 是 | 微信终端使用此参数判断是否需要带上身份信息 |
例如:
在应用自定义菜单添加链接:
当用户点击菜单后,将跳转至: http://xf.efision.cn/user/userInfo?code=CODE&state=123
其中code为企业号返回的用户授权Code。
3.根据Code获取用户信息
Https请求方式: GET,需构造如下的链接
https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
参数 | 必须 | 说明 |
access_token | 是 | 调用接口凭证 |
code | 是 | 通过成员授权获取到的code,每次成员授权带上的code将不一样,code只能使用一次,10分钟未被使用自动过期 |
权限说明
跳转的域名须完全匹配管理组中任一应用的可信域名。
返回结果
a)企业成员授权时返回示例如下:
{
"UserId":"USERID",
"DeviceId":"DEVICEID"
}
参数 | 说明 |
UserId | 成员UserID |
DeviceId | 手机设备号(由微信在安装时随机生成,删除重装会改变,升级不受影响,同一设备上不同的登录账号生成的deviceid也不同) |
b)非企业成员授权时返回示例如下:
{
"OpenId":"OPENID",
"DeviceId":"DEVICEID"
}
参数 | 说明 |
OpenId | 非企业成员的标识,对当前企业号唯一 |
DeviceId | 手机设备号(由微信在安装时随机生成,删除重装会改变,升级不受影响) |
c)出错时返回示例如下:
{
"errcode": "40029",
"errmsg": "invalid code"
}