美文网首页
企业微信二次验证开发实例源码

企业微信二次验证开发实例源码

作者: taylorfelix | 来源:发表于2018-03-06 21:01 被阅读0次

关于二次验证(Oauth2)

首先要确保企业微信开启了二次验证


1.png

构造链接


2.png

关于这方面的东西太多了,可以去企业微信开发文档查看,这里不再多加赘述。

主要聊一下开发的部分。

应用于实际需求

仅仅是开启企业通讯录然后进行导入是不切实际的,不同公司数据库格式也不同,导出问题也是头疼。
幸好公司大手结合网上大佬给出的验证(在此膜拜一下云哥),实现了二次验证。

我们需要满足的需求

  • 员工收到企业微信邀请
  • 点击跳转到企业微信
  • 企业微信跳转到我们自定义的信息录入界面
  • 完成信息录入跳转回企业微信

话不多说,贴代码
本需求的实现采用php+mysql
首先掏出我们构造链接的php文档

reg.php

<?php
define("CORPID","");  //企业微信上的设置中的找到这个参数
define("CORPSECRET","");  //企业微信上的设置-权限管理-应用权限开发者凭据找这个参数
$token_access_url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=".CORPID."&corpsecret=".CORPSECRET;

$res = file_get_contents($token_access_url);
$arr_result = json_decode($res,true);

define("ACCESS_TOKEN",$arr_result['access_token']);
define("CODE", $_GET['code']);
define("state",$_GET['state']);
// define("EMPNO", $_REQUESET['username']);
// define("EMP_ID", $_REQUESET['pass']);
   // echo "<script>alert('".EMPNO."');</script>";  
$make_menu_url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=".ACCESS_TOKEN."&code=".CODE."&agentid=0";
$res2 = file_get_contents($make_menu_url);
$arr_result2 = json_decode($res2,true);
define("USERID", $arr_result2['UserId']);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta charset="UTF-8">  
    <title>人员信息验证</title>
</head>
<body>
<div class="wrapper">  
         <div class="container">  
         <h1>人员信息验证</h1>  
         <FORM name="submit"  action="index.php" method="POST">
         <div class="enter">
         <input type="text" placeholder="工号" name='username'>  
         <input type="password" placeholder="身份证号" name='pass'>  
         <input type="hidden" value= <?php echo ACCESS_TOKEN; ?> placeholder="access_token" name='access_token'>  
         <input type="hidden" value=  <?php echo USERID; ?> placeholder="userid" name='userid'>  
         <input type="submit" value="确认" name="Submit" class="btn_submit">
         </div>
         </FORM>
</div>
</body>
</html>

此时已经实现了数据绑定跳转到index.php

index.php

<?php   
$emp_no=$_POST['username'];  
$shengfenzheng=$_POST['pass'];  
$access_token=$_POST['access_token']; 
$userid=$_POST['userid']; 
$link = mysqli_connect('localhost','root','root','database');  
$query=mysqli_query($link,"insert into wechatqiye(name_id,emp_no)value('$userid','$emp_no')");//找到与输入用户名相同的信息,注意要取出的信息有两项  

if($query){  
$send_url = "https://qyapi.weixin.qq.com/cgi-bin/user/authsucc?access_token=".$access_token."&userid=".$userid."";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $send_url);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,FALSE);
  curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (compatible; MSIE 5.01;Windows NT 5.0)');
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
  curl_setopt($ch, CURLOPT_AUTOREFERER,1);
 // curl_setopt($ch, CURLOPT_POSTFIELDS, $userid);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
  $info = curl_exec($ch);
  if(curl_errno($ch)){
   echo 'Errno'.curl_error($ch);
  }
  curl_close($ch);

 print_r($info);
    echo "<script language=JavaScript>alert('驗證成功');</script>";    
        } else {
        echo "<script language=JavaScript>alert('驗證失敗請重新認證');</script>";
       }
?> 

以上

相关文章

网友评论

      本文标题:企业微信二次验证开发实例源码

      本文链接:https://www.haomeiwen.com/subject/zynrfftx.html