From d369176ba32ed604bf992cdd64e8a9cebe360726 Mon Sep 17 00:00:00 2001 From: Vusumuzi Khoza Date: Fri, 17 Apr 2026 17:42:40 +0200 Subject: [PATCH] improving reference logging between bank & us --- .../qantra/tm/domain/models/Transaction.java | 1 + .../EcocashRemotePaymentProcessor.java | 29 +++++++++++++++++-- .../payments/MPGSWebPaymentProcessor.java | 2 +- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/zw/qantra/tm/domain/models/Transaction.java b/src/main/java/zw/qantra/tm/domain/models/Transaction.java index ffc204b..58b866e 100644 --- a/src/main/java/zw/qantra/tm/domain/models/Transaction.java +++ b/src/main/java/zw/qantra/tm/domain/models/Transaction.java @@ -57,6 +57,7 @@ public class Transaction extends BaseEntity { private String billClientId; private String clientSecret; private String aggregatorId; + private String paymentProcessorRef; private String billName; private String billProductName; private String paymentProcessorName; diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/payments/EcocashRemotePaymentProcessor.java b/src/main/java/zw/qantra/tm/domain/services/processors/payments/EcocashRemotePaymentProcessor.java index dd31f64..ab92493 100644 --- a/src/main/java/zw/qantra/tm/domain/services/processors/payments/EcocashRemotePaymentProcessor.java +++ b/src/main/java/zw/qantra/tm/domain/services/processors/payments/EcocashRemotePaymentProcessor.java @@ -97,7 +97,20 @@ public class EcocashRemotePaymentProcessor implements TransactionProcessorInterf transaction.setResponseCode("00"); LinkedHashMap transactionData = (LinkedHashMap) body.get("transaction"); - transaction.setDebitRef((String) transactionData.get("debitReference")); + transaction.setPaymentProcessorRef((String) transactionData.get("debitReference")); + + // getting omni channel rrn from additional data + java.util.List additionalData = + (java.util.List) transactionData.get("additionalData"); + if (additionalData != null) { + for (LinkedHashMap dataItem : additionalData) { + if ("Transaction Reference".equals(dataItem.get("name"))) { + transaction.setDebitRef((String) dataItem.get("value")); + break; + } + } + } + transactionService.save(transaction); }else{ transaction.setStatus(Status.FAILED); @@ -146,7 +159,19 @@ public class EcocashRemotePaymentProcessor implements TransactionProcessorInterf transaction.setTargetUrl((String) body.get("targetUrl")); LinkedHashMap transactionData = (LinkedHashMap) body.get("transaction"); - transaction.setDebitRef((String) transactionData.get("debitReference")); + transaction.setPaymentProcessorRef((String) transactionData.get("debitReference")); + + // getting omni channel rrn from additional data + java.util.List additionalData = + (java.util.List) transactionData.get("additionalData"); + if (additionalData != null) { + for (LinkedHashMap dataItem : additionalData) { + if ("Transaction Reference".equals(dataItem.get("name"))) { + transaction.setDebitRef((String) dataItem.get("value")); + break; + } + } + } transactionService.save(transaction); } diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/payments/MPGSWebPaymentProcessor.java b/src/main/java/zw/qantra/tm/domain/services/processors/payments/MPGSWebPaymentProcessor.java index d8da71f..f0e68d7 100644 --- a/src/main/java/zw/qantra/tm/domain/services/processors/payments/MPGSWebPaymentProcessor.java +++ b/src/main/java/zw/qantra/tm/domain/services/processors/payments/MPGSWebPaymentProcessor.java @@ -158,7 +158,7 @@ public class MPGSWebPaymentProcessor implements TransactionProcessorInterface { try { LinkedHashMap transactionData = (LinkedHashMap) body.get("transaction"); - transaction.setDebitRef((String) transactionData.get("creditReference")); + transaction.setDebitRef((String) transactionData.get("debitReference")); } catch (Exception e) { logger.info("Notification not yet posted at the bank"); }