60 lines
1.7 KiB
PHP
60 lines
1.7 KiB
PHP
<?php
|
|
namespace app\common\server\platform;
|
|
use think\facade\Request;
|
|
/**
|
|
* 多端平台支付抽象基类
|
|
*/
|
|
class PlatformFactory
|
|
{
|
|
/**
|
|
* 创建平台实例
|
|
* @param string $client 客户端类型
|
|
* @return BasePlatform 平台实例
|
|
*/
|
|
public static function create($client = null): BasePlatform
|
|
{
|
|
if (!isset($client)) {
|
|
$client = request()->header('client', 'MP-WEIXIN');
|
|
}
|
|
if ($client == "WEB_H5") {
|
|
return new H5Platform();
|
|
}
|
|
if ($client == "WEB_APP") {
|
|
return new H5Platform();
|
|
}
|
|
if ($client == "MP-WEIXIN") {
|
|
return new MiniProgramPlatform();
|
|
}
|
|
return new MiniProgramPlatform();
|
|
}
|
|
|
|
/**
|
|
* 创建平台实例
|
|
* @param string $client 客户端类型
|
|
* @return
|
|
*/
|
|
public static function createPay($user, $price, $title, $attach, $pre = "MH_", $pay_type = 1, $client = null): array
|
|
{
|
|
if (!isset($client)) {
|
|
$client = request()->header('client', 'MP-WEIXIN');
|
|
}
|
|
$data = [
|
|
'user' => $user,
|
|
'price' => $price,
|
|
'title' => $title,
|
|
'attach' => $attach,
|
|
'pre' => $pre,
|
|
'pay_type' => $pay_type,
|
|
'quitUrl' => '',
|
|
'returnUrl' => ''
|
|
];
|
|
$platform = self::create($client);
|
|
if ($client == "WEB_H5" || $client == "WEB_APP") {
|
|
$quitUrl = request()->param('quitUrl', '');
|
|
$returnUrl = request()->param('returnUrl', '');
|
|
$data['quitUrl'] = $quitUrl;
|
|
$data['returnUrl'] = $returnUrl;
|
|
}
|
|
return $platform->pay($data);
|
|
}
|
|
} |