diff --git a/src/main/java/com/adyen/model/checkout/DefaultPaymentMethodDetails.java b/src/main/java/com/adyen/model/checkout/DefaultPaymentMethodDetails.java index 1a65a17db..6404e83c4 100755 --- a/src/main/java/com/adyen/model/checkout/DefaultPaymentMethodDetails.java +++ b/src/main/java/com/adyen/model/checkout/DefaultPaymentMethodDetails.java @@ -50,8 +50,14 @@ public class DefaultPaymentMethodDetails implements PaymentMethodDetails { private String encryptedExpiryYear; @SerializedName("encryptedSecurityCode") private String encryptedSecurityCode; + /** + * @deprecated This field is deprecated. Use {@link DefaultPaymentMethodDetails#storedPaymentMethodId } instead. + */ + @Deprecated @SerializedName("recurringDetailReference") private String recurringDetailReference; + @SerializedName("storedPaymentMethodId") + private String storedPaymentMethodId; @SerializedName("storeDetails") private Boolean storeDetails; /** @@ -231,19 +237,44 @@ public DefaultPaymentMethodDetails encryptedSecurityCode(String encryptedSecurit return this; } + /** + * @deprecated This field is deprecated. Use {@link DefaultPaymentMethodDetails#storedPaymentMethodId } instead. + */ + @Deprecated public String getRecurringDetailReference() { return recurringDetailReference; } + /** + * @deprecated This field is deprecated. Use {@link DefaultPaymentMethodDetails#storedPaymentMethodId } instead. + */ + @Deprecated public void setRecurringDetailReference(String recurringDetailReference) { this.recurringDetailReference = recurringDetailReference; } + /** + * @deprecated This field is deprecated. Use {@link DefaultPaymentMethodDetails#storedPaymentMethodId } instead. + */ + @Deprecated public DefaultPaymentMethodDetails recurringDetailReference(String recurringDetailReference) { this.recurringDetailReference = recurringDetailReference; return this; } + public String getStoredPaymentMethodId() { + return storedPaymentMethodId; + } + + public void setStoredPaymentMethodId(String storedPaymentMethodId) { + this.storedPaymentMethodId = storedPaymentMethodId; + } + + public DefaultPaymentMethodDetails storedPaymentMethodId(String storedPaymentMethodId) { + this.storedPaymentMethodId = storedPaymentMethodId; + return this; + } + public Boolean getStoreDetails() { return storeDetails; } @@ -357,6 +388,7 @@ public boolean equals(Object o) { && Objects.equals(encryptedExpiryYear, that.encryptedExpiryYear) && Objects.equals(encryptedSecurityCode, that.encryptedSecurityCode) && Objects.equals(recurringDetailReference, that.recurringDetailReference) + && Objects.equals(storedPaymentMethodId, that.storedPaymentMethodId) && Objects.equals(storeDetails, that.storeDetails) && Objects.equals(idealIssuer, that.idealIssuer) && Objects.equals(issuer, that.issuer) @@ -371,8 +403,8 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash(type, number, expiryMonth, expiryYear, holderName, cvc, installmentConfigurationKey, personalDetails, encryptedCardNumber, encryptedExpiryMonth, encryptedExpiryYear, encryptedSecurityCode, - recurringDetailReference, storeDetails, idealIssuer, issuer, sepaOwnerName, sepaIbanNumber, - applepayToken, googlepayToken, separateDeliveryAddress); + recurringDetailReference, storedPaymentMethodId, storeDetails, idealIssuer, issuer, sepaOwnerName, + sepaIbanNumber, applepayToken, googlepayToken, separateDeliveryAddress); } @Override @@ -391,6 +423,7 @@ public String toString() { ", encryptedExpiryYear='" + encryptedExpiryYear + '\'' + ", encryptedSecurityCode='" + encryptedSecurityCode + '\'' + ", recurringDetailReference='" + recurringDetailReference + '\'' + + ", storedPaymentMethodId='" + storedPaymentMethodId + '\'' + ", storeDetails=" + storeDetails + ", idealIssuer='" + idealIssuer + '\'' + ", issuer='" + issuer + '\'' + diff --git a/src/test/java/com/adyen/CheckoutTest.java b/src/test/java/com/adyen/CheckoutTest.java index fed1204d1..e7d126265 100644 --- a/src/test/java/com/adyen/CheckoutTest.java +++ b/src/test/java/com/adyen/CheckoutTest.java @@ -348,6 +348,36 @@ public void TestSepaPaymentMethodDetails() { + "}",jsonRequest ); } + @Test + public void TestRecurringPaymentMethodDetails() { + DefaultPaymentMethodDetails defaultPaymentMethodDetails = new DefaultPaymentMethodDetails(); + defaultPaymentMethodDetails.setStoredPaymentMethodId("testStoredPaymentMethodId"); + + PaymentsRequest paymentsRequest = createPaymentsCheckoutRequest(); + paymentsRequest.setPaymentMethod(defaultPaymentMethodDetails); + + String jsonRequest = PRETTY_PRINT_GSON.toJson(paymentsRequest); + + assertEquals("{\n" + + " \"amount\": {\n" + + " \"value\": 1000,\n" + + " \"currency\": \"USD\"\n" + + " },\n" + + " \"merchantAccount\": \"MagentoMerchantTest\",\n" + + " \"paymentMethod\": {\n" + + " \"storedPaymentMethodId\": \"testStoredPaymentMethodId\"\n" + + " },\n" + + " \"reference\": \"Your order number\",\n" + + " \"returnUrl\": \"https://your-company.com/...\",\n" + + " \"applicationInfo\": {\n" + + " \"adyenLibrary\": {\n" + + " \"name\": \"" + LIB_NAME + "\",\n" + + " \"version\": \"" + LIB_VERSION + "\"\n" + + " }\n" + + " }\n" + + "}",jsonRequest ); + } + @Test public void TestDateSerializers() throws ParseException { PaymentsRequest paymentsRequest = new PaymentsRequest();