From 82db5c0743505488b671243b6abae136b68cdce4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ertu=C4=9Frul=20Berat=20ALLAHVERD=C4=B0?= Date: Wed, 20 May 2026 11:27:46 +0300 Subject: [PATCH 1/2] Added Retrieve Card from IVR --- .../java/io/craftgate/adapter/PaymentAdapter.java | 6 ++++++ .../craftgate/request/RetrieveIVRCardRequest.java | 12 ++++++++++++ .../response/IVRCardTokenizationResponse.java | 13 +++++++++++++ .../java/io/craftgate/sample/PaymentSample.java | 12 ++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 src/main/java/io/craftgate/request/RetrieveIVRCardRequest.java create mode 100644 src/main/java/io/craftgate/response/IVRCardTokenizationResponse.java diff --git a/src/main/java/io/craftgate/adapter/PaymentAdapter.java b/src/main/java/io/craftgate/adapter/PaymentAdapter.java index ca85fe1..b0b0403 100644 --- a/src/main/java/io/craftgate/adapter/PaymentAdapter.java +++ b/src/main/java/io/craftgate/adapter/PaymentAdapter.java @@ -297,6 +297,12 @@ public StoredCardListResponse retrieveProviderCards(RetrieveProviderCardRequest return HttpClient.get(requestOptions.getBaseUrl() + path, createHeaders(path, requestOptions), StoredCardListResponse.class); } + public IVRCardTokenizationResponse retrieveCardFromIvr(RetrieveIVRCardRequest retrieveIVRCardRequest) { + String query = RequestQueryParamsBuilder.buildQueryParam(retrieveIVRCardRequest); + String path = "/payment/v1/ivr-cards" + query; + return HttpClient.get(requestOptions.getBaseUrl() + path, createHeaders(path, requestOptions), IVRCardTokenizationResponse.class); + } + public CreateDepositToCardPaymentResponse depositToCard(CreateDepositToCardRequest createDepositToCardRequest) { String path = "/payment/v1/card-payments/deposit-to-card"; return HttpClient.post(requestOptions.getBaseUrl() + path, createHeaders(createDepositToCardRequest, path, requestOptions), diff --git a/src/main/java/io/craftgate/request/RetrieveIVRCardRequest.java b/src/main/java/io/craftgate/request/RetrieveIVRCardRequest.java new file mode 100644 index 0000000..f9150db --- /dev/null +++ b/src/main/java/io/craftgate/request/RetrieveIVRCardRequest.java @@ -0,0 +1,12 @@ +package io.craftgate.request; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class RetrieveIVRCardRequest { + + private String callToken; + private String cardUserKey; +} diff --git a/src/main/java/io/craftgate/response/IVRCardTokenizationResponse.java b/src/main/java/io/craftgate/response/IVRCardTokenizationResponse.java new file mode 100644 index 0000000..602fb9a --- /dev/null +++ b/src/main/java/io/craftgate/response/IVRCardTokenizationResponse.java @@ -0,0 +1,13 @@ +package io.craftgate.response; + +import lombok.Data; + +@Data +public class IVRCardTokenizationResponse { + + private String binNumber; + private String lastFourDigits; + private String cardUserKey; + private String cardToken; + private String secureFieldsToken; +} diff --git a/src/test/java/io/craftgate/sample/PaymentSample.java b/src/test/java/io/craftgate/sample/PaymentSample.java index 6182bc2..a99915b 100644 --- a/src/test/java/io/craftgate/sample/PaymentSample.java +++ b/src/test/java/io/craftgate/sample/PaymentSample.java @@ -2348,6 +2348,18 @@ void retrieve_provider_card() { assertNotNull(response); } + @Test + void retrieve_ivr_card() { + RetrieveIVRCardRequest retrieveIVRCardRequest = RetrieveIVRCardRequest.builder() + .cardUserKey("45f12c74-3000-465c-96dc-876850e7dd7a") + .callToken("0309ac2d-c5a5-4b4f-a91f-5c444ba07b24") + .build(); + + IVRCardTokenizationResponse response = craftgate.payment().retrieveCardFromIvr(retrieveIVRCardRequest); + + assertNotNull(response); + } + @Test void should_validate_3D_secure_callback_verified() { //given From a1ad1f7be138b88e0d6a8af7a678212f3ed727fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ertu=C4=9Frul=20Berat=20ALLAHVERD=C4=B0?= Date: Wed, 20 May 2026 11:30:34 +0300 Subject: [PATCH 2/2] update --- src/main/java/io/craftgate/adapter/PaymentAdapter.java | 4 ++-- ...eveIVRCardRequest.java => RetrieveCardFromIvrRequest.java} | 2 +- src/test/java/io/craftgate/sample/PaymentSample.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) rename src/main/java/io/craftgate/request/{RetrieveIVRCardRequest.java => RetrieveCardFromIvrRequest.java} (78%) diff --git a/src/main/java/io/craftgate/adapter/PaymentAdapter.java b/src/main/java/io/craftgate/adapter/PaymentAdapter.java index b0b0403..cf7eb40 100644 --- a/src/main/java/io/craftgate/adapter/PaymentAdapter.java +++ b/src/main/java/io/craftgate/adapter/PaymentAdapter.java @@ -297,8 +297,8 @@ public StoredCardListResponse retrieveProviderCards(RetrieveProviderCardRequest return HttpClient.get(requestOptions.getBaseUrl() + path, createHeaders(path, requestOptions), StoredCardListResponse.class); } - public IVRCardTokenizationResponse retrieveCardFromIvr(RetrieveIVRCardRequest retrieveIVRCardRequest) { - String query = RequestQueryParamsBuilder.buildQueryParam(retrieveIVRCardRequest); + public IVRCardTokenizationResponse retrieveCardFromIvr(RetrieveCardFromIvrRequest retrieveCardFromIvrRequest) { + String query = RequestQueryParamsBuilder.buildQueryParam(retrieveCardFromIvrRequest); String path = "/payment/v1/ivr-cards" + query; return HttpClient.get(requestOptions.getBaseUrl() + path, createHeaders(path, requestOptions), IVRCardTokenizationResponse.class); } diff --git a/src/main/java/io/craftgate/request/RetrieveIVRCardRequest.java b/src/main/java/io/craftgate/request/RetrieveCardFromIvrRequest.java similarity index 78% rename from src/main/java/io/craftgate/request/RetrieveIVRCardRequest.java rename to src/main/java/io/craftgate/request/RetrieveCardFromIvrRequest.java index f9150db..3c9f02f 100644 --- a/src/main/java/io/craftgate/request/RetrieveIVRCardRequest.java +++ b/src/main/java/io/craftgate/request/RetrieveCardFromIvrRequest.java @@ -5,7 +5,7 @@ @Data @Builder -public class RetrieveIVRCardRequest { +public class RetrieveCardFromIvrRequest { private String callToken; private String cardUserKey; diff --git a/src/test/java/io/craftgate/sample/PaymentSample.java b/src/test/java/io/craftgate/sample/PaymentSample.java index a99915b..c32a422 100644 --- a/src/test/java/io/craftgate/sample/PaymentSample.java +++ b/src/test/java/io/craftgate/sample/PaymentSample.java @@ -2350,12 +2350,12 @@ void retrieve_provider_card() { @Test void retrieve_ivr_card() { - RetrieveIVRCardRequest retrieveIVRCardRequest = RetrieveIVRCardRequest.builder() + RetrieveCardFromIvrRequest retrieveCardFromIvrRequest = RetrieveCardFromIvrRequest.builder() .cardUserKey("45f12c74-3000-465c-96dc-876850e7dd7a") .callToken("0309ac2d-c5a5-4b4f-a91f-5c444ba07b24") .build(); - IVRCardTokenizationResponse response = craftgate.payment().retrieveCardFromIvr(retrieveIVRCardRequest); + IVRCardTokenizationResponse response = craftgate.payment().retrieveCardFromIvr(retrieveCardFromIvrRequest); assertNotNull(response); }