mirror of
https://gitee.com/technical-laohu/mpay_v2_webman.git
synced 2026-04-21 09:24:33 +08:00
重构初始化
This commit is contained in:
100
app/http/api/controller/adapter/EpayController.php
Normal file
100
app/http/api/controller/adapter/EpayController.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace app\http\api\controller\adapter;
|
||||
|
||||
use app\common\base\BaseController;
|
||||
use app\exception\ValidationException;
|
||||
use app\http\api\validation\EpayValidator;
|
||||
use app\service\payment\compat\EpayCompatService;
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
|
||||
/**
|
||||
* Epay 协议兼容控制器。
|
||||
*
|
||||
* 负责 submit.php、mapi.php 和 api.php 的入口场景校验与结果分发。
|
||||
*/
|
||||
class EpayController extends BaseController
|
||||
{
|
||||
/**
|
||||
* 构造函数,注入兼容服务。
|
||||
*/
|
||||
public function __construct(
|
||||
protected EpayCompatService $epayCompatService
|
||||
) {}
|
||||
|
||||
/**
|
||||
* 页面跳转支付入口。
|
||||
*/
|
||||
public function submit(Request $request): Response
|
||||
{
|
||||
try {
|
||||
$payload = $this->validated($request->all(), EpayValidator::class, 'submit');
|
||||
|
||||
return $this->epayCompatService->submit($payload, $request);
|
||||
} catch (ValidationException $e) {
|
||||
return json([
|
||||
'code' => 0,
|
||||
'msg' => $e->getMessage(),
|
||||
]);
|
||||
} catch (\Throwable $e) {
|
||||
return json([
|
||||
'code' => 0,
|
||||
'msg' => $e->getMessage() ?: '提交失败',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* API 接口支付入口。
|
||||
*/
|
||||
public function mapi(Request $request): Response
|
||||
{
|
||||
try {
|
||||
$payload = $this->validated($request->all(), EpayValidator::class, 'mapi');
|
||||
|
||||
return json($this->epayCompatService->mapi($payload, $request));
|
||||
} catch (ValidationException $e) {
|
||||
return json([
|
||||
'code' => 0,
|
||||
'msg' => $e->getMessage(),
|
||||
]);
|
||||
} catch (\Throwable $e) {
|
||||
return json([
|
||||
'code' => 0,
|
||||
'msg' => $e->getMessage() ?: '提交失败',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 标准 API 接口入口。
|
||||
*/
|
||||
public function api(Request $request): Response
|
||||
{
|
||||
try {
|
||||
$payload = $request->all();
|
||||
$act = strtolower(trim((string) ($payload['act'] ?? '')));
|
||||
$scene = match ($act) {
|
||||
'settle' => 'settle',
|
||||
'orders' => 'orders',
|
||||
'order' => trim((string) ($payload['trade_no'] ?? '')) !== '' ? 'order_trade_no' : 'order_out_trade_no',
|
||||
'refund' => trim((string) ($payload['trade_no'] ?? '')) !== '' ? 'refund_trade_no' : 'refund_out_trade_no',
|
||||
default => 'query',
|
||||
};
|
||||
$payload = $this->validated($payload, EpayValidator::class, $scene);
|
||||
|
||||
return json($this->epayCompatService->api($payload));
|
||||
} catch (ValidationException $e) {
|
||||
return json([
|
||||
'code' => 0,
|
||||
'msg' => $e->getMessage(),
|
||||
]);
|
||||
} catch (\Throwable $e) {
|
||||
return json([
|
||||
'code' => 0,
|
||||
'msg' => $e->getMessage() ?: '请求失败',
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user