Files
evus.acvisa.com/app/home/controller/Usvisa.php

73 lines
1.9 KiB
PHP

<?php
declare (strict_types=1);
namespace app\home\controller;
use app\service\UsvisaIntakeService;
use think\facade\Log;
use think\facade\Request;
use think\facade\View;
class Usvisa extends Base
{
public function index()
{
$intake = new UsvisaIntakeService();
View::assign($intake->pageContext(Request::instance()->param()));
return View::fetch();
}
public function submit()
{
if (!request()->isPost()) {
return json([
'code' => -1,
'msg' => '请通过页面提交信息',
]);
}
$intake = new UsvisaIntakeService();
$params = Request::instance()->param();
unset($params['s']);
$branch = $intake->branchByCode($params['branch_code'] ?? '');
if (empty($branch)) {
return json([
'code' => -1,
'msg' => '请确认扫码支行信息',
]);
}
$submission = $intake->submissionFrom($params, $branch);
$requiredMessage = $intake->requiredMessage($submission);
if ($requiredMessage !== '') {
return json([
'code' => -1,
'msg' => $requiredMessage,
]);
}
try {
$result = $intake->submitToApi($submission);
} catch (\Throwable $e) {
Log::error('Failed to submit usvisa to OA: ' . $e->getMessage());
return json([
'code' => -1,
'msg' => '提交失败,请稍后再试',
]);
}
if (!$intake->apiSuccess($result)) {
Log::warning('OA usvisa api returned failure: ' . json_encode([
'code' => $result['code'] ?? null,
'msg' => $result['msg'] ?? '',
], JSON_UNESCAPED_UNICODE));
}
return json($result);
}
}