From 36c25a8fe69148f087d688aaec6cc3abf958db26 Mon Sep 17 00:00:00 2001 From: NewUsername Date: Sun, 12 Oct 2025 18:37:32 +0300 Subject: [PATCH] Updates --- .gradle/8.14.3/checksums/checksums.lock | Bin 17 -> 17 bytes .gradle/8.14.3/checksums/md5-checksums.bin | Bin 0 -> 22797 bytes .gradle/8.14.3/checksums/sha1-checksums.bin | Bin 0 -> 27947 bytes .../executionHistory/executionHistory.bin | Bin 0 -> 376198 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 18947 -> 21147 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.14.3/fileHashes/resourceHashesCache.bin | Bin 0 -> 21387 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/buildOutputCleanup/outputFiles.bin | Bin 0 -> 18911 bytes .gradle/file-system.probe | Bin 0 -> 8 bytes build.gradle | 16 +- build/reports/problems/problems-report.html | 2 +- build/resources/main/application.yml | 44 +++- build/resources/main/schema.sql | 8 + .../stash-dir/MpesaController.class.uniqueId1 | Bin 0 -> 2958 bytes .../stash-dir/MpesaService.class.uniqueId0 | Bin 0 -> 10813 bytes .../compileJava/previous-compilation-data.bin | Bin 93696 -> 56250 bytes .../com/test/payment/PaymentApplication.java | 2 + .../payment/configurations/RedisConfig.java | 10 +- .../payment/controller/MpesaController.java | 4 +- .../com/test/payment/dto/MpesaRequestDto.java | 44 ++++ .../test/payment/dto/MpesaTokenResponse.java | 14 ++ .../exceptions/MpesaBusyException.java | 8 + .../payment/jobs/MpesaTransactionJob.java | 2 +- .../test/payment/models/MpesaResponse.java | 16 +- .../test/payment/models/PaymentRequest.java | 4 +- .../com/test/payment/models/Transaction.java | 12 +- .../payment/repository/MpesaRepository.java | 26 ++- .../test/payment/service/MpesaService.java | 205 +++++++++++++++--- .../test/payment/service/MpesaServiceaa.java | 190 ++++++++++++++++ .../payment/service/MpesaTokenService.java | 10 +- .../com/test/payment/utils/MpesaUtils.java | 60 +++++ src/main/resources/application.yml | 44 +++- src/main/resources/schema.sql | 8 + 35 files changed, 644 insertions(+), 85 deletions(-) create mode 100644 .gradle/8.14.3/checksums/md5-checksums.bin create mode 100644 .gradle/8.14.3/checksums/sha1-checksums.bin create mode 100644 .gradle/8.14.3/executionHistory/executionHistory.bin create mode 100644 .gradle/8.14.3/fileHashes/resourceHashesCache.bin create mode 100644 .gradle/buildOutputCleanup/outputFiles.bin create mode 100644 .gradle/file-system.probe create mode 100644 build/resources/main/schema.sql create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/MpesaController.class.uniqueId1 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/MpesaService.class.uniqueId0 create mode 100644 src/main/java/com/test/payment/dto/MpesaRequestDto.java create mode 100644 src/main/java/com/test/payment/dto/MpesaTokenResponse.java create mode 100644 src/main/java/com/test/payment/exceptions/MpesaBusyException.java create mode 100644 src/main/java/com/test/payment/service/MpesaServiceaa.java create mode 100644 src/main/java/com/test/payment/utils/MpesaUtils.java create mode 100644 src/main/resources/schema.sql diff --git a/.gradle/8.14.3/checksums/checksums.lock b/.gradle/8.14.3/checksums/checksums.lock index 083f4f11e5f81a604b2d3099b34fe0dae91f559f..9fd90df9137c28fdf58f36557153764d88523d75 100644 GIT binary patch literal 17 VcmZRsIeswuP+gQg0~jz00{}NH1W*6~ literal 17 TcmZRsIeswuP+gQg0~7!NHx~pv diff --git a/.gradle/8.14.3/checksums/md5-checksums.bin b/.gradle/8.14.3/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..85c3bc56872679bf9283ec2f779f0336869aec16 GIT binary patch literal 22797 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 CFp3%g literal 0 HcmV?d00001 diff --git a/.gradle/8.14.3/checksums/sha1-checksums.bin b/.gradle/8.14.3/checksums/sha1-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..028991a6ebb5494f688b52b4492e179b7b1a52b1 GIT binary patch literal 27947 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 literal 0 HcmV?d00001 diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin new file mode 100644 index 0000000000000000000000000000000000000000..54e6c4a80693930531009d9d6bc29868ad3bde09 GIT binary patch literal 376198 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 literal 0 HcmV?d00001 diff --git a/.gradle/8.14.3/executionHistory/executionHistory.lock b/.gradle/8.14.3/executionHistory/executionHistory.lock index 73c42514db7ca9fb4521d729065c2d8b26faf671..927f37c717aead8f322c8e68a43ff1ec0b28b4a5 100644 GIT binary patch literal 17 UcmZRc8N2NI)pZV03=psa06Pu^JOBUy literal 17 TcmZRc8N2NI)pZV03{U_7I%Wiv diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index 04d0d25edb4caf025067527aa23ce129ca1f05bb..d312e43ba1c0c72653c554c10b0902c9cf9e97f4 100644 GIT binary patch literal 21147 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 J9X$>)0sxe?7()O6 diff --git a/.gradle/8.14.3/fileHashes/fileHashes.lock b/.gradle/8.14.3/fileHashes/fileHashes.lock index 668f7515d622c5060e05bd6089c75cfeb73755c0..a6230aeefdf202b34264425dd84961399cbe79f0 100644 GIT binary patch literal 17 VcmZRseY~f2VY0#&1~6bc3;;Tk1wsG- literal 17 UcmZRseY~f2VY0#&1_ppNr%_ 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 literal 0 HcmV?d00001 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 62a915469a83ca0d26188789cf640ebbe123a3d1..8a3c9b34d189381e337c7aba8d7935263905f956 100644 GIT binary patch literal 17 UcmZSP@V(6{?6^&f0SuUe03ICz!2kdN literal 17 TcmZSP@V(6{?6^&f0Rk8S9moQ1 diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000000000000000000000000000000000000..bb3069cde4d6047d4838dec954408282d6d5dcb0 GIT binary patch literal 18911 zcmeI%K}b_^9Ki9vc93ecEW$~LNDL1Rik6C~FlWv!S_x8U>S5(f$V-HJ$b*qWrJ@j~ z5!g+T8WJTa7U9M0kf1OjkU*O0L;|y*n>~5IpVBpqBEApa_UHS4@4xpx*PSuOwSPkn zvwa-eUa~>}0R#|0009ILKmY**5I_I{1Q0*~0R#|00D=ES;G*>+d+e8Sxsx{+&Sqmy zI;=%n$DQ^U2WpRMEZB_QxyfF)7>i_vQOVuAN!nL zdfS^RJw^L;$ylR5(?1|RUHiwJ(TARIX-?VyvG(}VZ&hQ^U`l>Kl1j+YTcF8`?61w_S_WrWM#Z8B=g6$`v{+RN5@~ literal 0 HcmV?d00001 diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe new file mode 100644 index 0000000000000000000000000000000000000000..0d90605c06c560f3f258274728dbb3f540f859ed GIT binary patch literal 8 PcmZQzV4Qhw)e&U?3G4#; literal 0 HcmV?d00001 diff --git a/build.gradle b/build.gradle index a474213..3dc7c69 100644 --- a/build.gradle +++ b/build.gradle @@ -21,22 +21,26 @@ repositories { dependencies { implementation("org.springframework.boot:spring-boot-starter-webflux") - implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-data-r2dbc")/* implementation("io.r2dbc:r2dbc-postgresql")*/ - implementation("org.springframework.boot:spring-boot-starter-data-redis-reactive") - implementation("io.lettuce:lettuce-core:6.2.2.RELEASE") + /*implementation("org.springframework.boot:spring-boot-starter-data-redis-reactive") + */implementation("io.lettuce:lettuce-core:6.2.2.RELEASE") - implementation 'com.h2database:h2' +// Choose ONE driver depending on your DB: + runtimeOnly("io.r2dbc:r2dbc-h2") // for in-memory - implementation("io.github.resilience4j:resilience4j-reactor:2.0.2") implementation("io.github.resilience4j:resilience4j-ratelimiter:2.0.2") implementation("io.github.resilience4j:resilience4j-circuitbreaker:2.0.2") implementation("io.github.resilience4j:resilience4j-retry:2.0.2") - implementation("io.github.resilience4j:resilience4j-spring-boot3:2.0.2") implementation("org.springframework.boot:spring-boot-starter") + implementation("org.springdoc:springdoc-openapi-starter-webflux-ui:2.6.0") + + implementation 'io.github.resilience4j:resilience4j-spring-boot2:1.7.1' + implementation 'io.github.resilience4j:resilience4j-reactor:1.7.1' + + implementation 'org.projectlombok:lombok:1.18.32' // Use the latest stable version annotationProcessor 'org.projectlombok:lombok:1.18.32' // For annotation processing diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html index f6cb495..200197d 100644 --- a/build/reports/problems/problems-report.html +++ b/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { diff --git a/build/resources/main/application.yml b/build/resources/main/application.yml index c09bf79..8d45436 100644 --- a/build/resources/main/application.yml +++ b/build/resources/main/application.yml @@ -19,8 +19,11 @@ resilience4j: retry-exceptions: - org.springframework.web.reactive.function.client.WebClientRequestException - java.io.IOException + - com.example.mpesa.exceptions.MpesaBusyException ignore-exceptions: - com.test.payment.exceptions.MpesaPermanentException + - java.lang.IllegalArgumentException + circuitbreaker: instances: @@ -30,11 +33,38 @@ resilience4j: failure-rate-threshold: 50 wait-duration-in-open-state: 10s -spring: - datasource: - url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE - driverClassName: org.h2.Driver - username: sa - password: password - platform: h2 + + + +spring: + r2dbc: + url: r2dbc:h2:mem:///mpesa_db;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + username: sa + password: + sql: + init: + mode: always + schema-locations: classpath:schema.sql + main: + web-application-type: reactive + +logging: + level: + org.springframework.data.r2dbc: DEBUG + +springdoc: + swagger-ui: + path: /swagger-ui.html + operationsSorter: method + tagsSorter: alpha + api-docs: + path: /v3/api-docs + packages-to-scan: com.test.payment.controller + +mpesa: + base-url: https://sandbox.safaricom.co.ke + consumer-key: k6e7LtBNeVX7V8MPqB7P83FsZio8cRZD + consumer-secret: cGwiWzhDGopC3dho + business-short-code: 174379 + pass-key: bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919 \ No newline at end of file diff --git a/build/resources/main/schema.sql b/build/resources/main/schema.sql new file mode 100644 index 0000000..9930216 --- /dev/null +++ b/build/resources/main/schema.sql @@ -0,0 +1,8 @@ +CREATE TABLE IF NOT EXISTS transactions ( + id SERIAL PRIMARY KEY, + mpesa_reference VARCHAR(255), + checkout_request_id VARCHAR(255), + status VARCHAR(50), + amount DECIMAL(10,2), + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/MpesaController.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/MpesaController.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..521c44fd3106503aadb2ee2c6444b3a752d8e52e GIT binary patch literal 2958 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 pCOp4Q0(*~T>(K9Q4s`0sa84y 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 diff --git a/src/main/java/com/test/payment/PaymentApplication.java b/src/main/java/com/test/payment/PaymentApplication.java index f02a856..49aacad 100644 --- a/src/main/java/com/test/payment/PaymentApplication.java +++ b/src/main/java/com/test/payment/PaymentApplication.java @@ -2,10 +2,12 @@ package com.test.payment; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableScheduling +@EnableR2dbcRepositories(basePackages = "com.test.payment.repository") public class PaymentApplication { public static void main(String[] args) { diff --git a/src/main/java/com/test/payment/configurations/RedisConfig.java b/src/main/java/com/test/payment/configurations/RedisConfig.java index 9c7a9d9..0bed43b 100644 --- a/src/main/java/com/test/payment/configurations/RedisConfig.java +++ b/src/main/java/com/test/payment/configurations/RedisConfig.java @@ -2,13 +2,13 @@ package com.test.payment.configurations; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; -import org.springframework.data.redis.core.RedisTemplate; +//import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +//import org.springframework.data.redis.core.RedisTemplate; -@Configuration +//@Configuration public class RedisConfig { - @Bean + /* @Bean public LettuceConnectionFactory redisConnectionFactory() { return new LettuceConnectionFactory(); } @@ -18,5 +18,5 @@ public class RedisConfig { RedisTemplate template = new RedisTemplate<>(); template.setConnectionFactory(factory); return template; - } + }*/ } diff --git a/src/main/java/com/test/payment/controller/MpesaController.java b/src/main/java/com/test/payment/controller/MpesaController.java index a7bda73..4287e86 100644 --- a/src/main/java/com/test/payment/controller/MpesaController.java +++ b/src/main/java/com/test/payment/controller/MpesaController.java @@ -1,10 +1,10 @@ package com.test.payment.controller; -import com.test.payment.models.*; import com.test.payment.models.MpesaResponse; import com.test.payment.models.PaymentRequest; import com.test.payment.service.MpesaService; +import com.test.payment.service.MpesaServiceaa; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -22,7 +22,7 @@ public class MpesaController { return mpesaService.initiatePayment(request) .map(ResponseEntity::ok) .onErrorResume(ex -> Mono.just(ResponseEntity.badRequest() - .body(new MpesaResponse("FAILED", ex.getMessage())))); + .body(new MpesaResponse("FAILED", ex.getMessage(),"","","")))); } } diff --git a/src/main/java/com/test/payment/dto/MpesaRequestDto.java b/src/main/java/com/test/payment/dto/MpesaRequestDto.java new file mode 100644 index 0000000..22999c3 --- /dev/null +++ b/src/main/java/com/test/payment/dto/MpesaRequestDto.java @@ -0,0 +1,44 @@ +package com.test.payment.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class MpesaRequestDto { + @JsonProperty("BusinessShortCode") + private Long businessShortCode; + + @JsonProperty("Password") + private String password; + + @JsonProperty("Timestamp") + private String timestamp; + + @JsonProperty("TransactionType") + private String transactionType; + + @JsonProperty("Amount") + private Integer amount; + + @JsonProperty("PartyA") + private Long partyA; + + @JsonProperty("PartyB") + private Long partyB; + + @JsonProperty("PhoneNumber") + private Long phoneNumber; + + @JsonProperty("CallBackURL") + private String callBackURL; + + @JsonProperty("AccountReference") + private String accountReference; + + @JsonProperty("TransactionDesc") + private String transactionDesc; +} diff --git a/src/main/java/com/test/payment/dto/MpesaTokenResponse.java b/src/main/java/com/test/payment/dto/MpesaTokenResponse.java new file mode 100644 index 0000000..79a90f7 --- /dev/null +++ b/src/main/java/com/test/payment/dto/MpesaTokenResponse.java @@ -0,0 +1,14 @@ +package com.test.payment.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class MpesaTokenResponse { + + @JsonProperty("access_token") + private String accessToken; + + @JsonProperty("expires_in") + private String expiresIn; +} diff --git a/src/main/java/com/test/payment/exceptions/MpesaBusyException.java b/src/main/java/com/test/payment/exceptions/MpesaBusyException.java new file mode 100644 index 0000000..8f366ca --- /dev/null +++ b/src/main/java/com/test/payment/exceptions/MpesaBusyException.java @@ -0,0 +1,8 @@ +package com.test.payment.exceptions; + + +public class MpesaBusyException extends RuntimeException { + public MpesaBusyException(String msg) { + super(msg); + } +} diff --git a/src/main/java/com/test/payment/jobs/MpesaTransactionJob.java b/src/main/java/com/test/payment/jobs/MpesaTransactionJob.java index b94fa60..6dfeda0 100644 --- a/src/main/java/com/test/payment/jobs/MpesaTransactionJob.java +++ b/src/main/java/com/test/payment/jobs/MpesaTransactionJob.java @@ -16,7 +16,7 @@ public class MpesaTransactionJob { @Scheduled(fixedDelay = 60000) public void pullTransactions() { - mpesaRepository.findAllTransactions() + mpesaRepository.findAll() .doOnNext(tx -> log.info("Checking transaction: {}", tx)) .subscribe(); } diff --git a/src/main/java/com/test/payment/models/MpesaResponse.java b/src/main/java/com/test/payment/models/MpesaResponse.java index 60d80ed..4bda54f 100644 --- a/src/main/java/com/test/payment/models/MpesaResponse.java +++ b/src/main/java/com/test/payment/models/MpesaResponse.java @@ -1,5 +1,6 @@ package com.test.payment.models; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -8,6 +9,17 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class MpesaResponse { - private String status; - private String message; + + @JsonProperty("MerchantRequestID") + private String merchantRequestID; + + @JsonProperty("ResponseCode") + private String responseCode; + @JsonProperty("CheckoutRequestID") + private String checkoutRequestId; + @JsonProperty("CustomerMessage") + private String customerMessage; + @JsonProperty("ResponseDescription") + private String responseDescription; + } diff --git a/src/main/java/com/test/payment/models/PaymentRequest.java b/src/main/java/com/test/payment/models/PaymentRequest.java index 888f464..7000d4a 100644 --- a/src/main/java/com/test/payment/models/PaymentRequest.java +++ b/src/main/java/com/test/payment/models/PaymentRequest.java @@ -5,8 +5,8 @@ import lombok.Data; @Data public class PaymentRequest { - private String phoneNumber; - private double amount; + private long phoneNumber; + private int amount; private String accountReference; private String transactionDesc; } diff --git a/src/main/java/com/test/payment/models/Transaction.java b/src/main/java/com/test/payment/models/Transaction.java index 7c7c3d9..076a26b 100644 --- a/src/main/java/com/test/payment/models/Transaction.java +++ b/src/main/java/com/test/payment/models/Transaction.java @@ -1,21 +1,23 @@ package com.test.payment.models; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.*; @Data @AllArgsConstructor @NoArgsConstructor -@Entity +@Table("transactions") public class Transaction { @Id private String id; - private String phoneNumber; - private double amount; + private long phoneNumber; + private long amount; private String status; + private String checkoutRequestId; } diff --git a/src/main/java/com/test/payment/repository/MpesaRepository.java b/src/main/java/com/test/payment/repository/MpesaRepository.java index 18298ae..289fa77 100644 --- a/src/main/java/com/test/payment/repository/MpesaRepository.java +++ b/src/main/java/com/test/payment/repository/MpesaRepository.java @@ -2,23 +2,20 @@ package com.test.payment.repository; import com.test.payment.models.Transaction; -import org.springframework.data.redis.core.RedisTemplate; +//import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.repository.reactive.ReactiveCrudRepository; import org.springframework.stereotype.Repository; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.util.List; +import java.util.Locale; + @Repository -public class MpesaRepository { +public interface MpesaRepository extends ReactiveCrudRepository { - private final RedisTemplate redisTemplate; - - public MpesaRepository(RedisTemplate redisTemplate) { - this.redisTemplate = redisTemplate; - } - - public Mono saveTransaction(Transaction transaction) { + /* public Mono saveTransaction(Transaction transaction) { return Mono.fromRunnable(() -> redisTemplate.opsForHash().put("mpesa:transactions", transaction.getId(), transaction.getStatus()) ).then(); @@ -27,5 +24,16 @@ public class MpesaRepository { public Flux findAllTransactions() { List values = redisTemplate.opsForHash().values("mpesa:transactions"); return Flux.fromIterable(values).cast(Transaction.class); + }*/ + + Flux findByStatus(String status); + Mono findByCheckoutRequestId(String checkoutRequestId); + + /* private final RedisTemplate redisTemplate; + + public MpesaRepository(RedisTemplate redisTemplate) { + this.redisTemplate = redisTemplate; } + + */ } diff --git a/src/main/java/com/test/payment/service/MpesaService.java b/src/main/java/com/test/payment/service/MpesaService.java index ba3d913..9657783 100644 --- a/src/main/java/com/test/payment/service/MpesaService.java +++ b/src/main/java/com/test/payment/service/MpesaService.java @@ -1,21 +1,27 @@ package com.test.payment.service; -import com.test.payment.exceptions.MpesaPermanentException; +import com.test.payment.dto.MpesaRequestDto; +import com.test.payment.dto.MpesaTokenResponse; +import com.test.payment.exceptions.MpesaBusyException; import com.test.payment.exceptions.MpesaTransientException; -import com.test.payment.models.*; +import com.test.payment.models.MpesaResponse; +import com.test.payment.models.PaymentRequest; import com.test.payment.repository.MpesaRepository; -import io.github.resilience4j.circuitbreaker.*; -import io.github.resilience4j.ratelimiter.*; -import io.github.resilience4j.retry.*; +import com.test.payment.utils.MpesaUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.core.env.Environment; +import org.springframework.http.HttpStatusCode; import org.springframework.stereotype.Service; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; +import io.github.resilience4j.circuitbreaker.annotation.CircuitBreaker; +import io.github.resilience4j.ratelimiter.annotation.RateLimiter; +import io.github.resilience4j.retry.annotation.Retry; -import java.util.UUID; -import java.util.function.Supplier; +import java.time.Duration; +import java.util.Base64; @Service @RequiredArgsConstructor @@ -24,42 +30,175 @@ public class MpesaService { private final WebClient mpesaWebClient; private final MpesaRepository mpesaRepository; - private final MpesaTokenService tokenService; - private final RateLimiter rateLimiter; - private final Retry retry; - private final CircuitBreaker circuitBreaker; + private final Environment environment; - public Mono initiatePayment(PaymentRequest request) { - Supplier> decoratedSupplier = - CircuitBreaker.decorateSupplier(circuitBreaker, - RateLimiter.decorateSupplier(rateLimiter, - Retry.decorateSupplier(retry, () -> callMpesa(request)) - ) - ); - - return Mono.defer(decoratedSupplier) - .flatMap(response -> { - Transaction tx = new Transaction(UUID.randomUUID().toString(), - request.getPhoneNumber(), request.getAmount(), response.getStatus()); - return mpesaRepository.saveTransaction(tx).thenReturn(response); - }) - .doOnError(e -> log.error("M-Pesa API failed: {}", e.getMessage())); + public Mono getToken() { + return Mono.just("hVG5ybD47dHUMQ6RfWby2ZpIs1Ul"); } - private Mono callMpesa(PaymentRequest request) { - return tokenService.getToken() + @CircuitBreaker(name = "mpesaCircuitBreaker", fallbackMethod = "mpesaFallback") + @RateLimiter(name = "mpesaLimiter") + @Retry(name = "mpesaRetry") + public Mono initiatePayment(PaymentRequest request) { + String businessShortCode = environment.getProperty("mpesa.business-short-code"); + String passkey = environment.getProperty("mpesa.pass-key"); + String callback = "https://mydomain.com/path"; + + MpesaUtils.MpesaAuthData authData = MpesaUtils.generateAuthData(businessShortCode, passkey); + + MpesaRequestDto mpesaRequestDto = new MpesaRequestDto( + Long.valueOf(businessShortCode), + authData.getPassword(), + authData.getTimestamp(), + "CustomerPayBillOnline", + request.getAmount(), + request.getPhoneNumber(), + Long.valueOf(businessShortCode), + request.getPhoneNumber(), + callback, + request.getAccountReference(), + request.getTransactionDesc() + ); + + // Use Mono.defer so each subscription is independent (multi-user safe) + return Mono.defer(() -> + getToken() + .flatMap(token -> callMpesa(mpesaRequestDto)) + ) + // Reactive retry only on MpesaBusyException, with configurable backoff + .retryWhen( + reactor.util.retry.Retry.backoff(3, Duration.ofSeconds(10)) + .filter(ex -> ex instanceof MpesaBusyException) + .onRetryExhaustedThrow((spec, signal) -> signal.failure()) + ) + .doOnNext(resp -> log.info("M-Pesa STK Response: {}", resp)) + .doOnError(e -> log.error("M-Pesa call failed: {}", e.getMessage())); + } + +/* @CircuitBreaker(name = "mpesaCircuitBreaker", fallbackMethod = "mpesaFallback") + @RateLimiter(name = "mpesaLimiter") + @Retry(name = "mpesaRetry") + public Mono initiatePayment(PaymentRequest request) { + String businessShortCode = environment.getProperty("mpesa.business-short-code"); + String passkey = environment.getProperty("mpesa.pass-key"); + String callback = "https://mydomain.com/path"; + + MpesaUtils.MpesaAuthData authData = MpesaUtils.generateAuthData(businessShortCode, passkey); + + + MpesaRequestDto mpesaRequestDto = new MpesaRequestDto( + Long.valueOf(businessShortCode), + authData.getPassword(), + authData.getTimestamp(), + "CustomerPayBillOnline", + request.getAmount(), + request.getPhoneNumber(), + Long.valueOf(businessShortCode), + request.getPhoneNumber(), + callback, + request.getAccountReference(), + request.getTransactionDesc() + ); + *//*return Mono.delay(Duration.ofSeconds(1)) + .then(callMpesa(mpesaRequestDto)) + .doOnNext(resp -> log.info("M-Pesa STK Response: {}", resp)) + .doOnError(e -> log.error("M-Pesa API failed: {}", e.getMessage()));*//* + + *//* return callMpesa(mpesaRequestDto) + .doOnNext(resp -> log.info("M-Pesa STK Response: {}", resp)) + .doOnError(e -> { + if (e.toString().contains("System is busy")) { + log.warn("M-Pesa system is busy"); + throe Mono.error(new MpesaBusyException("System busy")); + } else { + log.error("M-Pesa API failed: {}", e.getMessage()); + } + });*//* + + return getToken() + .flatMap(token -> callMpesa(mpesaRequestDto)) + .retryWhen( + reactor.util.retry.Retry.backoff(3, Duration.ofSeconds(10)) + .filter(ex -> ex instanceof MpesaBusyException) + .onRetryExhaustedThrow((retryBackoffSpec, retrySignal) -> + retrySignal.failure() + ) + ) .doOnError(e -> log.error("M-Pesa call failed: {}", e.getMessage())); + }*/ + + /*@Retry(name = "mpesaRetry", fallbackMethod = "mpesaFallback") + @RateLimiter(name = "mpesaLimiter") + @CircuitBreaker(name = "mpesaCB", fallbackMethod = "mpesaFallback") + public Mono initiatePayment(PaymentRequest request) { + + String businessShortCode = environment.getProperty("mpesa.business-short-code"); + String passkey = environment.getProperty("mpesa.pass-key"); + String callback = "https://mydomain.com/path"; + + MpesaUtils.MpesaAuthData authData = MpesaUtils.generateAuthData(businessShortCode, passkey); + + + MpesaRequestDto mpesaRequestDto = new MpesaRequestDto( + Long.valueOf(businessShortCode), + authData.getPassword(), + authData.getTimestamp(), + "CustomerPayBillOnline", + request.getAmount(), + request.getPhoneNumber(), + Long.valueOf(businessShortCode), + request.getPhoneNumber(), + callback, + request.getAccountReference(), + request.getTransactionDesc() + ); + + return mpesaWebClient.post() + .uri("/mpesa/stkpush/v1/processrequest") + .bodyValue(mpesaRequestDto) + .retrieve() + .bodyToMono(MpesaResponse.class) + .flatMap(resp -> { + if (resp.toString().contains("System is busy")) { + return Mono.error(new MpesaBusyException("System busy")); + } + return Mono.just(resp); + }); + }*/ + + + + private Mono callMpesa(MpesaRequestDto request) { + return getToken() .flatMap(token -> mpesaWebClient.post() .uri("/mpesa/stkpush/v1/processrequest") .header("Authorization", "Bearer " + token) .bodyValue(request) .retrieve() + .onStatus(HttpStatusCode::isError, clientResponse -> + clientResponse.bodyToMono(String.class) + .flatMap(errorBody -> { + log.error("M-Pesa returned {} with body: {}", clientResponse.statusCode(), errorBody); + if (errorBody.contains("System is busy")) { + return Mono.error(new MpesaBusyException("System busy")); + } + return Mono.error(new MpesaTransientException(errorBody, null)); + }) + ) .bodyToMono(MpesaResponse.class) - .timeout(java.time.Duration.ofSeconds(20)) - .onErrorResume(ex -> { - log.error("Error calling M-Pesa: {}", ex.getMessage()); - return Mono.error(new MpesaTransientException("Temporary M-Pesa issue", ex)); - }) ); } + + // 🧯 Fallback if circuit is open or all retries fail + private Mono mpesaFallback(PaymentRequest request, Throwable ex) { + log.error("⚠️ Mpesa fallback triggered: {}", ex.getMessage()); + return Mono.just(new MpesaResponse( + "500", + "Fallback triggered due to service unavailability", + null, + "", + null + )); + } } + diff --git a/src/main/java/com/test/payment/service/MpesaServiceaa.java b/src/main/java/com/test/payment/service/MpesaServiceaa.java new file mode 100644 index 0000000..c8d9aa9 --- /dev/null +++ b/src/main/java/com/test/payment/service/MpesaServiceaa.java @@ -0,0 +1,190 @@ +package com.test.payment.service; + + +import com.test.payment.dto.MpesaRequestDto; +import com.test.payment.exceptions.MpesaTransientException; +import com.test.payment.models.*; +import com.test.payment.repository.MpesaRepository; +import com.test.payment.utils.MpesaUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.env.Environment; +import org.springframework.http.HttpStatusCode; +import org.springframework.stereotype.Service; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Mono; + +/*@Service +@RequiredArgsConstructor +@Slf4j*/ +public class MpesaServiceaa { +/* + private final WebClient mpesaWebClient; + private final MpesaRepository mpesaRepository; + private final RateLimiter rateLimiter; + private final Retry retry; + private final CircuitBreaker circuitBreaker; + private final Environment environment; + + public Mono getToken() { +*//* // 1️⃣ Check Redis cache first + return redisTemplate.opsForValue().get("mpesa:token") + .flatMap(cachedToken -> { + if (cachedToken != null) { + return Mono.just(cachedToken); + } + return fetchNewToken(); + }) + // if no cached token, fetch and cache new one + .switchIfEmpty(fetchNewToken());*//* + return Mono.fromSupplier(() -> "Q3HCot6dNLTpUtpitkr5Tatsa4KB"); + // return fetchNewToken(); + } + + private Mono fetchNewToken() { + + String baseUrl = environment.getProperty("mpesa.base-url"); + String consumerKey = environment.getProperty("mpesa.consumer-key"); + String consumerSecret = environment.getProperty("mpesa.consumer-secret"); + + String credentials = consumerKey + ":" + consumerSecret; + String encodedCredentials = Base64.getEncoder().encodeToString(credentials.getBytes()); + + return mpesaWebClient.get() + .uri(baseUrl + "/oauth/v1/generate?grant_type=client_credentials") + .header("Authorization", "Basic " + encodedCredentials) + .retrieve() + .bodyToMono(MpesaTokenResponse.class) + .map(MpesaTokenResponse::getAccessToken); + *//*.flatMap(token -> + redisTemplate.opsForValue() + .set("mpesa:token", token, Duration.ofMinutes(50)) + .thenReturn(token) + );*//* + } + + public Mono initiatePayment(PaymentRequest request) { + + String businessShortCode = environment.getProperty("mpesa.business-short-code"); + + String passkey = environment.getProperty("mpesa.pass-key"); + + String callback = "https://mydomain.com/path"; + + MpesaUtils.MpesaAuthData authData = MpesaUtils.generateAuthData(businessShortCode, passkey); + + MpesaRequestDto mpesaRequestDto = new MpesaRequestDto(Long.valueOf(businessShortCode),authData.getPassword(),authData.getTimestamp(),"CustomerPayBillOnline",request.getAmount(),request.getPhoneNumber(), + Long.valueOf(businessShortCode),request.getPhoneNumber(),callback,request.getAccountReference(), request.getTransactionDesc()); + + Supplier> decoratedSupplier = + CircuitBreaker.decorateSupplier(circuitBreaker, + RateLimiter.decorateSupplier(rateLimiter, + Retry.decorateSupplier(retry, () -> callMpesa(mpesaRequestDto)) + ) + ); + + return Mono.defer(decoratedSupplier) + *//* .flatMap(response -> { + *//**//* Transaction tx = new Transaction(UUID.randomUUID().toString(), + request.getPhoneNumber(), request.getAmount(), response.getResponseCode(), response.getCheckoutRequestId()); + return mpesaRepository.save(tx).thenReturn(response);*//**//* + return response; + })*//* + .doOnError(e -> log.error("M-Pesa API failed: {}", e.getMessage())); + } + + private Mono callMpesa(MpesaRequestDto request) { + + getToken() + .map(token -> { + System.out.println("Token: " + token); + return token; + }) + .subscribe(); + + return getToken() + .flatMap(token -> + mpesaWebClient.post() + .uri("/mpesa/stkpush/v1/processrequest") + .header("Authorization", "Bearer " + token) + .bodyValue(request) + .retrieve() + // Intercept 4xx/5xx and extract actual body + .onStatus(HttpStatusCode::isError, clientResponse -> + clientResponse.bodyToMono(String.class) + .flatMap(errorBody -> { + log.error("M-Pesa returned {} with body: {}", clientResponse.statusCode(), errorBody); + // Return a Mono.error so onErrorResume below can handle it + return Mono.error(new RuntimeException(errorBody)); + }) + ) + .bodyToMono(MpesaResponse.class) + // Catch the above RuntimeException and return the error body as normal data + .onErrorResume(RuntimeException.class, ex -> { + log.error("Returning raw M-Pesa 500 error body: {}", ex.getMessage()); + return Mono.error(new MpesaTransientException(ex.getMessage(), ex)); // This is the actual 500 error body from M-Pesa + }) + .doOnNext(response -> log.info("M-Pesa STK Response: {}", response))); + + }*/ + + /* private final WebClient mpesaWebClient; + private final MpesaRepository mpesaRepository; + private final io.github.resilience4j.ratelimiter.RateLimiter rateLimiter; + private final io.github.resilience4j.retry.Retry retry; + private final io.github.resilience4j.circuitbreaker.CircuitBreaker circuitBreaker; + private final Environment environment; + + public Mono getToken() { + return Mono.fromSupplier(() -> "Q3HCot6dNLTpUtpitkr5Tatsa4KB"); + } + + public Mono initiatePayment(PaymentRequest request) { + String businessShortCode = environment.getProperty("mpesa.business-short-code"); + String passkey = environment.getProperty("mpesa.pass-key"); + String callback = "https://mydomain.com/path"; + + MpesaUtils.MpesaAuthData authData = MpesaUtils.generateAuthData(businessShortCode, passkey); + + MpesaRequestDto mpesaRequestDto = new MpesaRequestDto( + Long.valueOf(businessShortCode), + authData.getPassword(), + authData.getTimestamp(), + "CustomerPayBillOnline", + request.getAmount(), + request.getPhoneNumber(), + Long.valueOf(businessShortCode), + request.getPhoneNumber(), + callback, + request.getAccountReference(), + request.getTransactionDesc() + ); + + // Reactive chaining with operators (not Supplier) + return callMpesa(mpesaRequestDto) + .transformDeferred(ReactorRateLimiterOperator.of(rateLimiter)) + .transformDeferred(ReactorRetryOperator.of(retry)) + .transformDeferred(ReactorCircuitBreakerOperator.of(circuitBreaker)) + .doOnNext(resp -> log.info("M-Pesa STK Response: {}", resp)) + .doOnError(e -> log.error("M-Pesa API failed: {}", e.getMessage())); + } + + private Mono callMpesa(MpesaRequestDto request) { + return getToken() + .flatMap(token -> + mpesaWebClient.post() + .uri("/mpesa/stkpush/v1/processrequest") + .header("Authorization", "Bearer " + token) + .bodyValue(request) + .retrieve() + .onStatus(HttpStatusCode::isError, clientResponse -> + clientResponse.bodyToMono(String.class) + .flatMap(errorBody -> { + log.error("M-Pesa returned {} with body: {}", clientResponse.statusCode(), errorBody); + return Mono.error(new MpesaTransientException(errorBody, null)); + }) + ) + .bodyToMono(MpesaResponse.class) + ); + }*/ +} diff --git a/src/main/java/com/test/payment/service/MpesaTokenService.java b/src/main/java/com/test/payment/service/MpesaTokenService.java index 2d10bc5..f39537d 100644 --- a/src/main/java/com/test/payment/service/MpesaTokenService.java +++ b/src/main/java/com/test/payment/service/MpesaTokenService.java @@ -2,7 +2,7 @@ package com.test.payment.service; import lombok.RequiredArgsConstructor; -import org.springframework.data.redis.core.RedisTemplate; +//import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import reactor.core.publisher.Mono; @@ -12,16 +12,16 @@ import java.time.Duration; @RequiredArgsConstructor public class MpesaTokenService { - private final RedisTemplate redisTemplate; + // private final RedisTemplate redisTemplate; public Mono getToken() { - String cachedToken = redisTemplate.opsForValue().get("mpesa:token"); + /* String cachedToken = redisTemplate.opsForValue().get("mpesa:token"); if (cachedToken != null) { return Mono.just(cachedToken); } // Simulate token fetch from M-Pesa auth endpoint String newToken = "access_token_" + System.currentTimeMillis(); - redisTemplate.opsForValue().set("mpesa:token", newToken, Duration.ofMinutes(50)); - return Mono.just(newToken); + redisTemplate.opsForValue().set("mpesa:token", newToken, Duration.ofMinutes(50));*/ + return Mono.just("newToken"); } } diff --git a/src/main/java/com/test/payment/utils/MpesaUtils.java b/src/main/java/com/test/payment/utils/MpesaUtils.java new file mode 100644 index 0000000..6cedc3a --- /dev/null +++ b/src/main/java/com/test/payment/utils/MpesaUtils.java @@ -0,0 +1,60 @@ +package com.test.payment.utils; + + + +import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; +import java.util.Base64; +import java.util.Date; +import java.util.TimeZone; + +public class MpesaUtils { + + /** + * Generates a timestamp in the format yyyyMMddHHmmss + * Example: 20251010162455 + */ + public static String generateTimestamp() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + // Set timezone to Africa/Nairobi + sdf.setTimeZone(TimeZone.getTimeZone("Africa/Nairobi")); + return sdf.format(new Date()); + } + + /** + * Generates a Base64-encoded password for M-Pesa STK Push. + * Format: Base64(BusinessShortCode + Passkey + Timestamp) + */ + public static String generatePassword(String businessShortCode, String passkey, String timestamp) { + String dataToEncode = businessShortCode + passkey + timestamp; + return Base64.getEncoder().encodeToString(dataToEncode.getBytes(StandardCharsets.UTF_8)); + } + + /** + * Helper method to generate both password and timestamp together. + */ + public static MpesaAuthData generateAuthData(String businessShortCode, String passkey) { + String timestamp = generateTimestamp(); + String password = generatePassword(businessShortCode, passkey, timestamp); + return new MpesaAuthData(password, timestamp); + } + + // Inner class to hold both password and timestamp + public static class MpesaAuthData { + private final String password; + private final String timestamp; + + public MpesaAuthData(String password, String timestamp) { + this.password = password; + this.timestamp = timestamp; + } + + public String getPassword() { + return password; + } + + public String getTimestamp() { + return timestamp; + } + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c09bf79..8d45436 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -19,8 +19,11 @@ resilience4j: retry-exceptions: - org.springframework.web.reactive.function.client.WebClientRequestException - java.io.IOException + - com.example.mpesa.exceptions.MpesaBusyException ignore-exceptions: - com.test.payment.exceptions.MpesaPermanentException + - java.lang.IllegalArgumentException + circuitbreaker: instances: @@ -30,11 +33,38 @@ resilience4j: failure-rate-threshold: 50 wait-duration-in-open-state: 10s -spring: - datasource: - url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE - driverClassName: org.h2.Driver - username: sa - password: password - platform: h2 + + + +spring: + r2dbc: + url: r2dbc:h2:mem:///mpesa_db;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + username: sa + password: + sql: + init: + mode: always + schema-locations: classpath:schema.sql + main: + web-application-type: reactive + +logging: + level: + org.springframework.data.r2dbc: DEBUG + +springdoc: + swagger-ui: + path: /swagger-ui.html + operationsSorter: method + tagsSorter: alpha + api-docs: + path: /v3/api-docs + packages-to-scan: com.test.payment.controller + +mpesa: + base-url: https://sandbox.safaricom.co.ke + consumer-key: k6e7LtBNeVX7V8MPqB7P83FsZio8cRZD + consumer-secret: cGwiWzhDGopC3dho + business-short-code: 174379 + pass-key: bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919 \ No newline at end of file diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql new file mode 100644 index 0000000..9930216 --- /dev/null +++ b/src/main/resources/schema.sql @@ -0,0 +1,8 @@ +CREATE TABLE IF NOT EXISTS transactions ( + id SERIAL PRIMARY KEY, + mpesa_reference VARCHAR(255), + checkout_request_id VARCHAR(255), + status VARCHAR(50), + amount DECIMAL(10,2), + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +);