關(guān)于二次驗(yàn)證(Oauth2)
首先要確保企業(yè)微信開啟了二次驗(yàn)證
1.png
構(gòu)造鏈接
2.png
關(guān)于這方面的東西太多了众旗,可以去企業(yè)微信開發(fā)文檔查看,這里不再多加贅述趟畏。
主要聊一下開發(fā)的部分贡歧。
應(yīng)用于實(shí)際需求
僅僅是開啟企業(yè)通訊錄然后進(jìn)行導(dǎo)入是不切實(shí)際的,不同公司數(shù)據(jù)庫格式也不同,導(dǎo)出問題也是頭疼利朵。
幸好公司大手結(jié)合網(wǎng)上大佬給出的驗(yàn)證(在此膜拜一下云哥)律想,實(shí)現(xiàn)了二次驗(yàn)證。
我們需要滿足的需求
- 員工收到企業(yè)微信邀請(qǐng)
- 點(diǎn)擊跳轉(zhuǎn)到企業(yè)微信
- 企業(yè)微信跳轉(zhuǎn)到我們自定義的信息錄入界面
- 完成信息錄入跳轉(zhuǎn)回企業(yè)微信
話不多說绍弟,貼代碼
本需求的實(shí)現(xiàn)采用php+mysql
首先掏出我們構(gòu)造鏈接的php文檔
reg.php
<?php
define("CORPID",""); //企業(yè)微信上的設(shè)置中的找到這個(gè)參數(shù)
define("CORPSECRET",""); //企業(yè)微信上的設(shè)置-權(quán)限管理-應(yīng)用權(quán)限開發(fā)者憑據(jù)找這個(gè)參數(shù)
$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>人員信息驗(yàn)證</title>
</head>
<body>
<div class="wrapper">
<div class="container">
<h1>人員信息驗(yàn)證</h1>
<FORM name="submit" action="index.php" method="POST">
<div class="enter">
<input type="text" placeholder="工號(hào)" name='username'>
<input type="password" placeholder="身份證號(hào)" 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="確認(rèn)" name="Submit" class="btn_submit">
</div>
</FORM>
</div>
</body>
</html>
此時(shí)已經(jīng)實(shí)現(xiàn)了數(shù)據(jù)綁定跳轉(zhuǎn)到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')");//找到與輸入用戶名相同的信息技即,注意要取出的信息有兩項(xiàng)
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('驗(yàn)證成功');</script>";
} else {
echo "<script language=JavaScript>alert('驗(yàn)證失敗請(qǐng)重新認(rèn)證');</script>";
}
?>
以上