From 68ed2650e8ff4cb7467f3b29ac5d66834cf8f56a Mon Sep 17 00:00:00 2001 From: Prince Date: Thu, 11 Jun 2026 16:34:01 +0200 Subject: [PATCH] adding citywallet support --- data/jobrunr.mv.db | Bin 221184 -> 831488 bytes data/jobrunr.trace.db | 64 +++++++++++ .../domain/controllers/AccountController.java | 47 ++++++++ .../controllers/TransactonController.java | 12 +++ .../domain/dtos/erp/VelocityAccountDto.java | 33 ++++++ .../domain/dtos/erp/VelocityStatementDto.java | 51 +++++++++ .../qantra/tm/domain/models/Transaction.java | 5 + .../qantra/tm/domain/services/JobService.java | 8 ++ .../tm/domain/services/ProviderService.java | 2 +- .../tm/domain/services/SettingService.java | 13 +++ .../services/VelocityAccountService.java | 77 +++++++++++++ .../services/VelocityPaymentService.java | 49 ++++++++- .../CityWalletRemotePaymentProcessor.java | 102 ++++++++++++++++++ .../EcocashRemotePaymentProcessor.java | 17 +-- .../payments/MPGSWebPaymentProcessor.java | 19 +--- .../tm/seeders/PaymentProcessorSeeder.java | 10 ++ src/main/resources/application-lab.properties | 4 +- .../resources/liquibase-diff-changeLog.xml | 95 +--------------- 18 files changed, 477 insertions(+), 131 deletions(-) create mode 100644 data/jobrunr.trace.db create mode 100644 src/main/java/zw/qantra/tm/domain/controllers/AccountController.java create mode 100644 src/main/java/zw/qantra/tm/domain/dtos/erp/VelocityAccountDto.java create mode 100644 src/main/java/zw/qantra/tm/domain/dtos/erp/VelocityStatementDto.java create mode 100644 src/main/java/zw/qantra/tm/domain/services/VelocityAccountService.java create mode 100644 src/main/java/zw/qantra/tm/domain/services/processors/payments/CityWalletRemotePaymentProcessor.java diff --git a/data/jobrunr.mv.db b/data/jobrunr.mv.db index dc305ea33db61eb34971379a864b303a7c6bc4a1..fa54cde5c0d48dd99714ae78c39920b15d8d98f5 100644 GIT binary patch literal 831488 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�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 CP$%O6 literal 221184 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.java:291) + at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035) + at org.h2.mvstore.db.Store.(Store.java:133) + at org.h2.engine.Database.(Database.java:326) + at org.h2.engine.Engine.openSession(Engine.java:92) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:125) + at org.h2.Driver.connect(Driver.java:59) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:98) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) + at org.jobrunr.storage.sql.common.SqlStorageProviderFactory.getStorageProviderUsingDataSource(SqlStorageProviderFactory.java:40) + at org.jobrunr.storage.sql.common.SqlStorageProviderFactory.using(SqlStorageProviderFactory.java:36) + at org.jobrunr.storage.sql.common.SqlStorageProviderFactory.using(SqlStorageProviderFactory.java:31) + at org.jobrunr.spring.autoconfigure.storage.JobRunrSqlStorageAutoConfiguration.sqlStorageProvider(JobRunrSqlStorageAutoConfiguration.java:33) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:569) + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:971) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) + at zw.qantra.tm.TmApplication.main(TmApplication.java:20) +Caused by: org.h2.jdbc.JdbcSQLNonTransientException: General error: "org.h2.mvstore.MVStoreException: The file is locked: /Users/khoza/dev/qantra/qpay-transaction-manager-spring-boot/data/jobrunr.mv.db [2.2.224/7]" [50000-224] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:566) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) + ... 51 more +Caused by: org.h2.mvstore.MVStoreException: The file is locked: /Users/khoza/dev/qantra/qpay-transaction-manager-spring-boot/data/jobrunr.mv.db [2.2.224/7] + at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996) + at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143) + at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117) + at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81) + at org.h2.mvstore.MVStore.(MVStore.java:286) + ... 45 more diff --git a/src/main/java/zw/qantra/tm/domain/controllers/AccountController.java b/src/main/java/zw/qantra/tm/domain/controllers/AccountController.java new file mode 100644 index 0000000..e1a3591 --- /dev/null +++ b/src/main/java/zw/qantra/tm/domain/controllers/AccountController.java @@ -0,0 +1,47 @@ +package zw.qantra.tm.domain.controllers; + +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import zw.qantra.tm.domain.dtos.erp.VelocityAccountDto; +import zw.qantra.tm.domain.dtos.erp.VelocityStatementDto; +import zw.qantra.tm.domain.services.VelocityAccountService; + +import java.util.List; + +@RestController +@RequestMapping("/accounts") +@RequiredArgsConstructor +public class AccountController { + + private final VelocityAccountService velocityAccountService; + private static final List SUPPORTED_CURRENCIES = List.of("USD", "ZWG"); + + @GetMapping("/phone/{currencyPhoneConcat}") + @PreAuthorize("hasRole('ACCOUNT_READ')") + public ResponseEntity getAccountByPhone( + @PathVariable String currencyPhoneConcat) { + try { + VelocityAccountDto account = velocityAccountService.getAccountByPhone(currencyPhoneConcat); + return ResponseEntity.ok(account); + } catch (Exception e) { + return ResponseEntity.badRequest().build(); + } + } + + @GetMapping("/phone/{currencyPhoneConcat}/statement") + @PreAuthorize("hasRole('ACCOUNT_READ')") + public ResponseEntity getStatementByPhone( + @PathVariable String currencyPhoneConcat, + @RequestParam String startDate, + @RequestParam String endDate) { + try { + VelocityStatementDto statement = velocityAccountService.getStatementByPhone( + currencyPhoneConcat, startDate, endDate); + return ResponseEntity.ok(statement); + } catch (Exception e) { + return ResponseEntity.badRequest().build(); + } + } +} \ No newline at end of file diff --git a/src/main/java/zw/qantra/tm/domain/controllers/TransactonController.java b/src/main/java/zw/qantra/tm/domain/controllers/TransactonController.java index 8316df5..f585c9c 100644 --- a/src/main/java/zw/qantra/tm/domain/controllers/TransactonController.java +++ b/src/main/java/zw/qantra/tm/domain/controllers/TransactonController.java @@ -27,6 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import zw.qantra.tm.domain.services.processors.payments.CityWalletRemotePaymentProcessor; import zw.qantra.tm.domain.services.processors.workflows.TransactionWorkflow; import zw.qantra.tm.domain.services.processors.workflows.WorkflowUtils; import zw.qantra.tm.utils.LogUtils; @@ -48,6 +49,7 @@ public class TransactonController { private final WorkflowInstanceFactory workflowInstanceFactory; private final WorkflowUtils workflowUtils; private final ObjectStringMapper objectStringMapper; + private final CityWalletRemotePaymentProcessor cityWalletRemotePaymentProcessor; @GetMapping public ResponseEntity> getAll( @@ -206,6 +208,16 @@ public class TransactonController { return ResponseEntity.ok(response); } + @PutMapping("/{id}/velocity-otp") + public ResponseEntity updateOtp(@PathVariable UUID id, @RequestBody Transaction transaction) { + Transaction fetchTransaction = transactionService.findById(id); + if (fetchTransaction == null) { + return ResponseEntity.notFound().build(); + } + fetchTransaction.setVerificationCode(transaction.getVerificationCode()); + return ResponseEntity.ok(cityWalletRemotePaymentProcessor.updateVelocityTransactionOtp(fetchTransaction)); + } + @PutMapping("/{id}") public ResponseEntity update(@PathVariable UUID id, @RequestBody Transaction transaction) { if (!transactionService.getTransactionRepository().existsById(id)) { diff --git a/src/main/java/zw/qantra/tm/domain/dtos/erp/VelocityAccountDto.java b/src/main/java/zw/qantra/tm/domain/dtos/erp/VelocityAccountDto.java new file mode 100644 index 0000000..3157680 --- /dev/null +++ b/src/main/java/zw/qantra/tm/domain/dtos/erp/VelocityAccountDto.java @@ -0,0 +1,33 @@ +package zw.qantra.tm.domain.dtos.erp; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.sql.Timestamp; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class VelocityAccountDto { + private String name; + private String description; + private String accountNumber; + private String alternateAccountNumber; + private String parentAccountId; + private String type; + private String category; + private String ledger; + private Timestamp deactivatedAt; + private BigDecimal balance; + private String partyType; + private String party; + private String currency; + private String customerStringId; + private String companyStringId; +} \ No newline at end of file diff --git a/src/main/java/zw/qantra/tm/domain/dtos/erp/VelocityStatementDto.java b/src/main/java/zw/qantra/tm/domain/dtos/erp/VelocityStatementDto.java new file mode 100644 index 0000000..63364d7 --- /dev/null +++ b/src/main/java/zw/qantra/tm/domain/dtos/erp/VelocityStatementDto.java @@ -0,0 +1,51 @@ +package zw.qantra.tm.domain.dtos.erp; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.List; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class VelocityStatementDto { + private BigDecimal startBalance; + private BigDecimal endBalance; + private List transactions; + private String accountName; + private String accountNumber; + private String startDate; + private String endDate; + + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class StatementItem { + private String name; + private String narration; + private String party; + private String company; + private String notes; + private Timestamp postingDate; + private BigDecimal amount; + private String account; + private String accountName; + private String currency; + private String reference; + private TransactionSide type; + private BigDecimal balance; + } + + public enum TransactionSide { + DEBIT, CREDIT + } +} 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 d655e3a..18e1aa0 100644 --- a/src/main/java/zw/qantra/tm/domain/models/Transaction.java +++ b/src/main/java/zw/qantra/tm/domain/models/Transaction.java @@ -1,5 +1,6 @@ package zw.qantra.tm.domain.models; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import jakarta.persistence.*; import lombok.*; @@ -17,6 +18,7 @@ import java.util.UUID; @AllArgsConstructor @NoArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) public class Transaction extends BaseEntity { private String userId; private String trace; @@ -81,6 +83,7 @@ public class Transaction extends BaseEntity { private String orderId; private String orderTrace; private String orderTransactionTrace; + private String orderTransactionId; private String erpSalesRef; private String erpJournalRef; @@ -107,6 +110,8 @@ public class Transaction extends BaseEntity { @Column(columnDefinition = "TEXT") private String targetUrl; private String sdkActionId; + private String verificationCode; + private Integer retries; @Transient private Object additionalData; diff --git a/src/main/java/zw/qantra/tm/domain/services/JobService.java b/src/main/java/zw/qantra/tm/domain/services/JobService.java index a8c1380..c770c91 100644 --- a/src/main/java/zw/qantra/tm/domain/services/JobService.java +++ b/src/main/java/zw/qantra/tm/domain/services/JobService.java @@ -30,6 +30,7 @@ public class JobService { private final WorkflowInstanceService workflowInstanceService; private final WorkflowUtils workflowUtils; private final TransactionService transactionService; + private final SettingService settingService; public void checkOrphanedTransactions() { List transactions = transactionService.getTransactionRepository() @@ -42,6 +43,13 @@ public class JobService { for (Transaction transaction: transactions) { attempts++; try { + int maxRetries = settingService.getIntegerSetting("MAX_RETRIES"); + int retries = transaction.getRetries() == null ? 0 : transaction.getRetries(); + + if (retries >= maxRetries) + break; + + transaction.setRetries(retries + 1); // polling logic WorkflowInstance update = new WorkflowInstance.Builder() .setId(transaction.getWorkflowId()) diff --git a/src/main/java/zw/qantra/tm/domain/services/ProviderService.java b/src/main/java/zw/qantra/tm/domain/services/ProviderService.java index 4e3dcbf..31b55e3 100644 --- a/src/main/java/zw/qantra/tm/domain/services/ProviderService.java +++ b/src/main/java/zw/qantra/tm/domain/services/ProviderService.java @@ -128,7 +128,7 @@ public class ProviderService { return products; } catch (IllegalArgumentException e) { - log.error("Error fetching products: " + providerUid, e); + log.error("Error fetching products: {}", providerUid); return Collections.emptyList(); } } diff --git a/src/main/java/zw/qantra/tm/domain/services/SettingService.java b/src/main/java/zw/qantra/tm/domain/services/SettingService.java index b4f4107..5292c6a 100644 --- a/src/main/java/zw/qantra/tm/domain/services/SettingService.java +++ b/src/main/java/zw/qantra/tm/domain/services/SettingService.java @@ -14,6 +14,19 @@ public class SettingService { return settingRepository; } + public Integer getIntegerSetting(String key) { + try { + Setting setting = settingRepository.findBySettingName(key); + if (setting != null) { + return Integer.parseInt(setting.getSettingValue()); + } + return 0; + } catch (Exception exception) { + exception.printStackTrace(); + return 0; + } + } + public Boolean getBooleanSetting(String key) { try { Setting setting = settingRepository.findBySettingName(key); diff --git a/src/main/java/zw/qantra/tm/domain/services/VelocityAccountService.java b/src/main/java/zw/qantra/tm/domain/services/VelocityAccountService.java new file mode 100644 index 0000000..1db6290 --- /dev/null +++ b/src/main/java/zw/qantra/tm/domain/services/VelocityAccountService.java @@ -0,0 +1,77 @@ +package zw.qantra.tm.domain.services; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpMethod; +import org.springframework.stereotype.Service; +import zw.qantra.tm.domain.dtos.erp.VelocityAccountDto; +import zw.qantra.tm.domain.dtos.erp.VelocityStatementDto; +import zw.qantra.tm.utils.Utils; + +import java.util.LinkedHashMap; + +@Service +@Slf4j +@RequiredArgsConstructor +public class VelocityAccountService { + + private final VelocityPaymentService velocityPaymentService; + + private static final String VELOCITY_API_ACCOUNT_BY_PHONE_PATH = "/accounts/phone/{currencyPhoneConcat}"; + private static final String VELOCITY_API_STATEMENT_BY_PHONE_PATH = "/statements/phone/{currencyPhoneConcat}"; + + /** + * Fetches an account by the currency-phone concatenation. + * + * @param currencyPhoneConcat The concatenation of currency and phone (e.g. "USD+263771234567"). + * @return VelocityAccountDto with account details. + */ + public VelocityAccountDto getAccountByPhone(String currencyPhoneConcat) { + try { + LinkedHashMap responseMap = velocityPaymentService.makeRequest( + HttpMethod.GET, + VELOCITY_API_ACCOUNT_BY_PHONE_PATH.replace("{currencyPhoneConcat}", currencyPhoneConcat), + null + ); + if (responseMap == null || responseMap.isEmpty()) { + log.error("Error fetching account"); + throw new IllegalStateException("Error fetching account"); + } + return Utils.deepCopy(responseMap, VelocityAccountDto.class); + } catch (Exception e) { + log.error("Error fetching account by phone {}: {}", currencyPhoneConcat, e.getMessage(), e); + throw new IllegalStateException("Error fetching account: " + e.getMessage(), e); + } + } + + /** + * Fetches an account statement by the currency-phone concatenation and date range. + * + * @param currencyPhoneConcat The concatenation of currency and phone (e.g. "USD+263771234567"). + * @param startDate The start date for the statement (e.g. "2025-01-01"). + * @param endDate The end date for the statement (e.g. "2025-12-31"). + * @return VelocityStatementDto with statement details. + */ + public VelocityStatementDto getStatementByPhone(String currencyPhoneConcat, String startDate, String endDate) { + try { + String path = VELOCITY_API_STATEMENT_BY_PHONE_PATH + .replace("{currencyPhoneConcat}", currencyPhoneConcat) + + "?startDate=" + startDate + "&endDate=" + endDate; + + LinkedHashMap responseMap = velocityPaymentService.makeRequest( + HttpMethod.GET, + path, + null + ); + if (responseMap == null || responseMap.isEmpty()) { + log.error("Error fetching statement"); + throw new IllegalStateException("Error fetching statement"); + } + return Utils.deepCopy(responseMap, VelocityStatementDto.class); + } catch (Exception e) { + log.error("Error fetching statement for phone {} ({} - {}): {}", + currencyPhoneConcat, startDate, endDate, e.getMessage(), e); + throw new IllegalStateException("Error fetching statement: " + e.getMessage(), e); + } + } +} \ No newline at end of file diff --git a/src/main/java/zw/qantra/tm/domain/services/VelocityPaymentService.java b/src/main/java/zw/qantra/tm/domain/services/VelocityPaymentService.java index 130fcde..3d361d6 100644 --- a/src/main/java/zw/qantra/tm/domain/services/VelocityPaymentService.java +++ b/src/main/java/zw/qantra/tm/domain/services/VelocityPaymentService.java @@ -44,6 +44,7 @@ public class VelocityPaymentService { private static final String VELOCITY_API_POLL_PAYMENT_PATH = "/transactions/poll/{traceId}"; private static final String VELOCITY_API_UPDATE_WORKFLOW_PATH = "/sales-orders/update-workflow/{traceId}"; private static final String VELOCITY_API_CUSTOMERS = "/customers"; + private static final String VELOCITY_API_UPDATE_TRANSACTION_PATH = "/transactions/{id}"; public VelocityCustomerResponseDto createCustomer(RegisterRequest registerRequest) { VelocityCustomerDto payload = VelocityCustomerDto.builder() @@ -170,14 +171,22 @@ public class VelocityPaymentService { LinkedHashMap response = makeRequest( HttpMethod.POST, VELOCITY_API_INITIATE_PAYMENT_PATH, payload); LinkedHashMap body = (LinkedHashMap) response.get("body"); + + if(body == null){ + String errorMessage = (String) response.get("errorMessage"); + log.error("Error initiating payment: {}", errorMessage); + throw new IllegalStateException("Error initiating payment: " + errorMessage); + } String transactionStatus = (String) body.get("status"); String tranTrace = (String) body.get("trace"); + String tranId = (String) body.get("id"); String transactionName = (String) body.get("name"); String redirectUrl = body.containsKey("redirectUrl") ? (String) body.get("redirectUrl") : null; if ("SUCCESS".equalsIgnoreCase(transactionStatus)) { transaction.setErpSalesPaymentRef(transactionName); transaction.setOrderTransactionTrace(tranTrace); + transaction.setOrderTransactionId(tranId); transaction.setTargetUrl(redirectUrl); return transaction; } @@ -193,6 +202,14 @@ public class VelocityPaymentService { } public Transaction pollPaymentStatus(Transaction transaction) { + int maxRetries = settingService.getIntegerSetting("MAX_RETRIES"); + int retries = transaction.getRetries() == null ? 0 : transaction.getRetries(); + + if (retries >= maxRetries) + return transaction; + + transaction.setRetries(retries + 1); + LinkedHashMap response = makeRequest( HttpMethod.PUT, VELOCITY_API_POLL_PAYMENT_PATH.replace("{traceId}", transaction.getOrderTransactionTrace()), @@ -200,14 +217,44 @@ public class VelocityPaymentService { ); LinkedHashMap body = (LinkedHashMap) response.get("body"); + if(body == null){ + String errorMessage = (String) response.get("errorMessage"); + log.error("Error polling payment: {}", errorMessage); + throw new IllegalStateException("Error initiating payment: " + errorMessage); + } + transaction.setStatus(Status.valueOf((String) body.get("status"))); transaction.setPaymentStatus(Status.valueOf((String) body.get("paymentStatus"))); transaction.setPollingStatus(Status.valueOf((String) body.get("pollStatus"))); transaction.setDebitRef((String) body.get("debitRef")); transaction.setPaymentProcessorRef((String) body.get("paymentProcessorRef")); + transaction.setResponseCode((String) body.get("responseCode")); + + if (!transaction.getStatus().equals(Status.SUCCESS)) { + transaction.setErrorMessage((String) body.get("errorMessage")); + } return transaction; } + /** + * Updates the OTP (additional data) on a transaction requiring manual verification. + * Equivalent to the Flutter/Dart {@code updateTransaction} method. + * + * @param id The transaction ID to update. + * @param otp The OTP value to set as additional data. + * @return A {@code LinkedHashMap} containing the Velocity API response. + */ + public LinkedHashMap updateTransaction(String id, String otp) { + Map payload = new HashMap<>(); + payload.put("additionalData", otp); + + return makeRequest( + HttpMethod.PUT, + VELOCITY_API_UPDATE_TRANSACTION_PATH.replace("{id}", id), + payload + ); + } + @Async public void updateSalesOrderWorkflow(Transaction transaction) { LinkedHashMap response = makeRequest( @@ -226,7 +273,7 @@ public class VelocityPaymentService { } - private LinkedHashMap makeRequest(HttpMethod method, String path, Object payload) { + LinkedHashMap makeRequest(HttpMethod method, String path, Object payload) { long startNs = System.nanoTime(); ResponseEntity response; try { diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/payments/CityWalletRemotePaymentProcessor.java b/src/main/java/zw/qantra/tm/domain/services/processors/payments/CityWalletRemotePaymentProcessor.java new file mode 100644 index 0000000..2fc3de9 --- /dev/null +++ b/src/main/java/zw/qantra/tm/domain/services/processors/payments/CityWalletRemotePaymentProcessor.java @@ -0,0 +1,102 @@ +package zw.qantra.tm.domain.services.processors.payments; + +import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.RandomStringUtils; +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.enums.Status; +import zw.qantra.tm.domain.models.Transaction; +import zw.qantra.tm.domain.services.SettingService; +import zw.qantra.tm.domain.services.TransactionService; +import zw.qantra.tm.domain.services.VelocityPaymentService; +import zw.qantra.tm.domain.services.processors.TransactionProcessorInterface; +import zw.qantra.tm.rest.RestService; + +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +@Service("REQUEST_WALLET_REMOTE") +@RequiredArgsConstructor +public class CityWalletRemotePaymentProcessor implements TransactionProcessorInterface { + private final Logger logger = LoggerFactory.getLogger(CityWalletRemotePaymentProcessor.class); + private final TransactionService transactionService; + private final SettingService settingService; + private final VelocityPaymentService velocityPaymentService; + + @Override + public Object process(Transaction transaction) throws Exception { + logger.info("processing transaction"); + + if(settingService.getBooleanSetting("SIMULATE_WALLET_SUCCESS")) { + transaction.setStatus(Status.SUCCESS); + transaction.setResponseCode("02"); + transaction.setPaymentProcessorRef(RandomStringUtils.randomNumeric(10)); + transaction.setDebitRef(RandomStringUtils.randomNumeric(10)); + return transaction; + } + + try { + transaction = velocityPaymentService.processPayment(transaction); + } catch (Exception e) { + e.printStackTrace(); + logger.error("Network error during payment processing: {}", e.getMessage(), e); + transaction.setStatus(Status.FAILED); + transaction.setResponseCode("99"); + transaction.setSystemErrorMessage("Network error: " + e.getMessage()); + transaction.setErrorMessage("Payment failed. Please try again."); + } + + return transactionService.save(transaction); + } + + @Override + public Object reverse(Transaction transaction) { + return transaction; + } + + @Override + public Object poll(Transaction transaction) throws Exception { + logger.info("polling transaction"); + + if(settingService.getBooleanSetting("SIMULATE_WALLET_SUCCESS")) { + transaction.setStatus(Status.SUCCESS); + transaction.setResponseCode("02"); + transaction.setTargetUrl("/home"); + return transaction; + } + + try { + transaction = velocityPaymentService.pollPaymentStatus(transaction); + + } catch (Exception e) { + e.printStackTrace(); + logger.error("Network error during payment processing: {}", e.getMessage(), e); + transaction.setStatus(Status.FAILED); + transaction.setResponseCode("99"); + transaction.setSystemErrorMessage("Network error: " + e.getMessage()); + transaction.setErrorMessage("Payment failed. Please try again."); + } + + return transactionService.save(transaction); + } + + public Transaction updateVelocityTransactionOtp(Transaction transaction) { + String code = transaction.getVerificationCode(); + + try { + velocityPaymentService.updateTransaction(transaction.getOrderTransactionId(), code); + } catch (Exception e) { + e.printStackTrace(); + logger.error("Network error during payment update: {}", e.getMessage(), e); + transaction.setStatus(Status.FAILED); + transaction.setResponseCode("99"); + transaction.setSystemErrorMessage("Network error: " + e.getMessage()); + transaction.setErrorMessage("Payment failed. Please try again."); + } + return transaction; + } + +} 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 a357c02..3eb4343 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 @@ -23,20 +23,10 @@ import zw.qantra.tm.rest.RestService; @RequiredArgsConstructor public class EcocashRemotePaymentProcessor implements TransactionProcessorInterface { private final Logger logger = LoggerFactory.getLogger(EcocashRemotePaymentProcessor.class); - private final RestService restService; private final TransactionService transactionService; private final SettingService settingService; private final VelocityPaymentService velocityPaymentService; - @Value("${sbz.aggregator.encryption-key}") - private String encryptionKey; - @Value("${sbz.aggregator.client-id}") - private String clientId; - @Value("${sbz.aggregator.client-secret}") - private String clientSecret; - @Value("${steward.payment.processor.url}") - private String url; - @Override public Object process(Transaction transaction) throws Exception { logger.info("processing transaction"); @@ -81,11 +71,6 @@ public class EcocashRemotePaymentProcessor implements TransactionProcessorInterf try { transaction = velocityPaymentService.pollPaymentStatus(transaction); - transaction.setStatus(Status.SUCCESS); - transaction.setResponseCode("00"); - - transactionService.save(transaction); - } catch (Exception e) { e.printStackTrace(); logger.error("Network error during payment processing: {}", e.getMessage(), e); @@ -95,7 +80,7 @@ public class EcocashRemotePaymentProcessor implements TransactionProcessorInterf transaction.setErrorMessage("Payment failed. Please try again."); } - return transaction; + return transactionService.save(transaction); } public String getHash(String originalString){ 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 dbba440..de86c05 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 @@ -31,22 +31,10 @@ import java.util.Random; @RequiredArgsConstructor public class MPGSWebPaymentProcessor implements TransactionProcessorInterface { private final Logger logger = LoggerFactory.getLogger(MPGSWebPaymentProcessor.class); - private final RestService restService; private final TransactionService transactionService; private final SettingService settingService; private final VelocityPaymentService velocityPaymentService; - @Value("${sbz.aggregator.encryption-key}") - private String encryptionKey; - @Value("${sbz.aggregator.client-id}") - private String clientId; - @Value("${sbz.aggregator.client-secret}") - private String clientSecret; - @Value("${steward.payment.processor.url}") - private String url; - @Value("${mpgs.return-url}") - private String returnUrl; - @Override public Object process(Transaction transaction) throws Exception { logger.info("processing transaction"); @@ -88,11 +76,6 @@ public class MPGSWebPaymentProcessor implements TransactionProcessorInterface { try { transaction = velocityPaymentService.pollPaymentStatus(transaction); - transaction.setStatus(transaction.getStatus()); - transaction.setResponseCode("00"); - - transactionService.save(transaction); - } catch (Exception e) { e.printStackTrace(); logger.error("Network error during payment processing: {}", e.getMessage(), e); @@ -102,7 +85,7 @@ public class MPGSWebPaymentProcessor implements TransactionProcessorInterface { transaction.setErrorMessage("Payment failed. Please try again"); } - return transaction; + return transactionService.save(transaction); } @Override diff --git a/src/main/java/zw/qantra/tm/seeders/PaymentProcessorSeeder.java b/src/main/java/zw/qantra/tm/seeders/PaymentProcessorSeeder.java index 1a5447e..f2ba7b2 100644 --- a/src/main/java/zw/qantra/tm/seeders/PaymentProcessorSeeder.java +++ b/src/main/java/zw/qantra/tm/seeders/PaymentProcessorSeeder.java @@ -24,6 +24,16 @@ public class PaymentProcessorSeeder implements Seeder { @Override public void seed() { List processors = Arrays.asList( + PaymentProcessor.builder() + .name("CityWallet") + .label("WALLET") + .type("GATEWAY") + .image("city.png") + .accountFieldName("phoneNumber") + .accountFieldLabel("Wallet Phone Number") + .description("Pay using your CityWallet") + .authType("REMOTE") + .build(), PaymentProcessor.builder() .name("Ecocash") .label("ECOCASH") diff --git a/src/main/resources/application-lab.properties b/src/main/resources/application-lab.properties index bb7bb51..975ef4c 100644 --- a/src/main/resources/application-lab.properties +++ b/src/main/resources/application-lab.properties @@ -40,8 +40,8 @@ ecocash.url=https://developers.ecocash.co.zw/api/ecocash_pay/api/v2/payment/inst #velocity.api.base-url=https://api.velocityafrica.net #velocity.api.api-key=z5WdSlItIhYL6nd7rxzf-jFdKN3jJyL1LubhDFBvXmc -#velocity.api.base-url=http://localhost:9005 -#velocity.api.api-key=gH13nirZdUQdqC9impgzTzqEqv-jdbLOTx_HD5fQr_A +velocity.api.base-url=http://localhost:6975 +velocity.api.api-key=gH13nirZdUQdqC9impgzTzqEqv-jdbLOTx_HD5fQr_A velocity.api.cancel-url=http://localhost:9005/poll velocity.api.success-url=http://localhost:9005/poll diff --git a/src/main/resources/liquibase-diff-changeLog.xml b/src/main/resources/liquibase-diff-changeLog.xml index 22c9a79..c9f61e7 100644 --- a/src/main/resources/liquibase-diff-changeLog.xml +++ b/src/main/resources/liquibase-diff-changeLog.xml @@ -1,99 +1,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - -