diff --git a/README.md b/README.md
index ea24040fe..e96f48203 100644
--- a/README.md
+++ b/README.md
@@ -74,6 +74,10 @@ Credit Card payments are supported using Checkout Components.
Ratepay is supported via Adyen API.
+### AfterPay
+
+[AfterPay](https://docs.adyen.com/payment-methods/afterpay) is supported via Adyen component and API.
+
### Boleto
[Boleto](https://docs.adyen.com/payment-methods/boleto-bancario) is supported via Adyen API.
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/alternativeMethod.tag b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/alternativeMethod.tag
index ce1bbb62b..ed22227af 100644
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/alternativeMethod.tag
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/alternativeMethod.tag
@@ -37,7 +37,7 @@
${name}
-
+
@@ -129,6 +129,10 @@
name="lastName"
value="${cartData.deliveryAddress.lastName}">
+
+
+
+
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/storedCardMethod.tag b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/storedCardMethod.tag
index ec430237b..27512d57b 100644
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/storedCardMethod.tag
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/storedCardMethod.tag
@@ -29,7 +29,7 @@
**** **** **** ${cardNumber}
-
+
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/selectPaymentMethodPage.jsp b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/selectPaymentMethodPage.jsp
index 9b90a4878..220784dff 100644
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/selectPaymentMethodPage.jsp
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/selectPaymentMethodPage.jsp
@@ -71,6 +71,12 @@
AdyenCheckoutHybris.initiateEps( ${issuerLists['eps']} );
+
+
+ AdyenCheckoutHybris.initiateAfterPay("${countryCode}");
+
+
+
var storedCardJS =
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen.checkout.js b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen.checkout.js
index 4d72c9d95..fee398040 100644
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen.checkout.js
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen.checkout.js
@@ -28,6 +28,7 @@ var AdyenCheckoutHybris = (function () {
oneClickCards: {},
selectedCardBrand: null,
sepaDirectDebit:null,
+ afterPay: null,
convertCardBrand: function () {
var cardBrand = this.selectedCardBrand;
@@ -120,6 +121,18 @@ var AdyenCheckoutHybris = (function () {
}
}
+ if (paymentMethod === "afterpay_default") {
+ if (!this.afterPay.state.isValid) {
+ window.alert("Please fill all the details");
+ this.afterPay.showValidation();
+ return false;
+ }
+ var dob = $("input[name=dateOfBirth]").val();
+ if ( dob ) {
+ $( "#dob" ).val( dob );
+ }
+ }
+
return true;
},
@@ -157,9 +170,9 @@ var AdyenCheckoutHybris = (function () {
*/
setCustomPaymentMethodValues: function () {
var paymentMethod = $( 'input[type=radio][name=paymentMethod]:checked' ).val();
- var dob = $( '#p_method_adyen_hpp_' + paymentMethod + '_dob' );
+ var dob = $( '#p_method_adyen_hpp_' + paymentMethod + '_dob' ).val();
if ( dob ) {
- $( "#dob" ).val( dob.val() );
+ $( "#dob" ).val( dob );
}
var ssn = $( '#p_method_adyen_hpp_' + paymentMethod + '_ssn' );
@@ -427,6 +440,23 @@ var AdyenCheckoutHybris = (function () {
}
},
+ initiateAfterPay: function (countryCode) {
+ this.afterPay = this.checkout.create("afterpay_default", {
+ countryCode: countryCode,
+ visibility: { // Optional configuration
+ personalDetails: "editable",
+ billingAddress: "hidden",
+ deliveryAddress: "hidden"
+ }
+ });
+
+ try {
+ this.afterPay.mount('#afterpay-container');
+ } catch (e) {
+ console.log('Something went wrong trying to mount the afterpay component: ' + e);
+ }
+ },
+
configureButton: function (form, useSpinner, label) {
$(document).ready(function () {
$("#placeOrder-" + label).click(function () {
diff --git a/adyenv6b2ccheckoutaddon/resources/adyenv6b2ccheckoutaddon.build.number b/adyenv6b2ccheckoutaddon/resources/adyenv6b2ccheckoutaddon.build.number
index f53d86b31..855fe5552 100644
--- a/adyenv6b2ccheckoutaddon/resources/adyenv6b2ccheckoutaddon.build.number
+++ b/adyenv6b2ccheckoutaddon/resources/adyenv6b2ccheckoutaddon.build.number
@@ -7,5 +7,5 @@ module.name=platform-module
name=adyenv6b2ccheckoutaddon
releasedate=20170509 1903
vendor=adyen
-version=9.1.0
-version.api=9.1.0
+version=9.2.0
+version.api=9.2.0
diff --git a/adyenv6backoffice/resources/adyenv6backoffice.build.number b/adyenv6backoffice/resources/adyenv6backoffice.build.number
index 41fe95ecf..0d3649014 100644
--- a/adyenv6backoffice/resources/adyenv6backoffice.build.number
+++ b/adyenv6backoffice/resources/adyenv6backoffice.build.number
@@ -7,5 +7,5 @@ module.name=platform-module
name=adyenv6backoffice
releasedate=20170509 1903
vendor=adyen
-version=9.1.0
-version.api=9.1.0
+version=9.2.0
+version.api=9.2.0
diff --git a/adyenv6core/resources/adyenv6core-beans.xml b/adyenv6core/resources/adyenv6core-beans.xml
index d1e677ca3..8e942d482 100644
--- a/adyenv6core/resources/adyenv6core-beans.xml
+++ b/adyenv6core/resources/adyenv6core-beans.xml
@@ -40,6 +40,9 @@
+
+
+
diff --git a/adyenv6core/resources/adyenv6core-items.xml b/adyenv6core/resources/adyenv6core-items.xml
index ebb2c8c9d..113be70b6 100644
--- a/adyenv6core/resources/adyenv6core-items.xml
+++ b/adyenv6core/resources/adyenv6core-items.xml
@@ -345,6 +345,18 @@
Shopper's date of birth
+
+ Shopper's email address
+
+
+
+ Shopper's gender
+
+
+
+ Shopper's telephone number
+
+
Shopper's social security number (applicable for openinvoice methods)
diff --git a/adyenv6core/resources/adyenv6core.build.number b/adyenv6core/resources/adyenv6core.build.number
index b0eb618f3..f8975bb6f 100644
--- a/adyenv6core/resources/adyenv6core.build.number
+++ b/adyenv6core/resources/adyenv6core.build.number
@@ -6,5 +6,5 @@ group.id=com.adyen.v6
module.name=platform-module
name=adyenv6core
vendor=adyen
-version=9.1.0
-version.api=9.1.0
+version=9.2.0
+version.api=9.2.0
diff --git a/adyenv6core/src/com/adyen/v6/constants/Adyenv6coreConstants.java b/adyenv6core/src/com/adyen/v6/constants/Adyenv6coreConstants.java
index b4ca31cc5..05fb96d11 100644
--- a/adyenv6core/src/com/adyen/v6/constants/Adyenv6coreConstants.java
+++ b/adyenv6core/src/com/adyen/v6/constants/Adyenv6coreConstants.java
@@ -31,7 +31,7 @@ public final class Adyenv6coreConstants extends GeneratedAdyenv6coreConstants {
public static final String EXTENSIONNAME = "adyenv6core";
public static final String PLUGIN_NAME = "adyen-hybris";
- public static final String PLUGIN_VERSION = "9.1.0";
+ public static final String PLUGIN_VERSION = "9.2.0";
public static final String PAYMENT_PROVIDER = "Adyen";
public static final String PAYMENT_METHOD ="paymentMethod";
@@ -81,7 +81,7 @@ private Adyenv6coreConstants() {
add(KLARNA_SLICE);
add(AFFIRM);
add(CLEARPAY);
-// add(AFTERPAY); // not supported yet
+ add(AFTERPAY);
}});
diff --git a/adyenv6core/src/com/adyen/v6/facades/DefaultAdyenCheckoutFacade.java b/adyenv6core/src/com/adyen/v6/facades/DefaultAdyenCheckoutFacade.java
index 77da0b5b7..a0a94b8b3 100644
--- a/adyenv6core/src/com/adyen/v6/facades/DefaultAdyenCheckoutFacade.java
+++ b/adyenv6core/src/com/adyen/v6/facades/DefaultAdyenCheckoutFacade.java
@@ -940,6 +940,7 @@ public void initializeCheckoutData(Model model) {
model.addAttribute(MODEL_AMOUNT, amount);
model.addAttribute(MODEL_IMMEDIATE_CAPTURE, isImmediateCapture());
model.addAttribute(MODEL_PAYPAL_MERCHANT_ID, baseStore.getAdyenPaypalMerchantId());
+ model.addAttribute(MODEL_COUNTRY_CODE, cartData.getDeliveryAddress().getCountry().getIsocode());
modelService.save(cartModel);
}
@@ -1095,6 +1096,11 @@ public PaymentInfoModel createPaymentInfo(final CartModel cartModel, AdyenPaymen
paymentInfo.setAdyenSepaOwnerName(adyenPaymentForm.getSepaOwnerName());
paymentInfo.setAdyenSepaIbanNumber(adyenPaymentForm.getSepaIbanNumber());
+ // AfterPay fields
+ paymentInfo.setAdyenTelephone(adyenPaymentForm.getTelephoneNumber());
+ paymentInfo.setAdyenShopperEmail(adyenPaymentForm.getShopperEmail());
+ paymentInfo.setAdyenShopperGender(adyenPaymentForm.getGender());
+
// Boleto fields
paymentInfo.setAdyenFirstName(adyenPaymentForm.getFirstName());
paymentInfo.setAdyenLastName(adyenPaymentForm.getLastName());
diff --git a/adyenv6core/src/com/adyen/v6/factory/AdyenRequestFactory.java b/adyenv6core/src/com/adyen/v6/factory/AdyenRequestFactory.java
index 7083bf610..432680f67 100644
--- a/adyenv6core/src/com/adyen/v6/factory/AdyenRequestFactory.java
+++ b/adyenv6core/src/com/adyen/v6/factory/AdyenRequestFactory.java
@@ -84,6 +84,7 @@
import java.util.HashMap;
import java.util.List;
+import static com.adyen.v6.constants.Adyenv6coreConstants.AFTERPAY;
import static com.adyen.v6.constants.Adyenv6coreConstants.CARD_TYPE_DEBIT;
import static com.adyen.v6.constants.Adyenv6coreConstants.ISSUER_PAYMENT_METHODS;
import static com.adyen.v6.constants.Adyenv6coreConstants.KLARNA;
@@ -830,6 +831,12 @@ public void setOpenInvoiceData(PaymentsRequest paymentsRequest, CartData cartDat
paymentsRequest.setDeviceFingerprint(cartData.getAdyenDfValue());
}
+ if (AFTERPAY.equals(cartData.getAdyenPaymentMethod())) {
+ paymentsRequest.setShopperEmail(cartData.getAdyenShopperEmail());
+ paymentsRequest.setTelephoneNumber(cartData.getAdyenShopperTelephone());
+ paymentsRequest.setShopperName(getAfterPayShopperName(cartData));
+ }
+
// set the invoice lines
List invoiceLines = new ArrayList<>();
String currency = cartData.getTotalPrice().getCurrencyIso();
@@ -904,6 +911,14 @@ public void setOpenInvoiceData(PaymentsRequest paymentsRequest, CartData cartDat
paymentsRequest.setLineItems(invoiceLines);
}
+ private Name getAfterPayShopperName(CartData cartData) {
+ Name name = new Name();
+ name.setFirstName(cartData.getAdyenFirstName());
+ name.setLastName(cartData.getAdyenLastName());
+ name.gender(Name.GenderEnum.valueOf(cartData.getAdyenShopperGender()));
+ return name;
+ }
+
/**
* Set Boleto payment request data
*/
diff --git a/adyenv6core/src/com/adyen/v6/forms/AdyenPaymentForm.java b/adyenv6core/src/com/adyen/v6/forms/AdyenPaymentForm.java
index bbb50ab40..53f1dac40 100644
--- a/adyenv6core/src/com/adyen/v6/forms/AdyenPaymentForm.java
+++ b/adyenv6core/src/com/adyen/v6/forms/AdyenPaymentForm.java
@@ -80,6 +80,11 @@ public class AdyenPaymentForm {
//POS
private String terminalId;
+ // AfterPay fields
+ private String gender;
+ private String telephoneNumber;
+ private String shopperEmail;
+
//Billing address related fields
private boolean useAdyenDeliveryAddress;
private AddressForm billingAddress;
@@ -305,6 +310,30 @@ public boolean usesComponent() {
return PAYMENT_METHOD_PAYPAL.equals(paymentMethod);
}
+ public String getGender() {
+ return gender;
+ }
+
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+ public String getTelephoneNumber() {
+ return telephoneNumber;
+ }
+
+ public void setTelephoneNumber(String telephoneNumber) {
+ this.telephoneNumber = telephoneNumber;
+ }
+
+ public String getShopperEmail() {
+ return shopperEmail;
+ }
+
+ public void setShopperEmail(String shopperEmail) {
+ this.shopperEmail = shopperEmail;
+ }
+
public void resetFormExceptBillingAddress() {
this.paymentMethod = null;
this.cseToken = null;
@@ -330,6 +359,9 @@ public void resetFormExceptBillingAddress() {
this.sepaIbanNumber = null;
this.sepaOwnerName = null;
this.billingAddress = billingAddress;
+ this.shopperEmail = null;
+ this.telephoneNumber = null;
+ this.gender = null;
}
@Override
@@ -351,6 +383,9 @@ public String toString() {
sb.append(" rememberTheseDetails: ").append(Util.toIndentedString(rememberTheseDetails)).append("\n");
sb.append(" selectedReference: ").append(Util.toIndentedString(selectedReference)).append("\n");
sb.append(" dateOfBirth: ").append(Util.toIndentedString(dob)).append("\n");
+ sb.append(" shopperEmail: ").append(Util.toIndentedString(shopperEmail)).append("\n");
+ sb.append(" telephoneNumber: ").append(Util.toIndentedString(telephoneNumber)).append("\n");
+ sb.append(" gender: ").append(Util.toIndentedString(gender)).append("\n");
sb.append(" socialSecurityNumber: ").append(Util.toIndentedString(socialSecurityNumber)).append("\n");
sb.append(" firstName: ").append(Util.toIndentedString(firstName)).append("\n");
sb.append(" lastName: ").append(Util.toIndentedString(lastName)).append("\n");
diff --git a/adyenv6core/src/com/adyen/v6/populator/CartPopulator.java b/adyenv6core/src/com/adyen/v6/populator/CartPopulator.java
index 64cf6573d..fe0ea2a3f 100644
--- a/adyenv6core/src/com/adyen/v6/populator/CartPopulator.java
+++ b/adyenv6core/src/com/adyen/v6/populator/CartPopulator.java
@@ -59,6 +59,9 @@ public void populate(final CartModel source, final CartData target) throws Conve
target.setAdyenSepaIbanNumber(paymentInfo.getAdyenSepaIbanNumber());
target.setAdyenApplePayMerchantName(paymentInfo.getAdyenApplePayMerchantName());
target.setAdyenApplePayMerchantIdentifier(paymentInfo.getAdyenApplePayMerchantIdentifier());
+ target.setAdyenShopperGender(paymentInfo.getAdyenShopperGender());
+ target.setAdyenShopperEmail(paymentInfo.getAdyenShopperEmail());
+ target.setAdyenShopperTelephone(paymentInfo.getAdyenTelephone());
}
}
diff --git a/adyenv6fulfilmentprocess/resources/adyenv6fulfilmentprocess.build.number b/adyenv6fulfilmentprocess/resources/adyenv6fulfilmentprocess.build.number
index 6f9598ff3..277180e2d 100644
--- a/adyenv6fulfilmentprocess/resources/adyenv6fulfilmentprocess.build.number
+++ b/adyenv6fulfilmentprocess/resources/adyenv6fulfilmentprocess.build.number
@@ -6,5 +6,5 @@ group.id=com.adyen.v6
module.name=platform-module
name=adyenv6fulfilmentprocess
vendor=adyen
-version=9.1.0
-version.api=9.1.0
+version=9.2.0
+version.api=9.2.0
diff --git a/adyenv6notification/resources/adyenv6notification.build.number b/adyenv6notification/resources/adyenv6notification.build.number
index 34cb53729..3771dacd1 100644
--- a/adyenv6notification/resources/adyenv6notification.build.number
+++ b/adyenv6notification/resources/adyenv6notification.build.number
@@ -5,5 +5,5 @@ description=adyenv6notification
name=adyenv6notification
releasedate=20170803 1323
vendor=adyen
-version=9.1.0
-version.api=9.1.0
+version=9.2.0
+version.api=9.2.0
diff --git a/adyenv6ordermanagement/resources/adyenv6ordermanagement.build.number b/adyenv6ordermanagement/resources/adyenv6ordermanagement.build.number
index 4ebe3cb0a..cb6a12c90 100644
--- a/adyenv6ordermanagement/resources/adyenv6ordermanagement.build.number
+++ b/adyenv6ordermanagement/resources/adyenv6ordermanagement.build.number
@@ -7,5 +7,5 @@ module.name=platform-module
name=adyenv6ordermanagement
releasedate=20170509 1754
vendor=adyen
-version=9.1.0
-version.api=9.1.0
+version=9.2.0
+version.api=9.2.0