From 502a543eabf9ccee2e9d4c51026b594de0e20b91 Mon Sep 17 00:00:00 2001 From: Silviana Ghita <> Date: Thu, 25 Jan 2024 22:08:59 +0200 Subject: [PATCH] Added get card validation endpoint --- .../java/com/mangopay/core/APIs/ApiBase.java | 1 + .../java/com/mangopay/core/APIs/CardApi.java | 8 ++++ .../core/APIs/implementation/CardApiImpl.java | 10 +++-- .../com/mangopay/entities/CardValidation.java | 44 +++++++++++++++++++ .../com/mangopay/core/mangopay.properties | 2 +- src/test/java/com/mangopay/core/BaseTest.java | 26 ++++++++++- .../com/mangopay/core/CardApiImplTest.java | 11 ++++- 7 files changed, 95 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/mangopay/core/APIs/ApiBase.java b/src/main/java/com/mangopay/core/APIs/ApiBase.java index 5d9183e7..6bf51440 100644 --- a/src/main/java/com/mangopay/core/APIs/ApiBase.java +++ b/src/main/java/com/mangopay/core/APIs/ApiBase.java @@ -69,6 +69,7 @@ protected MangoPayApi getRoot() { put("cards_get_transactions", new String[]{"/cards/%s/transactions", RequestType.GET.toString()}); put("card_get_preauthorization", new String[]{"/cards/%s/preauthorizations", RequestType.GET.toString()}); put("card_validate", new String[]{"/cards/%s/validation", RequestType.POST.toString()}); + put("get_card_validation", new String[]{"/cards/%s/validation/%s", RequestType.GET.toString()}); // pay ins URLs put("payins_paypal-web_create", new String[]{"/payins/paypal/web/", RequestType.POST.toString()}); diff --git a/src/main/java/com/mangopay/core/APIs/CardApi.java b/src/main/java/com/mangopay/core/APIs/CardApi.java index 04cf9bbe..48abad84 100644 --- a/src/main/java/com/mangopay/core/APIs/CardApi.java +++ b/src/main/java/com/mangopay/core/APIs/CardApi.java @@ -84,4 +84,12 @@ public interface CardApi { * @throws Exception */ CardValidation validate(String cardId, CardValidation cardValidation) throws Exception; + + /** + * Get card validation + * @param cardId, cardValidationId + * @return CardValidation + * @throws Exception + */ + CardValidation get_card_validation(String cardId, String cardValidationId) throws Exception; } diff --git a/src/main/java/com/mangopay/core/APIs/implementation/CardApiImpl.java b/src/main/java/com/mangopay/core/APIs/implementation/CardApiImpl.java index a4c8878d..d1ca9a5f 100644 --- a/src/main/java/com/mangopay/core/APIs/implementation/CardApiImpl.java +++ b/src/main/java/com/mangopay/core/APIs/implementation/CardApiImpl.java @@ -58,15 +58,19 @@ public List getTransactions(String cardId) throws Exception { public List getTransactions(String cardId, Pagination pagination, Sorting sorting) throws Exception { return this.getList(Transaction[].class, Transaction.class, "cards_get_transactions", pagination, cardId, sorting); } - + @Override public List getCardPreAuthorizations(String cardId) throws Exception { - return this.getList(CardPreAuthorization[].class, CardPreAuthorization.class, "card_get_preauthorization",null,cardId); + return this.getList(CardPreAuthorization[].class, CardPreAuthorization.class, "card_get_preauthorization", null, cardId); } @Override public CardValidation validate(String cardId, CardValidation cardValidation) throws Exception { - return this.createObject(CardValidation.class, null ,"card_validate", cardValidation, cardId); + return this.createObject(CardValidation.class, null, "card_validate", cardValidation, cardId); + } + + public CardValidation get_card_validation(String cardId, String cardValidationId) throws Exception { + return this.getObject(CardValidation.class, "get_card_validation", cardId, cardValidationId); } diff --git a/src/main/java/com/mangopay/entities/CardValidation.java b/src/main/java/com/mangopay/entities/CardValidation.java index 46ac4fde..e6a0e12c 100644 --- a/src/main/java/com/mangopay/entities/CardValidation.java +++ b/src/main/java/com/mangopay/entities/CardValidation.java @@ -77,6 +77,26 @@ public class CardValidation extends EntityBase { @SerializedName("ResultMessage") private String resultMessage; + /** + * Allowed values: VISA, MASTERCARD, CB, MAESTRO + * + * The card network to use, as chosen by the cardholder, in case of co-branded card products. + */ + @SerializedName("PreferredCardNetwork") + private String preferredCardNetwork; + + /** + * The date and time at which successful authorization occurred. If authorization failed, the value is null. + */ + @SerializedName("AuthorizationDate") + private long authorizationDate; + + /** + * Information of the card + */ + @SerializedName("CardInfo") + private CardInfo cardInfo; + public String getAuthorId() { return authorId; } @@ -109,6 +129,30 @@ public void setResultMessage(String resultMessage) { this.resultMessage = resultMessage; } + public String getPreferredCardNetwork() { + return preferredCardNetwork; + } + + public void setPreferredCardNetwork(String preferredCardNetwork) { + this.preferredCardNetwork = preferredCardNetwork; + } + + public long getAuthorizationDate() { + return authorizationDate; + } + + public void setAuthorizationDate(long authorizationDate) { + this.authorizationDate = authorizationDate; + } + + public CardInfo getCardInfo() { + return cardInfo; + } + + public void setCardInfo(CardInfo cardInfo) { + this.cardInfo = cardInfo; + } + public BrowserInfo getBrowserInfo() { return browserInfo; } diff --git a/src/main/resources/com/mangopay/core/mangopay.properties b/src/main/resources/com/mangopay/core/mangopay.properties index 522351f6..537f3a30 100644 --- a/src/main/resources/com/mangopay/core/mangopay.properties +++ b/src/main/resources/com/mangopay/core/mangopay.properties @@ -1,2 +1,2 @@ -#Tue Dec 05 17:19:57 EET 2023 +#Thu Jan 25 22:05:17 EET 2024 version=2.34.0 diff --git a/src/test/java/com/mangopay/core/BaseTest.java b/src/test/java/com/mangopay/core/BaseTest.java index 82ff5af8..27a3d8f7 100644 --- a/src/test/java/com/mangopay/core/BaseTest.java +++ b/src/test/java/com/mangopay/core/BaseTest.java @@ -1179,7 +1179,7 @@ protected CardPreAuthorization getPreAuthorization() throws Exception { return cardPreAuthorization; } - protected CardValidation getJohnsCardValidation() throws Exception { + protected CardValidation createJohnsCardValidation() throws Exception { UserNatural user = this.getJohn(); CardRegistration cardRegistration = new CardRegistration(); @@ -1202,6 +1202,30 @@ protected CardValidation getJohnsCardValidation() throws Exception { return this.api.getCardApi().validate(cardRegistration.getCardId(), cardValidation); } + protected CardValidation getJohnsCardValidation() throws Exception { + + UserNatural user = this.getJohn(); + CardRegistration cardRegistration = new CardRegistration(); + cardRegistration.setUserId(user.getId()); + cardRegistration.setCurrency(CurrencyIso.EUR); + CardRegistration newCardRegistration = this.api.getCardRegistrationApi().create(cardRegistration); + + String registrationData = this.getPaylineCorrectRegistartionData(newCardRegistration); + newCardRegistration.setRegistrationData(registrationData); + cardRegistration = this.api.getCardRegistrationApi().update(newCardRegistration); + + CardValidation cardValidation = new CardValidation(); + + cardValidation.setAuthorId(user.getId()); + cardValidation.setSecureModeReturnUrl("http://test.com"); + + cardValidation.setBrowserInfo(getNewBrowserInfo()); + cardValidation.setIpAddress("2001:0620:0000:0000:0211:24FF:FE80:C12C"); + + CardValidation cardValidationResponse = this.api.getCardApi().validate(cardRegistration.getCardId(), cardValidation); + return this.api.getCardApi().get_card_validation(cardRegistration.getCardId(), cardValidationResponse.getId()); + } + protected KycDocument getJohnsKycDocument() throws Exception { if (BaseTest.JOHNS_KYC_DOCUMENT == null) { String johnsId = this.getJohn().getId(); diff --git a/src/test/java/com/mangopay/core/CardApiImplTest.java b/src/test/java/com/mangopay/core/CardApiImplTest.java index ce847502..e32dd9ec 100644 --- a/src/test/java/com/mangopay/core/CardApiImplTest.java +++ b/src/test/java/com/mangopay/core/CardApiImplTest.java @@ -52,9 +52,16 @@ public void getCardPreAuthorizations() throws Exception { @Test public void validateCard() throws Exception{ - CardApi cardApi = api.getCardApi(); - //create card validation + CardValidation cardValidation = createJohnsCardValidation(); + + assertNotNull(cardValidation); + assertNotNull(cardValidation.getId()); + assertEquals(TransactionType.CARD_VALIDATION, cardValidation.getType()); + } + + @Test + public void getCardValidation() throws Exception{ CardValidation cardValidation = getJohnsCardValidation(); assertNotNull(cardValidation);