This commit is contained in:
gaofeng
2026-09-04 09:36:42 +08:00
parent beddee1b1a
commit ccfad8ed88
4 changed files with 16 additions and 1 deletions

View File

@@ -11,6 +11,7 @@ use app\miniapi\service\VisaApplication\VisaApplicationService;
$service = new VisaApplicationService();
if ($service->endpoint('https://user.example.com/users/list', 'start') !== 'https://user.example.com/visa_service/start') throw new RuntimeException('endpoint construction failed');
if ($service->endpoint('https://user.example.com/users/list', 'dataSource') !== 'https://user.example.com/visa_service/dataSource') throw new RuntimeException('data source forwarding endpoint failed');
if ($service->endpoint('https://user.example.com/users/list', 'agree') !== 'https://user.example.com/visa_service/agree') throw new RuntimeException('legal document forwarding endpoint failed');
if ($service->endpoint('https://user.example.com/users/list', 'invalid') !== '') throw new RuntimeException('action allowlist failed');
$payload = $service->payload(9, ['order_source' => 'jnwxmini']);
if (isset($payload['user_id']) || (json_decode((string)($payload['user_token'] ?? ''), true) !== ['purpose' => 'visa_api', 'user_id' => 9, 'order_source' => 'jnwxmini'])) throw new RuntimeException('trusted token payload failed');
@@ -20,4 +21,7 @@ $neutral = VisaApplicationService::decorateSubmitForCheck(['code' => 1, 'data' =
$payable = VisaApplicationService::decorateSubmitForCheck(['code' => 1, 'data' => ['order_sn' => 'V 1', 'requires_payment' => true]]);
if (isset($neutral['data']['pay_url']) || ($payable['data']['pay_url'] ?? '') !== 'https://www.qlevisa.com/index/pay/h5pay.html?order_sn=V%201') throw new RuntimeException('miniapi payment decoration failed');
if (VisaApplicationService::dataSourceQueryForCheck('inac.city', ['model' => 'region', 'source_code' => 'jnwxmini', 'state_id' => '11', 'hotel_state' => '12', 'provinceCode' => '13', 'country' => 'CN', 'application_token' => 'secret', 'user_token' => 'secret']) !== ['type' => 'inac.city', 'model' => 'region', 'source_code' => 'jnwxmini', 'state_id' => '11', 'hotel_state' => '12', 'provinceCode' => '13', 'country' => 'CN']) throw new RuntimeException('miniapi data source filtering failed');
$controllerSource = (string)file_get_contents(dirname(__DIR__) . '/app/miniapi/controller/VisaApplication.php');
$routeSource = (string)file_get_contents(dirname(__DIR__) . '/app/miniapi/route/app.php');
if (!str_contains($controllerSource, 'public function agree()') || !str_contains($routeSource, "Route::get('visa/agree'")) throw new RuntimeException('miniapi legal document route missing');
echo "PASS visa_application_facade_self_check\n";