12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- /**
- * +----------------------------------------------------------------------
- * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
- * +----------------------------------------------------------------------
- * | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
- * +----------------------------------------------------------------------
- * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
- * +----------------------------------------------------------------------
- * | Author: CRMEB Team <admin@crmeb.com>
- * +----------------------------------------------------------------------
- */
- namespace crmeb\services\easywechat\v3pay;
- use crmeb\exceptions\PayException;
- use crmeb\services\CacheService;
- /**
- * Class Certficates
- * @package crmeb\services\easywechat\v3pay
- */
- trait Certficates
- {
- /**
- * @param string|null $key
- * @return array|mixed|null
- * @throws \Psr\SimpleCache\InvalidArgumentException
- */
- public function getCertficatescAttr(string $key = null)
- {
- $cacheKey = '_wx_v3' . $this->app['config']['v3_payment']['serial_no'];
- if (CacheService::has($cacheKey)) {
- $res = CacheService::get($cacheKey);
- if ($key && $res) {
- return $res[$key] ?? null;
- } else {
- return $res;
- }
- }
- $certficates = $this->getCertficates();
- CacheService::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;
- }
- }
|