Files
huangjingfen/pro_v3.5.1/crmeb/services/wechat/v3pay/Certficates.php
panchengyong c1e74d8e68 chore(php): 统一 ScottPan 文件头与注释域名替换
- 按 docs/renew-code-comment.md 将 PHP 文件头改为带边框的 Author 注释\n- 注释中的 crmeb.com 替换为 uj345.cn(代码字符串中的外链未改)\n- 新增 docs/renew-code-comment.md 说明

Made-with: Cursor
2026-03-29 11:22:58 +08:00

64 lines
1.7 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | Author: ScottPan Team
// +----------------------------------------------------------------------
namespace crmeb\services\wechat\v3pay;
use crmeb\exceptions\PayException;
use crmeb\services\wechat\config\V3PaymentConfig;
use Psr\SimpleCache\InvalidArgumentException;
use think\facade\Cache;
/**
* Class Certficates
* @package crmeb\services\easywechat\v3pay
* @property V3PaymentConfig $config
*/
trait Certficates
{
/**
* @param string|null $key
* @return array|mixed|null
* @throws InvalidArgumentException
*/
public function getCertficatescAttr(string $key = null)
{
$driver = Cache::store('file');
$cacheKey = '_wx_v3' . $this->config->serialNo;
if ($driver->has($cacheKey)) {
$res = $driver->get($cacheKey);
if ($key && $res) {
return $res[$key] ?? null;
} else {
return $res;
}
}
$certficates = $this->getCertficates();
$driver->set($cacheKey, $certficates, 3600 * 24 * 30);
if ($key && $certficates) {
return $certficates[$key] ?? null;
}
return $certficates;
}
/**
* get certficates.
*
* @return array
*/
public function getCertficates()
{
$response = $this->request('v3/certificates', 'GET', [], false);
if (isset($response['code'])) {
throw new PayException($response['message']);
}
$certificates = $response['data'][0];
$certificates['certificates'] = $this->decrypt($certificates['encrypt_certificate']);
unset($certificates['encrypt_certificate']);
return $certificates;
}
}