微信企业号:OAuth2.0微信授权验证

企业应用中的 URL 链接(包括自定义菜单或者消息中的链接),可以通过 OAuth2.0 验证接口来获取成员的身份信息。使用步骤和方法如下:

1、先开发要使用微信授权认证的网页应用,这个网址必须在互联网上。

2、生成回调网址

企业如果需要员工在跳转到企业网页时带上员工的身份信息,需构造如下的链接:

参数说明参数必须说明

appid是企业的 CorpID

redirect_uri是授权后重定向的回调链接地址,请使用 urlencode 对链接进行处理

response_type是返回类型,此时固定为:code

scope是应用授权作用域,此时固定为:snsapi_base

state否重定向后会带上 state 参数,企业可以填写 a-zA-Z0-9 的参数值,长度不可超过 128 个字节

#wechat_redirect是微信终端使用此参数判断是否需要带上身份信息

举例:因为要调用 urlencode 函数,所以先在 PHP 生成这个回调网址。

$url=''.urlencode('';

echo $url

结果如下:

3、绑定菜单

先选择对应的【应用】,然后启用【回调模式】,选择自定义菜单的【设置】,然后设置菜单,事件类型选择【跳转到网页】,输入上面的网站。具体见下面的图片。

4、获取 code

员工点击该网页后,页面将跳转至 redirect_uri?code=CODE&state=STATE,如下:

该网页可以以 GET 方式读取 code 的内容。State 的内容用户自行处理。

5、通过 code 获取员工信息请求说明 :Https 请求方式:GET参数说明参数必须说明

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"

}

6、通过 userid 获取员工信息请求说明 :Https 请求方式: GET参数说明参数必须说明

access_token是调用接口凭证

userid是成员 UserID。对应管理端的帐号返回结果{"errcode":0,"errmsg":"ok","userid":"zhangsan","name":"李四","department":[1,2],"position":"后台工程师","mobile":"15913215421","gender":"1","email":"","weixinid":"lisifordev","avatar":"http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0";;;,"status":1,"extattr":{

"attrs":[{

"name":"爱好",

"value":"旅游"

},

{

"name":"卡号",

"value":"1234567234"

}]

}}参数说明

errcode返回码

errmsg对返回码的文本描述内容

userid成员 UserID。对应管理端的帐号

name成员名称

department成员所属部门 id 列表

position职位信息

mobile手机号码

gender性别。0 表示未定义,1 表示男性,2 表示女性

email邮箱

weixinid微信号

avatar头像 url。注:如果要获取小图将 url 最后的 "/0" 改成 "/64" 即可

status关注状态:       1 = 已关注,2 = 已禁用,4 = 未关注

extattr扩展属性

7、示例代码 PHP

$corpid="";

$corpsecret="";

$code = $_GET['code'];

$accesstoken=get_access_token($corpid,$corpsecret);

if (!empty($code))

{

$user=getUserInfoByAuth($accesstoken,$code);

$userid=$user["UserId"];

$openid=$user["OpenId"];

$deviceid=$user["DeviceId"];

if (!empty($userid))

{

$userinfo=getUserInfo($accesstoken,$userid);

$username= $userinfo["name"];

}

}

function getUserInfoByAuth($accesstoken,$code)

{

$url="";

$content=curl_get($url);

$ret= json_decode($content,true);

return $ret;

}

function getUserInfo($accesstoken,$userid)

{

$url="";

$content=curl_get($url);

$ret= json_decode($content,true);

return $ret;

}

function curl_get($url)

{

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);

if(!curl_exec($ch))

{

error_log(curl_error($ch));

$data="";

}

else

{

$data=curl_multi_getcontent($ch);

}

curl_close($ch);

return $data;

}

// 获取 access_token

function get_access_token($corpid,$corpsecret)

{

$url="";

$ch=curl_init();

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

$output=curl_exec($ch);

curl_close($ch);

$jsoninfo = json_decode($output,true);

return  $jsoninfo["access_token"];

}  //end get_access_token

>

其他文章请见西祠胡同讨论版:

来源: http://www.bubuko.com/infodetail-2003038.html

