diff --git a/adyenocc/extensioninfo.xml b/adyenocc/extensioninfo.xml
index 0d320b66..d3fb52ea 100644
--- a/adyenocc/extensioninfo.xml
+++ b/adyenocc/extensioninfo.xml
@@ -11,7 +11,8 @@
-
+
+
diff --git a/adyenocc/src/com/adyen/commerce/constants/AdyenoccConstants.java b/adyenocc/src/com/adyen/commerce/constants/AdyenoccConstants.java
index 397c41f7..324445b5 100644
--- a/adyenocc/src/com/adyen/commerce/constants/AdyenoccConstants.java
+++ b/adyenocc/src/com/adyen/commerce/constants/AdyenoccConstants.java
@@ -6,6 +6,8 @@
public class AdyenoccConstants extends GeneratedAdyenoccConstants
{
public static final String EXTENSIONNAME = "adyenocc";
+ public static final String ADYEN_USER_CART_PREFIX = "/{baseSiteId}/users/{userId}/carts/{cartId}/adyen";
+ public static final String ADYEN_USER_PREFIX = "/{baseSiteId}/users/{userId}/adyen";
private AdyenoccConstants()
{
diff --git a/adyenocc/src/com/adyen/commerce/controllers/AdyenoccController.java b/adyenocc/src/com/adyen/commerce/controllers/AdyenoccController.java
deleted file mode 100644
index 5479ff64..00000000
--- a/adyenocc/src/com/adyen/commerce/controllers/AdyenoccController.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved.
- */
-package com.adyen.commerce.controllers;
-
-import de.hybris.platform.webservicescommons.swagger.ApiBaseSiteIdParam;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-@RequestMapping(value = "/{baseSiteId}/test")
-public class AdyenoccController
-{
- @GetMapping
- @ApiBaseSiteIdParam
- public String getNewResource()
- {
- return "newSampleResource";
- }
-}
diff --git a/adyenocc/src/com/adyen/commerce/controllers/PaymentMethodsController.java b/adyenocc/src/com/adyen/commerce/controllers/PaymentMethodsController.java
new file mode 100644
index 00000000..b44d974a
--- /dev/null
+++ b/adyenocc/src/com/adyen/commerce/controllers/PaymentMethodsController.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved.
+ */
+package com.adyen.commerce.controllers;
+
+import com.adyen.commerce.constants.AdyenoccConstants;
+import com.adyen.service.exception.ApiException;
+import com.adyen.v6.dto.CheckoutConfigDTO;
+import com.adyen.v6.facades.AdyenCheckoutFacade;
+import de.hybris.platform.commerceservices.request.mapping.annotation.ApiVersion;
+import de.hybris.platform.webservicescommons.swagger.ApiBaseSiteIdUserIdAndCartIdParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@Controller
+@RequestMapping(value = AdyenoccConstants.ADYEN_USER_CART_PREFIX)
+@ApiVersion("v2")
+@Tag(name = "Adyen")
+public class PaymentMethodsController
+{
+ @Autowired
+ private AdyenCheckoutFacade adyenCheckoutFacade;
+
+ @GetMapping(value = "/checkout-configuration")
+ @Operation(operationId = "getCheckoutConfiguration", summary = "Get checkout configuration", description =
+ "Returns configuration for Adyen dropin component")
+ @ApiBaseSiteIdUserIdAndCartIdParam
+ public ResponseEntity getCheckoutConfiguration() throws ApiException {
+ return ResponseEntity.ok().body(adyenCheckoutFacade.getReactCheckoutConfig());
+ }
+}
diff --git a/adyenocc/src/com/adyen/commerce/exception/AdyenOCCControllerException.java b/adyenocc/src/com/adyen/commerce/exception/AdyenOCCControllerException.java
new file mode 100644
index 00000000..bbd7e63a
--- /dev/null
+++ b/adyenocc/src/com/adyen/commerce/exception/AdyenOCCControllerException.java
@@ -0,0 +1,4 @@
+package com.adyen.commerce.exception;
+
+public class AdyenOCCControllerException extends RuntimeException {
+}
diff --git a/adyenocc/src/com/adyen/commerce/exceptionhandler/AdyenOCCControllerExceptionHandler.java b/adyenocc/src/com/adyen/commerce/exceptionhandler/AdyenOCCControllerExceptionHandler.java
new file mode 100644
index 00000000..1a16f6da
--- /dev/null
+++ b/adyenocc/src/com/adyen/commerce/exceptionhandler/AdyenOCCControllerExceptionHandler.java
@@ -0,0 +1,15 @@
+package com.adyen.commerce.exceptionhandler;
+
+import com.adyen.commerce.exception.AdyenOCCControllerException;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+
+@ControllerAdvice
+public class AdyenOCCControllerExceptionHandler {
+
+ @ExceptionHandler(value = AdyenOCCControllerException.class)
+ public ResponseEntity handleAdyenControllerException(AdyenOCCControllerException exception) {
+ return ResponseEntity.badRequest().build();
+ }
+}
\ No newline at end of file
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 14e1f7dd..8025ed05 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
@@ -26,7 +26,7 @@
//Set the allowed cards
const allowedCards = [];
- allowedCards.push("${allowedCard.code}");
+ allowedCards.push("${allowedCard}");
const initConfig = {
diff --git a/adyenv6core/src/com/adyen/v6/dto/CheckoutConfigDTO.java b/adyenv6core/src/com/adyen/v6/dto/CheckoutConfigDTO.java
index 6c7b0620..852d013b 100644
--- a/adyenv6core/src/com/adyen/v6/dto/CheckoutConfigDTO.java
+++ b/adyenv6core/src/com/adyen/v6/dto/CheckoutConfigDTO.java
@@ -20,7 +20,7 @@ public class CheckoutConfigDTO {
@Deprecated
private String creditCardLabel;
@Deprecated
- private List allowedCards;
+ private List allowedCards;
private Amount amount;
private String adyenClientKey;
private String adyenPaypalMerchantId;
@@ -82,11 +82,11 @@ public void setCreditCardLabel(String creditCardLabel) {
this.creditCardLabel = creditCardLabel;
}
- public List getAllowedCards() {
+ public List getAllowedCards() {
return allowedCards;
}
- public void setAllowedCards(List allowedCards) {
+ public void setAllowedCards(List allowedCards) {
this.allowedCards = allowedCards;
}
diff --git a/adyenv6core/src/com/adyen/v6/dto/CheckoutConfigDTOBuilder.java b/adyenv6core/src/com/adyen/v6/dto/CheckoutConfigDTOBuilder.java
index 35211bdc..a6fe1710 100644
--- a/adyenv6core/src/com/adyen/v6/dto/CheckoutConfigDTOBuilder.java
+++ b/adyenv6core/src/com/adyen/v6/dto/CheckoutConfigDTOBuilder.java
@@ -14,7 +14,7 @@ public class CheckoutConfigDTOBuilder {
private final CheckoutConfigDTO checkoutConfigDTO;
- public CheckoutConfigDTOBuilder(){
+ public CheckoutConfigDTOBuilder() {
checkoutConfigDTO = new CheckoutConfigDTO();
}
@@ -49,7 +49,8 @@ public CheckoutConfigDTOBuilder setCreditCardLabel(String creditCardLabel) {
}
public CheckoutConfigDTOBuilder setAllowedCards(List allowedCards) {
- checkoutConfigDTO.setAllowedCards(allowedCards);
+ List mappedAllowedCards = allowedCards.stream().map(AdyenCardTypeEnum::toString).toList();
+ checkoutConfigDTO.setAllowedCards(mappedAllowedCards);
return this;
}