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
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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));
}
}
}