<?php namespace Modules\Common\Support\Wechat\OpenPlatform; use EasyWeChat\OpenPlatform\Application; class OPApplication extends Application { public function getAuthorizerAccessToken(string $appId, string $refreshToken): string { $component_appid = $this->getAccount()->getAppId(); $cacheKey = sprintf('open-platform.authorizer_access_token.%s.%s.%s', $component_appid, $appId, md5($refreshToken)); /** @phpstan-ignore-next-line */ $authorizerAccessToken = (string) $this->getCache()->get($cacheKey); if (! $authorizerAccessToken) { $response = $this->refreshAuthorizerToken($appId, $refreshToken); $authorizerAccessToken = (string) $response['authorizer_access_token']; $this->getCache()->set($cacheKey, $authorizerAccessToken, intval($response['expires_in'] ?? 7200) - 500); } return $authorizerAccessToken; } }