food_server/vendor/yansongda/pay/src/Pay.php
tk 9ef6902c1d 【类 型】:fix
【主	题】:提交runing字段
【描	述】:
	[原因]:正则匹配 bind_route 添加runing字段 PS:对应取出bind_route的, 即分割符
	[过程]:
	[影响]:
【结	束】
2024-07-09 17:35:54 +08:00

101 lines
2.3 KiB
PHP

<?php
declare(strict_types=1);
namespace Yansongda\Pay;
use Closure;
use Psr\Container\ContainerInterface;
use Yansongda\Artful\Artful;
use Yansongda\Artful\Exception\ContainerException;
use Yansongda\Artful\Exception\ServiceNotFoundException;
use Yansongda\Pay\Provider\Alipay;
use Yansongda\Pay\Provider\Unipay;
use Yansongda\Pay\Provider\Wechat;
use Yansongda\Pay\Service\AlipayServiceProvider;
use Yansongda\Pay\Service\UnipayServiceProvider;
use Yansongda\Pay\Service\WechatServiceProvider;
/**
* @method static Alipay alipay(array $config = [], $container = null)
* @method static Wechat wechat(array $config = [], $container = null)
* @method static Unipay unipay(array $config = [], $container = null)
*/
class Pay
{
/**
* 正常模式.
*/
public const MODE_NORMAL = 0;
/**
* 沙箱模式.
*/
public const MODE_SANDBOX = 1;
/**
* 服务商模式.
*/
public const MODE_SERVICE = 2;
protected static array $providers = [
AlipayServiceProvider::class,
WechatServiceProvider::class,
UnipayServiceProvider::class,
];
/**
* @throws ContainerException
* @throws ServiceNotFoundException
*/
public static function __callStatic(string $service, array $config = [])
{
if (!empty($config)) {
self::config(...$config);
}
return Artful::get($service);
}
/**
* @throws ContainerException
*/
public static function config(array $config = [], null|Closure|ContainerInterface $container = null): bool
{
$result = Artful::config($config, $container);
foreach (self::$providers as $provider) {
Artful::load($provider);
}
return $result;
}
/**
* @throws ContainerException
*/
public static function set(string $name, mixed $value): void
{
Artful::set($name, $value);
}
/**
* @throws ContainerException
* @throws ServiceNotFoundException
*/
public static function get(string $service): mixed
{
return Artful::get($service);
}
public static function setContainer(null|Closure|ContainerInterface $container): void
{
Artful::setContainer($container);
}
public static function clear(): void
{
Artful::clear();
}
}