diff --git a/src/main/java/zw/qantra/tm/domain/dtos/BillPaymentDto.java b/src/main/java/zw/qantra/tm/domain/dtos/BillPaymentDto.java index 7e970b1..d681112 100644 --- a/src/main/java/zw/qantra/tm/domain/dtos/BillPaymentDto.java +++ b/src/main/java/zw/qantra/tm/domain/dtos/BillPaymentDto.java @@ -31,4 +31,6 @@ public class BillPaymentDto { private String creditPhone; private String billName; private String trace; + private String billProductName; + private String productUid; } \ No newline at end of file diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/EconetBroadbandConfirmationProcessor.java b/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/EconetBroadbandConfirmationProcessor.java new file mode 100644 index 0000000..30112b5 --- /dev/null +++ b/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/EconetBroadbandConfirmationProcessor.java @@ -0,0 +1,26 @@ +package zw.qantra.tm.domain.services.processors.confirmations; + +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import zw.qantra.tm.domain.dtos.BillPaymentDto; +import zw.qantra.tm.domain.enums.RequestType; +import zw.qantra.tm.domain.enums.Status; +import zw.qantra.tm.domain.models.AdditionalData; +import zw.qantra.tm.domain.models.Transaction; +import zw.qantra.tm.domain.services.AdditionalDataService; +import zw.qantra.tm.domain.services.TransactionService; +import zw.qantra.tm.domain.services.processors.TransactionProcessorInterface; +import zw.qantra.tm.rest.RestService; +import zw.qantra.tm.utils.Utils; + +import java.util.LinkedHashMap; + +@Service("CONFIRM_ECONET_BROADBAND") +public class EconetBroadbandConfirmationProcessor extends EconetConfirmationProcessor{ + public EconetBroadbandConfirmationProcessor(RestService restService, TransactionService transactionService, AdditionalDataService additionalDataService) { + super(restService, transactionService, additionalDataService); + } +} diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/EconetConfirmationProcessor.java b/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/EconetConfirmationProcessor.java index 39a8f5c..e2c8b24 100644 --- a/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/EconetConfirmationProcessor.java +++ b/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/EconetConfirmationProcessor.java @@ -55,6 +55,8 @@ public class EconetConfirmationProcessor implements TransactionProcessorInterfac .creditAccount(transaction.getCreditAccount()) // customer's phone number .creditPhone(transaction.getCreditPhone()) // customer's contact phone number .billName(transaction.getBillName()) + .billProductName(transaction.getBillProductName()) + .productUid(transaction.getProductUid()) .build(); String url = aggregatorUrl + "/merchant/aggregation/transaction"; diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/NetoneConfirmationProcessor.java b/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/NetoneConfirmationProcessor.java new file mode 100644 index 0000000..c0bd121 --- /dev/null +++ b/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/NetoneConfirmationProcessor.java @@ -0,0 +1,13 @@ +package zw.qantra.tm.domain.services.processors.confirmations; + +import org.springframework.stereotype.Service; +import zw.qantra.tm.domain.services.AdditionalDataService; +import zw.qantra.tm.domain.services.TransactionService; +import zw.qantra.tm.rest.RestService; + +@Service("CONFIRM_NETONE") +public class NetoneConfirmationProcessor extends EconetConfirmationProcessor{ + public NetoneConfirmationProcessor(RestService restService, TransactionService transactionService, AdditionalDataService additionalDataService) { + super(restService, transactionService, additionalDataService); + } +} diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/integrations/StewardIntegrationProcessor.java b/src/main/java/zw/qantra/tm/domain/services/processors/integrations/StewardIntegrationProcessor.java index 87bfbd4..9058e21 100644 --- a/src/main/java/zw/qantra/tm/domain/services/processors/integrations/StewardIntegrationProcessor.java +++ b/src/main/java/zw/qantra/tm/domain/services/processors/integrations/StewardIntegrationProcessor.java @@ -77,6 +77,8 @@ public class StewardIntegrationProcessor implements TransactionProcessorInterfac .creditAccount(transaction.getCreditAccount()) // customer's zesa meter number .creditPhone(transaction.getCreditPhone()) // customer's contact phone number .billName(transaction.getBillName()) + .billProductName(transaction.getBillProductName()) + .productUid(transaction.getProductUid()) .build(); if(Objects.equals(powertelClientId, transaction.getBillClientId())) { diff --git a/src/main/java/zw/qantra/tm/domain/workflows/TransactionWorkflow.java b/src/main/java/zw/qantra/tm/domain/workflows/TransactionWorkflow.java index 61ff379..c57ffc1 100644 --- a/src/main/java/zw/qantra/tm/domain/workflows/TransactionWorkflow.java +++ b/src/main/java/zw/qantra/tm/domain/workflows/TransactionWorkflow.java @@ -225,7 +225,8 @@ public class TransactionWorkflow extends WorkflowDefinition { // polling has already happened if(transaction.getPollingStatus() == Status.SUCCESS){ return NextAction.moveToState(DONE, - "Polling already complete"); + "Purchase invoice payment generated - id: " + transaction.getErpPurchasePaymentRef() + ". " + + "Not proceeding because polling already complete"); } return NextAction.moveToState(PURCHASE_INVOICE_PAYMENT_SUCCESS, "Purchase invoice payment generated - id: " + transaction.getErpPurchasePaymentRef());