/**
  * 返回QqeimApi单例对象
  * @return QqeimApi
  */
 public static function api()
 {
     if (empty(self::$_api)) {
         self::$_api = new QqeimApi(OpenConfig::APPID, OpenConfig::APPSECRET);
     }
     return self::$_api;
 }
<?php

require './lib.php';
if (OpenConfig::APPID == '' || OpenConfig::APPSECRET == '' || OpenConfig::COMPANY_CALLBACK_URL == '' || OpenConfig::USER_CALLBACK_URL == '') {
    header("Content-type: text/html; charset=utf-8");
    echo '请先修改OpenConfig文件,填好APPID, APPSECRET, COMPANY_CALLBACK_URL, USER_CALLBACK_URL~有不理解之处请查看<a href="http://wiki.open.b.qq.com/api:start#api%E8%B0%83%E7%94%A8%E8%8C%83%E4%BE%8B%E4%BB%A3%E7%A0%81">开放平台示例使用说明.pptx</a>';
    exit;
}
$url = OpenHelper::oauthUser()->getAuthorizeUrl();
?>
<!DOCTYPE html>
<html>
    <head>
        <title>企业QQ开放平台示例APP</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width">
        <link rel="stylesheet" type="text/css" href="./cloud/assets/css/testapicss.css" />
    </head>
    <body>
        <div class="banner">
            <a class="btn-brand" style="vertical-align:middle;" href='http://wiki.open.b.qq.com/start' target="_blank" title="API文档">企业QQ开放平台</a>
            <?php 
if (TestUser::user()->isLogin()) {
    ?>
                <label for="openid">当前登录open_id:</label>
                <span><?php 
    echo TestUser::user()->id();
    ?>
</span> 
                <label for="companyid" >company_id:</label>
                <span><?php 
<?php

require '../../../lib.php';
$openId = TestUser::user()->id();
$companyId = TestUser::user()->companyId();
$model = new CSCorpModel();
$api = OpenHelper::api();
$result = $api->getUserMobile($companyId, $model->getToken($companyId), getClientIp(), $openId);
OpenUtils::outputJson($result);
<?php

//员工授权回跳
require '../../lib.php';
$ret = array('ret' => 0, 'msg' => '成功');
$oauth = OpenHelper::oauthUser();
//默认会从Get参数中拿到code去获得accesstoken
$result = $oauth->getAccessToken();
if ($result['ret'] == 0 && !empty($result['data'])) {
    //如果获取accesstoken成功,则对该用户鉴权通过,记下用户在示例app登录信息
    $access_tokens = $result['data'];
    $openId = $access_tokens['open_id'];
    $companyId = '';
    if (isset($access_tokens['company_id'])) {
        $companyId = $access_tokens['company_id'];
    }
    $model = new CSCorpModel();
    $model->saveOpenId($openId, $companyId);
    TestUser::user()->login($openId);
    header('Location:../../');
} else {
    header('Location:../../');
}
 public function refreshToken($refresh_token)
 {
     $oauth = OpenHelper::oauthCompany();
     $result = $oauth->refreshAccessToken($refresh_token);
     if ($result['ret'] == 0) {
         $refresh_tokens = $result['data'];
     } else {
         $refresh_tokens = false;
     }
     return $refresh_tokens;
 }
<?php

//sae_debug("in oath2/callback!!!!");
require '../../lib.php';
$ret = array('ret' => 0, 'msg' => '成功');
$oauth = OpenHelper::oauthCompany();
//默认会从Get参数中拿到code去获得companyToken
$result = $oauth->getCompanyToken();
if (OpenConfig::SAE_MODE) {
    $s = new SaeStorage();
    $s->upload(OpenConfig::SAE_DOMAIN, 'data.dat', '../../data.dat');
}
if ($result['ret'] == 0 && !empty($result['data'])) {
    $company_token = $result['data'];
    $company_token['status'] = 0;
    saveToken($company_token);
} else {
    $ret['ret'] = 1;
    $ret['msg'] = '失败';
}
if (OpenConfig::SAE_MODE) {
    ini_set('display_errors', 0);
    sae_debug(json_encode($ret));
    ini_set('display_errors', 1);
}
OpenUtils::outputJson($ret);