Skip to content

Commit

Permalink
Added get card validation endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
Silviana Ghita committed Jan 25, 2024
1 parent 7fd2928 commit 502a543
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 7 deletions.
1 change: 1 addition & 0 deletions src/main/java/com/mangopay/core/APIs/ApiBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -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()});
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/com/mangopay/core/APIs/CardApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,19 @@ public List<Transaction> getTransactions(String cardId) throws Exception {
public List<Transaction> 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<CardPreAuthorization> 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);
}


Expand Down
44 changes: 44 additions & 0 deletions src/main/java/com/mangopay/entities/CardValidation.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/com/mangopay/core/mangopay.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#Tue Dec 05 17:19:57 EET 2023
#Thu Jan 25 22:05:17 EET 2024
version=2.34.0
26 changes: 25 additions & 1 deletion src/test/java/com/mangopay/core/BaseTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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();
Expand Down
11 changes: 9 additions & 2 deletions src/test/java/com/mangopay/core/CardApiImplTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 502a543

Please sign in to comment.