<?php
use Zwei\WorkWechat\Suites\SuiteApi;
$suiteApi = new SuiteApi();
$oauth2LoginUrlParam = new Oauth2LoginUrlParams();
$oauth2LoginUrlParam->scope = 'snsapi_base';// 设置授权
$oauth2LoginUrlParam->state = '';
$suiteId = '';
// 生成oauth2登录url
$oauth2LoginUrl = $suiteApi->generateOauth2LoginUrl($suiteId, $url, $oauth2LoginUrlParam);
企业员工点击后,页面将跳转至 redirect_uri?code=CODE&state=STATE,第三方应用可根据code参数获得企业员工的corpid与userid。code长度最大为512字节。
<?php
use Zwei\WorkWechat\Suites\SuiteApi;
$suiteApi = new SuiteApi();
if (isset($_GET['code'])) {
$code = $_GET['code'];
// 获取第三方应用凭证
$result = $suiteApi->getSuiteAccessToken($suiteId, $suiteSecret, $suiteTicket);
$suiteAccessToken = $result['suite_access_token'];
// 根据 回调 code 获取当前登录用户信息
$auth2UserInfo = $suiteApi->getUserInfo($suiteAccessToken, $code);
// 若用户不属于任何企业
if(!isset($auth2UserInfo['CorpId'])) {
echo '<pre>';
echo 'no CorpId';
print_r($auth2UserInfo);
exit;
}
// 换取企业access_token start
// $corpId = $auth2UserInfo['CorpId'];
// 获取永久授权码 授权成功后,通过临时授权码换取的永久授权码
// $permanentCode = '';
// 获取企业access_token
// $result = $suite->getCorpToken($suiteAccessToken, $corpId, $permanentCode);
// $corpAccessToken = $result['access_token'];
// 换取企业access_token end
// 没有用户 user_ticket
if(!isset($auth2UserInfo['user_ticket'])) {
echo '<pre>';
echo 'no user_ticket';
print_r($auth2UserInfo);
exit;
}
// 获取登录用户详情
$userTicket = $auth2UserInfo['user_ticket'];
$userDetail = $suiteApi->getUserDetail($suiteAccessToken, $userTicket);
}