manghe/app/common/server/platform/PlatformFactory.php
2025-05-16 18:55:49 +08:00

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);
}
}