php微信企业号oauth2.0,微信企业号:OAuth2.0微信授权验证相关推荐

  1. vue+uni-app商城实战 | 第一篇:从0到1快捷开发一个商城微信小程序,无缝接入OAuth2实现一键授权登录

    一. 前言 本篇通过实战来讲述如何使用uni-app快速进行商城微信小程序的开发以及小程序如何接入后台Spring Cloud微服务. 有来商城 youlai-mall 项目是一套全栈商城系统,技术栈 ...

  2. 微信官方你真的懂OAuth2?Spring Security OAuth2整合企业微信扫码登录

    ❝ 企业微信扫码登录DEMO参见文末. 现在很多企业都接入了企业微信,作为私域社群工具,企业微信开放了很多API,可以打通很多自有的应用.既然是应用,那肯定需要做登录.正好企业微信提供了企业微信扫码授 ...

  3. 企业号、企业微信、企业邮箱三者融合,IBOS微信生态掘金之路

    责编:陈秋歌,关注前端开发领域,寻求报道或者投稿请发邮件chenqg#csdn.net. 欢迎加入"CSDN前端开发者"微信群,参与热点.难点技术交流.请加群主微信「Rachel_ ...

  4. 微信公众平台开发教程(十一)微信企业号上线

    原文地址:http://www.cnblogs.com/yank/p/3989255.html 什么是企业号? 企业号是微信为企业客户提供的移动应用入口 关注更安全 只有企业通讯录的成员才能关注企业号 ...

  5. 当前记录集不支持更新_微信现已正式支持修改微信号!微信7.0.16内测版更新(附下载)...

    还记得微信安卓7.0.15内测版吗?这一版本带来了大家期待已久的深色模式独立设置功能.这不,时隔近一个月,微信安卓内测版又更新了. 最新版本号是7.0.16,更新日志显示"本次更新优化了一些 ...

  6. jeewx-api 1.0.5 版本发布,微信SDK接口封装(支持微信第三方开放平台)

    JeeWx-api 1.0.5 版本发布,微信SDK接口封装 1.jeewx-api为何诞生 现在微信越来越火,基于微信的公众号和服务号越来越丰富,虽然微信帮助文档已经提供了相关的接口,但是接口比较多 ...

  7. 闪灵短链-微信QQ域名防拦截系统 v1.0

    介绍: 闪灵短链-微信QQ域名防拦截系统是一款以php+MySQL进行开发的短网址在线生成系统源码. 功能介绍: 1.可将长网址自动缩短为短网址,方便记忆和使用. 2.短网址默认为临时有效,可付费升级 ...

  8. vc++6.0获取磁盘基本信息_微信小程序——常用功能2:微信小程序用户登录,申请用户授权并获取用户基本信息...

    微信小程序--常用功能2:申请用户授权并获取用户基本信息 为了更好的用户体验,很多时候我们想要获取用户的基本信息,从而实现将信息呈现到用户界面.给用户划分地域.给用户分类等功能. 但是要想获取用户信息 ...

  9. itools3.0服务器维护,iTools3.0微信管理功能更新 可支持语音信息

    iTools3.0近日升级到了全新版本3.1.6.9,在这个全新版本里,微信管理功能有了突破性的更新,其加入了微信语音支持及微信名片.图片支持等功能,这使iTools3.0的微信管理功能在实用性上得到 ...

最新文章

  1. 使用BeanUtils.copyProperties进行对象之间的属性赋值
  2. wifi漫游测试过程
  3. proe5.0安装教程
  4. ITK:在灰度图像中标记连接的组件
  5. WPF自定义控件的自定义属性绑定后不更新问题
  6. 使用Java泛型和反射机制编写Excel文件生成和解析的通用工具类
  7. ADO.NET连接Access数据库实例
  8. 第 14 章 结构和其他数据形式(names)
  9. 全国省市县无刷新级联菜单
  10. python学习 第三篇 文件操作
  11. (4)Spring框架----依赖注入(DI)
  12. 工业相机基本参数以及选型
  13. java语言有很多的优点和特点_Java语言具有许多优点和特点,下列选项中()反映了Java程序并行机制的特点 (5.0分)_学小易找答案...
  14. DNS解析域名解析过程
  15. vscode环境搭建:配置prettier
  16. Learning Pose Grammar to Encode Human Body Configuration for 3D Pose Estimation论文阅读笔记
  17. MOBA移动游戏性能分析报告:渲染、UI和逻辑代码是性能头号杀手!
  18. Android studio gradle编译失败问题汇总
  19. WEB服务器的基本介绍
  20. ismobile什么意思_英语mobile是什么中文意思

热门文章

  1. 32位计算机怎么安装ps,ps怎么安装到电脑上(免费教你安装ps)
  2. 需求评审会议如何召开
  3. 只需Ctrl+T,让 Excel 变身为「超级表格」
  4. 视觉slam十四讲 学习笔记-3(李群和李代数)
  5. selenium Element is not clickable because another element obscures it — 点击被页面上其他元素遮住的控件,亲试有效!!!
  6. 常见的网络安全防御解决方案与实例
  7. css中自适应样式(自媒体)
  8. ZYNQ LWIP实验
  9. 嵌入式技术的前沿应用领域
  10. 炫界 (667) -(回应骑两小)_安徽省桐城市迷你小南瓜春季栽培技术