You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/dingdingcallback/api/Activate.php

61 lines
2.0 KiB
PHTML

<?php
require_once(__DIR__ . "/../util/Log.php");
require_once(__DIR__ . "/../util/Http.php");
require_once(__DIR__ . "/ISVService.php");
/**
* 激活ISV套件方法类
*/
class Activate
{
/**
* 某个企业的临时授权码在成功换取永久授权码后,开放平台将不再推送该企业临时授权码。
*/
public static function autoActivateSuite($tmpAuthCode)
{
//持久化临时授权码
//Cache::setTmpAuthCode($tmpAuthCode);
$suiteTicket = Cache::getSuiteTicket();
$suiteAccessToken = ISVService::getSuiteAccessToken($suiteTicket);
Log::i("[Activate] getSuiteToken: " . $suiteAccessToken);
//获取永久授权码以及corpid等信息持久化并激活临时授权码
$permanetCodeInfo = ISVService::getPermanentCodeInfo($suiteAccessToken, $tmpAuthCode);
Log::i("[Activate] getPermanentCodeInfo: " . json_encode($permanetCodeInfo));
$permanetCode = $permanetCodeInfo['permanent_code'];
$authCorpId = $permanetCodeInfo['corp_id'];
Log::i("[Activate] permanetCode: " . $permanetCode . ", authCorpId: " . $authCorpId);
/**
* 获取企业access token
*/
$corpAccessToken = ISVService::getIsvCorpAccessToken($suiteAccessToken, $authCorpId, $permanetCode);
Log::i("[Activate] getCorpToken: " . $corpAccessToken);
/**
* 获取企业授权信息
*/
$res = ISVService::getAuthInfo($suiteAccessToken, $authCorpId, $permanetCode);
Log::i("[Activate] getAuthInfo: " . json_encode($res));
self::check($res);
/**
* 激活套件
*/
$res = ISVService::activeSuite($suiteAccessToken, $authCorpId, $permanetCode);
Log::i("[activeSuite]: " . json_encode($res));
self::check($res);
}
static function check($res)
{
if ($res->errcode != 0)
{
exit("Failed: " . json_encode($res));
}
}
}