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 496f79f4e..241b86a43 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
@@ -1196,6 +1196,15 @@ var AdyenCheckoutHybris = (function () {
}
console.log('Something went wrong while trying to compute current visible label');
return '';
+ },
+
+ addRiskData: function () {
+ try {
+ $('input[name="riskData"]').val(getData());
+ } catch (e) {
+ //in case of risk data collection script not enabled
+ }
+
}
};
})();
diff --git a/adyenv6core/resources/adyenv6core-beans.xml b/adyenv6core/resources/adyenv6core-beans.xml
index 4980968cf..f2648c15e 100644
--- a/adyenv6core/resources/adyenv6core-beans.xml
+++ b/adyenv6core/resources/adyenv6core-beans.xml
@@ -46,6 +46,8 @@
+
+
diff --git a/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenCheckoutFacade.java b/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenCheckoutFacade.java
index 456117953..c37a88d03 100644
--- a/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenCheckoutFacade.java
+++ b/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenCheckoutFacade.java
@@ -204,6 +204,7 @@ public class DefaultAdyenCheckoutFacade implements AdyenCheckoutFacade {
public static final String SESSION_SF_EXPIRY_YEAR = "encryptedExpiryYear";
public static final String SESSION_SF_SECURITY_CODE = "encryptedSecurityCode";
public static final String SESSION_CARD_BRAND = "cardBrand";
+ public static final String SESSION_ADYEN_RISK_DATA = "adyenRiskData";
public static final String MODEL_SELECTED_PAYMENT_METHOD = "selectedPaymentMethod";
public static final String MODEL_PAYMENT_METHODS = "paymentMethods";
public static final String MODEL_CREDIT_CARD_LABEL = "creditCardLabel";
@@ -515,6 +516,7 @@ private void updateCartWithSessionData(CartData cartData) {
cartData.setAdyenEncryptedExpiryYear(getSessionService().getAttribute(SESSION_SF_EXPIRY_YEAR));
cartData.setAdyenEncryptedSecurityCode(getSessionService().getAttribute(SESSION_SF_SECURITY_CODE));
cartData.setAdyenCardBrand(getSessionService().getAttribute(SESSION_CARD_BRAND));
+ cartData.setRiskData(getSessionService().getAttribute(SESSION_ADYEN_RISK_DATA));
getSessionService().removeAttribute(SESSION_CSE_TOKEN);
getSessionService().removeAttribute(SESSION_SF_CARD_NUMBER);
@@ -523,6 +525,7 @@ private void updateCartWithSessionData(CartData cartData) {
getSessionService().removeAttribute(SESSION_SF_SECURITY_CODE);
getSessionService().removeAttribute(SESSION_CARD_BRAND);
getSessionService().removeAttribute(PAYMENT_METHOD);
+ getSessionService().removeAttribute(SESSION_ADYEN_RISK_DATA);
}
@Override
@@ -1358,6 +1361,9 @@ public void handlePaymentForm(AdyenPaymentForm adyenPaymentForm, Errors errors)
if (!StringUtils.isEmpty(adyenPaymentForm.getCardBrand())) {
getSessionService().setAttribute(SESSION_CARD_BRAND, adyenPaymentForm.getCardBrand());
}
+ if (!StringUtils.isEmpty(adyenPaymentForm.getRiskData())) {
+ getSessionService().setAttribute(SESSION_ADYEN_RISK_DATA, adyenPaymentForm.getRiskData());
+ }
//Update CartModel
cartModel.setAdyenDfValue(adyenPaymentForm.getDfValue());
diff --git a/adyenv6core/src/com/adyen/v6/factory/AdyenRequestFactory.java b/adyenv6core/src/com/adyen/v6/factory/AdyenRequestFactory.java
index f755fd535..d8b1ae29a 100644
--- a/adyenv6core/src/com/adyen/v6/factory/AdyenRequestFactory.java
+++ b/adyenv6core/src/com/adyen/v6/factory/AdyenRequestFactory.java
@@ -21,19 +21,7 @@
package com.adyen.v6.factory;
import com.adyen.builders.terminal.TerminalAPIRequestBuilder;
-import com.adyen.model.checkout.Amount;
-import com.adyen.model.checkout.ApplicationInfo;
-import com.adyen.model.checkout.BillingAddress;
-import com.adyen.model.checkout.BrowserInfo;
-import com.adyen.model.checkout.CardDetails;
-import com.adyen.model.checkout.CheckoutPaymentMethod;
-import com.adyen.model.checkout.CommonField;
-import com.adyen.model.checkout.DeliveryAddress;
-import com.adyen.model.checkout.ExternalPlatform;
-import com.adyen.model.checkout.Installments;
-import com.adyen.model.checkout.LineItem;
-import com.adyen.model.checkout.Name;
-import com.adyen.model.checkout.PaymentRequest;
+import com.adyen.model.checkout.*;
import com.adyen.model.nexo.AmountsReq;
import com.adyen.model.nexo.DocumentQualifierType;
import com.adyen.model.nexo.MessageCategoryType;
@@ -62,6 +50,7 @@
import de.hybris.platform.core.model.user.CustomerModel;
import de.hybris.platform.servicelayer.config.ConfigurationService;
import de.hybris.platform.util.TaxValue;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
@@ -71,12 +60,7 @@
import javax.xml.datatype.XMLGregorianCalendar;
import java.time.OffsetDateTime;
import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
import java.util.stream.Collectors;
import static com.adyen.v6.constants.Adyenv6coreConstants.AFTERPAY;
@@ -127,6 +111,7 @@ public PaymentRequest createPaymentsRequest(final String merchantAccount,
setCommonInfoOnPaymentRequest(merchantAccount, cartData, requestInfo, customerModel, paymentsRequest);
paymentsRequest.setApplicationInfo(createApplicationInfo());
+ setRiskData(paymentsRequest, cartData, originPaymentsRequest);
paymentsRequest.setReturnUrl(cartData.getAdyenReturnUrl());
paymentsRequest.setRedirectFromIssuerMethod(RequestMethod.POST.toString());
@@ -189,6 +174,21 @@ else if (cartData.getAdyenPaymentMethod().indexOf(PAYMENT_METHOD_BOLETO) == 0) {
return paymentsRequest;
}
+ private void setRiskData(PaymentRequest paymentsRequest, CartData cartData, PaymentRequest originPaymentsRequest) {
+ // drop-in
+ if (originPaymentsRequest != null && originPaymentsRequest.getRiskData() != null) {
+ paymentsRequest.setRiskData(originPaymentsRequest.getRiskData());
+ return;
+ }
+
+ // components
+ if (StringUtils.isNotEmpty(cartData.getRiskData())) {
+ RiskData riskData = new RiskData();
+ riskData.setClientData(cartData.getRiskData());
+ paymentsRequest.setRiskData(riskData);
+ }
+ }
+
protected CardDetails getCardDetails(CartData cartData, String selectedReference) {
final CardDetails paymentMethodDetails = new CardDetails();
paymentMethodDetails.encryptedSecurityCode(cartData.getAdyenEncryptedSecurityCode());
diff --git a/adyenv6core/src/com/adyen/v6/forms/AdyenPaymentForm.java b/adyenv6core/src/com/adyen/v6/forms/AdyenPaymentForm.java
index 730bb6ee3..150c56f49 100644
--- a/adyenv6core/src/com/adyen/v6/forms/AdyenPaymentForm.java
+++ b/adyenv6core/src/com/adyen/v6/forms/AdyenPaymentForm.java
@@ -57,6 +57,8 @@ public class AdyenPaymentForm {
private String selectedReference;
private int installments;
+ private String riskData;
+
//Save card
private boolean rememberTheseDetails;
@@ -358,6 +360,14 @@ public void setGiftCardBrand(String giftCardBrand) {
this.giftCardBrand = giftCardBrand;
}
+ public String getRiskData() {
+ return riskData;
+ }
+
+ public void setRiskData(String riskData) {
+ this.riskData = riskData;
+ }
+
public void resetFormExceptBillingAddress() {
this.paymentMethod = null;
this.cseToken = null;
@@ -387,6 +397,7 @@ public void resetFormExceptBillingAddress() {
this.telephoneNumber = null;
this.gender = null;
this.giftCardBrand = null;
+ this.riskData = null;
}
@Override