From 0b2b0b20aa3ba024dee8201683c8a0d0d40f5780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Tue, 3 Feb 2026 09:00:06 +0900 Subject: [PATCH] =?UTF-8?q?fix:=EB=B0=94=EB=A1=9C=EB=B9=8C=20API=20?= =?UTF-8?q?=EB=A9=94=EC=84=9C=EB=93=9C=EC=97=90=20=ED=85=8C=EB=84=8C?= =?UTF-8?q?=ED=8A=B8=EB=B3=84=20=EC=84=9C=EB=B2=84=20=EB=AA=A8=EB=93=9C=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 각 API 메서드(cards, transactions, accounts, issue 등)에서 테넌트의 server_mode 설정에 따라 SOAP 클라이언트 재초기화 - 기존에는 index()에서만 적용되어 별도 HTTP 요청인 API 호출 시 기본 설정으로 돌아가는 버그 수정 - EcardController, EaccountController, EtaxController, HometaxController 모두 적용 Co-Authored-By: Claude Opus 4.5 --- .../Controllers/Barobill/EaccountController.php | 10 ++++++++++ .../Controllers/Barobill/EcardController.php | 12 ++++++++++++ app/Http/Controllers/Barobill/EtaxController.php | 14 ++++++++++++++ .../Controllers/Barobill/HometaxController.php | 16 ++++++++++++++++ 4 files changed, 52 insertions(+) diff --git a/app/Http/Controllers/Barobill/EaccountController.php b/app/Http/Controllers/Barobill/EaccountController.php index 9e227a00..55540f66 100644 --- a/app/Http/Controllers/Barobill/EaccountController.php +++ b/app/Http/Controllers/Barobill/EaccountController.php @@ -172,6 +172,11 @@ public function accounts(Request $request): JsonResponse $tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID); $barobillMember = BarobillMember::where('tenant_id', $tenantId)->first(); + // 테넌트별 서버 모드 적용 + if ($barobillMember && $barobillMember->server_mode) { + $this->applyMemberServerMode($barobillMember); + } + // 바로빌 사용자 ID 결정 $userId = $barobillMember?->barobill_id ?? ''; @@ -253,6 +258,11 @@ public function transactions(Request $request): JsonResponse $barobillMember = BarobillMember::where('tenant_id', $tenantId)->first(); $userId = $barobillMember?->barobill_id ?? ''; + // 테넌트별 서버 모드 적용 + if ($barobillMember && $barobillMember->server_mode) { + $this->applyMemberServerMode($barobillMember); + } + // DB에서 저장된 계정과목 데이터 조회 $savedData = BankTransaction::getByDateRange($tenantId, $startDate, $endDate, $bankAccountNum ?: null); diff --git a/app/Http/Controllers/Barobill/EcardController.php b/app/Http/Controllers/Barobill/EcardController.php index 666f4e71..45cc6b44 100644 --- a/app/Http/Controllers/Barobill/EcardController.php +++ b/app/Http/Controllers/Barobill/EcardController.php @@ -167,6 +167,13 @@ private function applyMemberServerMode(BarobillMember $member): void public function cards(Request $request): JsonResponse { try { + // 테넌트별 서버 모드 적용 + $tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID); + $barobillMember = BarobillMember::where('tenant_id', $tenantId)->first(); + if ($barobillMember && $barobillMember->server_mode) { + $this->applyMemberServerMode($barobillMember); + } + $availOnly = $request->input('availOnly', 0); $result = $this->callSoap('GetCardEx2', [ @@ -263,6 +270,11 @@ public function transactions(Request $request): JsonResponse $barobillMember = BarobillMember::where('tenant_id', $tenantId)->first(); $userId = $barobillMember?->barobill_id ?? ''; + // 테넌트별 서버 모드 적용 + if ($barobillMember && $barobillMember->server_mode) { + $this->applyMemberServerMode($barobillMember); + } + // 디버그 로그 Log::info('[ECard] 조회 요청', [ 'tenantId' => $tenantId, diff --git a/app/Http/Controllers/Barobill/EtaxController.php b/app/Http/Controllers/Barobill/EtaxController.php index f1f4e99e..ea36de19 100644 --- a/app/Http/Controllers/Barobill/EtaxController.php +++ b/app/Http/Controllers/Barobill/EtaxController.php @@ -193,6 +193,13 @@ public function getInvoices(): JsonResponse */ public function issue(Request $request): JsonResponse { + // 테넌트별 서버 모드 적용 + $tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID); + $barobillMember = BarobillMember::where('tenant_id', $tenantId)->first(); + if ($barobillMember && $barobillMember->server_mode) { + $this->applyMemberServerMode($barobillMember); + } + $input = $request->all(); $useRealAPI = $this->soapClient !== null && ($this->isTestMode || !empty($this->certKey)); @@ -261,6 +268,13 @@ public function issue(Request $request): JsonResponse */ public function sendToNts(Request $request): JsonResponse { + // 테넌트별 서버 모드 적용 + $tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID); + $barobillMember = BarobillMember::where('tenant_id', $tenantId)->first(); + if ($barobillMember && $barobillMember->server_mode) { + $this->applyMemberServerMode($barobillMember); + } + $invoiceId = $request->input('invoiceId'); // 인보이스 조회 diff --git a/app/Http/Controllers/Barobill/HometaxController.php b/app/Http/Controllers/Barobill/HometaxController.php index 37063408..2219bf48 100644 --- a/app/Http/Controllers/Barobill/HometaxController.php +++ b/app/Http/Controllers/Barobill/HometaxController.php @@ -188,6 +188,11 @@ public function sales(Request $request): JsonResponse ]); } + // 테넌트별 서버 모드 적용 + if ($barobillMember->server_mode) { + $this->applyMemberServerMode($barobillMember); + } + $userId = $barobillMember->barobill_id ?? ''; if (empty($userId)) { @@ -308,6 +313,11 @@ public function purchases(Request $request): JsonResponse ]); } + // 테넌트별 서버 모드 적용 + if ($barobillMember->server_mode) { + $this->applyMemberServerMode($barobillMember); + } + $userId = $barobillMember->barobill_id ?? ''; if (empty($userId)) { @@ -533,6 +543,12 @@ public function diagnose(Request $request): JsonResponse try { $tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID); $barobillMember = BarobillMember::where('tenant_id', $tenantId)->first(); + + // 테넌트별 서버 모드 적용 + if ($barobillMember && $barobillMember->server_mode) { + $this->applyMemberServerMode($barobillMember); + } + $userId = $barobillMember?->barobill_id ?? ''; $memberCorpNum = $barobillMember?->biz_no ?? '';