diff --git a/src/main/java/zw/qantra/tm/domain/workflows/handlers/IntegrationHandler.java b/src/main/java/zw/qantra/tm/domain/workflows/handlers/IntegrationHandler.java index dd4f416..674fe10 100644 --- a/src/main/java/zw/qantra/tm/domain/workflows/handlers/IntegrationHandler.java +++ b/src/main/java/zw/qantra/tm/domain/workflows/handlers/IntegrationHandler.java @@ -31,6 +31,10 @@ public class IntegrationHandler implements HandlerInterface { public Object process(Transaction transaction) throws Exception { transaction.setType(RequestType.INTEGRATION); + // if we've done this before then return + if(transaction.getIntegrationStatus().equals(Status.SUCCESS)) + return transaction; + TransactionEvent transactionEvent = TransactionEvent.builder() .transactionId(transaction.getId().toString()) .event(transaction.getType().name()) diff --git a/src/main/java/zw/qantra/tm/domain/workflows/handlers/PaymentHandler.java b/src/main/java/zw/qantra/tm/domain/workflows/handlers/PaymentHandler.java index a7eea4a..edfed92 100644 --- a/src/main/java/zw/qantra/tm/domain/workflows/handlers/PaymentHandler.java +++ b/src/main/java/zw/qantra/tm/domain/workflows/handlers/PaymentHandler.java @@ -33,6 +33,10 @@ public class PaymentHandler implements HandlerInterface { transaction.setAuthType(incomingTransaction.getAuthType()); } + // if we've done this before then return + if(transaction.getPaymentStatus().equals(Status.SUCCESS)) + return transaction; + transactionService.save(transaction); TransactionEvent transactionEvent = TransactionEvent.builder()