| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- namespace common\expand\alipay;
- use Alipay\EasySDK\Kernel\CertEnvironment;
- use Alipay\EasySDK\Kernel\EasySDKKernel;
- use Alipay\EasySDK\Kernel\Factory;
- use Alipay\EasySDK\Util\Generic\Client as genericClient;
- use Alipay\EasySDK\Kernel\Util;
- class AlipayFactory
- {
- private static $instances;
- protected static $notice;
- protected static $util;
- private function __construct($config)
- {
- if (!empty($config->alipayCertPath)) {
- $certEnvironment = new CertEnvironment();
- $certEnvironment->certEnvironment(
- $config->merchantCertPath,
- $config->alipayCertPath,
- $config->alipayRootCertPath
- );
- $config->merchantCertSN = $certEnvironment->getMerchantCertSN();
- $config->alipayRootCertSN = $certEnvironment->getRootCertSN();
- // 文档地址 https://opendocs.alipay.com/support/01ravs
- // $config->alipayRootCertSN = '687b59193f3f462dd5336e5abf83c5d8_02941eef3187dddf3d3b83462e1dfcf6';
- $config->alipayPublicKey = $certEnvironment->getCachedAlipayPublicKey();
- }
- $kernel = new EasySDKKernel($config);
- self::$notice = new NoticeClient($kernel);
- self::$util = new genericClient($kernel);
- }
- public static function setOptions($config): AlipayFactory
- {
- // 因为有多少配置,但是队列里面这段代码是永驻的,所以必须每次重新实例化一个新的对象
- // if (empty(self::$instances[$config->appId]) || !(self::$instances[$config->appId] instanceof self)) {
- // self::$instances[$config->appId] = new self($config);
- // }
- // return self::$instances[$config->appId];
- return new self($config);
- }
- private function __clone()
- {
- }
- public static function notice(): NoticeClient
- {
- return self::$notice;
- }
- public function util(): genericClient
- {
- return self::$util;
- }
- }
|