Files
lotteryLaravel/app/Http/Controllers/Api/V1/E2E/E2ECaptchaPeekController.php
kang c83343e989
Some checks failed
lotterLaravel CI / test (push) Has been cancelled
lotterLaravel E2E / e2e-api (push) Has been cancelled
fix(settlement): 操作记录分页、流水动作与坏账幂等加固
- 新增 settlement-operations 合并列表 API,收付/调账接口改为标准分页
- actionable_only 流水在内存过滤后正确分页
- 已结账单流水不再展示补差/冲正快捷动作
- 坏账核销支持 idempotency_key 并写入 result_bill_id
- 补充操作记录、流水与坏账幂等相关测试
2026-06-26 16:40:46 +08:00

51 lines
1.6 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace App\Http\Controllers\Api\V1\E2E;
use App\Lottery\ErrorCode;
use App\Support\ApiResponse;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use App\Http\Controllers\Controller;
use App\Services\AdminCaptchaService;
/**
* E2E 辅助peek captcha bypass 码。
*
* digest 是 HMAC(app.key) 单向,存进 cache 的就是 digest无法反查明文。
* 改用 e2e 约定captcha_code == "LOTTERY_E2E_BYPASS" 在 LOTTERY_E2E=true 时视为通过。
* 本端点不返回任何"答案",仅返回约定码提示。
*/
final class E2ECaptchaPeekController extends Controller
{
public function player(Request $request): JsonResponse
{
$key = (string) $request->input('captcha_key', '');
if ($key === '') {
return ApiResponse::error('captcha_key required', ErrorCode::ValidationFailed->value, null, 422);
}
return $this->peek($key, AdminCaptchaService::SCOPE_PLAYER);
}
public function admin(Request $request): JsonResponse
{
$key = (string) $request->input('captcha_key', '');
if ($key === '') {
return ApiResponse::error('captcha_key required', ErrorCode::ValidationFailed->value, null, 422);
}
return $this->peek($key, AdminCaptchaService::SCOPE_ADMIN);
}
private function peek(string $key, string $scope): JsonResponse
{
return ApiResponse::success([
'bypass_code' => 'LOTTERY_E2E_BYPASS',
'scope' => $scope,
'key' => $key,
'hint' => 'POST captcha_code=LOTTERY_E2E_BYPASS to login when LOTTERY_E2E=true',
]);
}
}