feat:바로빌 테스트/운영 서버 선택 기능 추가

- 회원사 관리 페이지에 서버 선택 토글 UI 추가
- 서버 모드 전환 API 추가 (GET/POST /api/admin/barobill/members/server-mode)
- BarobillService에서 세션 기반 서버 모드 읽기 지원
- 선택한 서버 설정이 바로빌 API 호출에 적용됨

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-03 07:40:35 +09:00
parent c72c3acbcf
commit 56aa538b3b
4 changed files with 162 additions and 12 deletions

View File

@@ -856,4 +856,59 @@ public function getServiceCodes(): JsonResponse
],
]);
}
/**
* 서버 모드 설정 (테스트/운영 서버 전환)
*
* 세션에 바로빌 서버 모드를 저장합니다.
* BarobillService 생성 시 이 세션 값을 읽어 사용합니다.
*/
public function setServerMode(Request $request): JsonResponse
{
$validated = $request->validate([
'mode' => 'required|in:test,production',
], [
'mode.required' => '서버 모드를 선택해주세요.',
'mode.in' => '서버 모드는 test 또는 production 이어야 합니다.',
]);
$mode = $validated['mode'];
session(['barobill_server_mode' => $mode]);
Log::info('바로빌 서버 모드 변경', [
'mode' => $mode,
'user_id' => auth()->id(),
]);
return response()->json([
'success' => true,
'mode' => $mode,
'message' => ($mode === 'test' ? '테스트' : '운영') . ' 서버로 전환되었습니다.',
]);
}
/**
* 서버 모드 조회
*
* 현재 세션에 저장된 바로빌 서버 모드를 반환합니다.
* 세션 값이 없으면 .env 설정값을 반환합니다.
*/
public function getServerMode(): JsonResponse
{
$sessionMode = session('barobill_server_mode');
if ($sessionMode) {
$mode = $sessionMode;
} else {
// .env 설정 기준 (BAROBILL_TEST_MODE)
$isTestMode = config('services.barobill.test_mode', true);
$mode = $isTestMode ? 'test' : 'production';
}
return response()->json([
'success' => true,
'mode' => $mode,
'source' => $sessionMode ? 'session' : 'env',
]);
}
}