From fcce8970fda0006e6c5815cb73f41d4fdd8510f9 Mon Sep 17 00:00:00 2001 From: DevSoftTech Server Date: Wed, 23 Sep 2026 15:56:05 +0530 Subject: [PATCH] fix(abdm): safe JSON parsing in m2LinkInit/Confirm and prevent abha_id null in audit log --- app/Controllers/AbdmGateway.php | 18 ++++++++++++++---- app/Libraries/AbdmAuditService.php | 3 ++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/Controllers/AbdmGateway.php b/app/Controllers/AbdmGateway.php index 3a3f01c..4b0f415 100644 --- a/app/Controllers/AbdmGateway.php +++ b/app/Controllers/AbdmGateway.php @@ -4975,9 +4975,14 @@ class AbdmGateway extends BaseController return $authFailure; } - $payload = $this->request->getJSON(true); + try { + $payload = $this->request->getJSON(true); + } catch (\Throwable) { + $payload = null; + } if (! is_array($payload)) { - $payload = []; + $raw = (string) $this->request->getBody(); + $payload = json_decode($raw, true) ?? []; } $requestId = trim((string) ($payload['requestId'] ?? $payload['request_id'] ?? $this->request->getHeaderLine('X-Request-Id'))); @@ -5122,9 +5127,14 @@ class AbdmGateway extends BaseController return $authFailure; } - $payload = $this->request->getJSON(true); + try { + $payload = $this->request->getJSON(true); + } catch (\Throwable) { + $payload = null; + } if (! is_array($payload)) { - $payload = []; + $raw = (string) $this->request->getBody(); + $payload = json_decode($raw, true) ?? []; } $requestId = trim((string) ($payload['requestId'] ?? $payload['request_id'] ?? $this->request->getHeaderLine('X-Request-Id'))); diff --git a/app/Libraries/AbdmAuditService.php b/app/Libraries/AbdmAuditService.php index 81080c8..a4664b9 100644 --- a/app/Libraries/AbdmAuditService.php +++ b/app/Libraries/AbdmAuditService.php @@ -141,7 +141,8 @@ class AbdmAuditService $insert['entity_id'] = $entityId !== '' ? $entityId : null; } if (in_array('abha_id', $auditFields, true)) { - $insert['abha_id'] = trim((string) ($data['abha_id'] ?? '')) ?: null; + $val = trim((string) ($data['abha_id'] ?? '')); + $insert['abha_id'] = $val !== '' ? $val : ($insert['abha_id'] ?? 'UNKNOWN'); } if (in_array('request_json', $auditFields, true)) { $insert['request_json'] = $requestJson;