You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.0 KiB
51 lines
1.0 KiB
10 months ago
|
<?php
|
||
|
|
||
|
namespace addons\shopro\library\pay;
|
||
|
|
||
|
use think\Log;
|
||
|
use addons\shopro\library\pay\provider\Base;
|
||
|
|
||
|
class PayService
|
||
|
{
|
||
|
protected $payment;
|
||
|
protected $platform;
|
||
|
|
||
|
public function __construct($payment, $platform = null)
|
||
|
{
|
||
|
$this->payment = $payment;
|
||
|
|
||
|
$this->platform = $platform ? : request()->header('platform', null);
|
||
|
|
||
|
if (!$this->platform) {
|
||
|
error_stop('缺少用户端平台参数');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 支付提供器
|
||
|
*
|
||
|
* @param string $type
|
||
|
* @return Base
|
||
|
*/
|
||
|
public function provider($payment = null)
|
||
|
{
|
||
|
$payment = $payment ?: $this->payment;
|
||
|
$class = "\\addons\\shopro\\library\\pay\\provider\\" . \think\helper\Str::studly($payment);
|
||
|
if (class_exists($class)) {
|
||
|
return new $class($this, $this->platform);
|
||
|
}
|
||
|
|
||
|
error_stop('支付类型不支持');
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
public function __call($funcname, $arguments)
|
||
|
{
|
||
|
return $this->provider()->{$funcname}(...$arguments);
|
||
|
}
|
||
|
|
||
|
}
|