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 c7c63f4..d240f21 100644 --- a/src/main/java/zw/qantra/tm/domain/models/Transaction.java +++ b/src/main/java/zw/qantra/tm/domain/models/Transaction.java @@ -58,6 +58,13 @@ public class Transaction extends BaseEntity { private String paymentProcessorName; private String providerImage; private String paymentProcessorImage; + + private String erpSalesRef; + private String erpJournalRef; + private String erpSalesPaymentRef; + private String erpPurchaseRef; + private String erpPurchasePaymentRef; + @Enumerated(EnumType.STRING) private RequestType type; @Enumerated(EnumType.STRING) diff --git a/src/main/java/zw/qantra/tm/domain/services/TransactionService.java b/src/main/java/zw/qantra/tm/domain/services/TransactionService.java index d8b2d65..480808e 100644 --- a/src/main/java/zw/qantra/tm/domain/services/TransactionService.java +++ b/src/main/java/zw/qantra/tm/domain/services/TransactionService.java @@ -61,6 +61,7 @@ public class TransactionService { String label = transaction.getType() + "_" + provider.getIntegrationProcessorLabel(); logger.info("label: {}", label); + transaction.setIntegrationProcessorLabel(provider.getIntegrationProcessorLabel()); // for reference purposes TransactionProcessorInterface transactionProcessorInterface = (TransactionProcessorInterface) paymentProcessorFactory.getPaymentProcessor(label); diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/handlers/CalculateChargesHandler.java b/src/main/java/zw/qantra/tm/domain/services/processors/handlers/CalculateChargesHandler.java index f28f74f..d8d447c 100644 --- a/src/main/java/zw/qantra/tm/domain/services/processors/handlers/CalculateChargesHandler.java +++ b/src/main/java/zw/qantra/tm/domain/services/processors/handlers/CalculateChargesHandler.java @@ -50,7 +50,9 @@ public class CalculateChargesHandler implements LogicHandler{ Logger logger = LoggerFactory.getLogger(SalesInvoiceHandler.class); - @Override public Transaction process(Transaction transaction) { logger.info("Processing sales invoice for transaction: {}", transaction.getReference()); 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 736750e..12d4990 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 @@ -42,7 +42,10 @@ public class EcocashRemotePaymentProcessor implements TransactionProcessorInterf String token = restService.getMerchantToken(); // send total less gateway charges - BigDecimal totalAmount = transaction.getAmount().add(transaction.getTax()).add(transaction.getCharge()); + BigDecimal totalAmount = transaction.getAmount() + .add(transaction.getTax()) + .add(transaction.getCharge()) + .add(transaction.getGatewayCharge()); String concat = clientId+ encryptionKey+ 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 3886eb0..ce80bde 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 @@ -43,7 +43,10 @@ public class MPGSWebPaymentProcessor implements TransactionProcessorInterface { String token = restService.getMerchantToken(); // send total less gateway charges - BigDecimal totalAmount = transaction.getAmount().add(transaction.getTax()).add(transaction.getCharge()); + BigDecimal totalAmount = transaction.getAmount() + .add(transaction.getTax()) + .add(transaction.getCharge()) + .add(transaction.getGatewayCharge()); String concat = clientId+ encryptionKey+ diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/payments/StewardWebPaymentProcessor.java b/src/main/java/zw/qantra/tm/domain/services/processors/payments/StewardWebPaymentProcessor.java index 3610814..e5b5c2b 100644 --- a/src/main/java/zw/qantra/tm/domain/services/processors/payments/StewardWebPaymentProcessor.java +++ b/src/main/java/zw/qantra/tm/domain/services/processors/payments/StewardWebPaymentProcessor.java @@ -1,5 +1,6 @@ package zw.qantra.tm.domain.services.processors.payments; +import java.math.BigDecimal; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -41,10 +42,15 @@ public class StewardWebPaymentProcessor implements TransactionProcessorInterface logger.info("processing transaction"); String token = restService.getMerchantToken(); + BigDecimal totalAmount = transaction.getAmount() + .add(transaction.getTax()) + .add(transaction.getCharge()) + .add(transaction.getGatewayCharge()); + String concat = clientId+ encryptionKey+ transaction.getCreditPhone()+ - transaction.getAmount(); + totalAmount; String hex = getHash(concat); @@ -52,7 +58,7 @@ public class StewardWebPaymentProcessor implements TransactionProcessorInterface .clientId(clientId) .clientSecret(clientSecret) .phone(transaction.getCreditPhone()) - .amount(transaction.getAmount().toString()) + .amount(totalAmount.toString()) .currency(transaction.getDebitCurrency().toString()) .hash(hex) .authType("WEB") diff --git a/src/main/resources/application-vusa.properties b/src/main/resources/application-vusa.properties new file mode 100644 index 0000000..a7af74a --- /dev/null +++ b/src/main/resources/application-vusa.properties @@ -0,0 +1,2 @@ +# sbz.merchant.url=http://localhost:24000/v1 +sbz.merchant.url=https://api.stewardpay.co.zw/lab/v2 diff --git a/src/main/resources/liquibase-diff-changeLog.xml b/src/main/resources/liquibase-diff-changeLog.xml new file mode 100644 index 0000000..e44c53a --- /dev/null +++ b/src/main/resources/liquibase-diff-changeLog.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/liquibase-lab.properties b/src/main/resources/liquibase-lab.properties index 2dcb40d..40cdf32 100644 --- a/src/main/resources/liquibase-lab.properties +++ b/src/main/resources/liquibase-lab.properties @@ -1,6 +1,6 @@ changeLogFile=src/main/resources/liquibase-diff-changeLog.xml -url=jdbc:postgresql://173.212.247.232:5432/qpay?serverTimezone=Africa/Harare&useLegacyDatetimeCode=false -username=root +url=jdbc:postgresql://173.212.247.232:5532/qpay?serverTimezone=Africa/Harare&useLegacyDatetimeCode=false +username=postgres password=zdDZMzq6F4B4L1IUl driver=org.postgresql.Driver