// +---------------------------------------------------------------------- namespace crmeb\services\easywechat\certficates; use crmeb\exceptions\WechatException; use crmeb\services\easywechat\BaseClient; use EasyWeChat\Core\AbstractAPI; use think\exception\InvalidArgumentException; use think\facade\Cache; class Client extends BaseClient { public function get() { $driver = Cache::store('file'); $cacheKey = '_wx_v3' . ($this->isService ? $this->app['config']['service_payment']['serial_no'] : $this->app['config']['payment']['serial_no']); if ($driver->has($cacheKey)) { return $driver->get($cacheKey); } $certficates = $this->getCertficates(); $driver->set($cacheKey, $certficates, 3600 * 24 * 30); return $certficates; } /** * get certficates. * * @return array */ public function getCertficates() { $response = $this->request('/v3/certificates', 'GET', [], false); if (isset($response['code'])) throw new WechatException($response['message']); $certificates = $response['data'][0]; $certificates['certificates'] = $this->decrypt($certificates['encrypt_certificate']); unset($certificates['encrypt_certificate']); return $certificates; } }