diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 785112211..da9d965ad 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1 +1 @@
-* @rkewlani @AlexandrosMor @martinsrenato @Aleffio @rikterbeek
+* @rkewlani @martinsrenato @Aleffio @rikterbeek
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/constants/AdyenControllerConstants.java b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/constants/AdyenControllerConstants.java
index 85b5289e7..3fa6653f2 100644
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/constants/AdyenControllerConstants.java
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/constants/AdyenControllerConstants.java
@@ -25,7 +25,6 @@ public interface AdyenControllerConstants
String ADDON_PREFIX = "addon:/adyenv6b2ccheckoutaddon/";
String SELECT_PAYMENT_METHOD_PREFIX = "/checkout/multi/adyen/select-payment-method";
String SUMMARY_CHECKOUT_PREFIX = "/checkout/multi/adyen/summary";
- String PAYPAL_ECS_PREFIX = "/adyen/paypal-ecs";
String COMPONENT_PREFIX = "/adyen/component";
/**
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenPaypalEcsController.java b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenPaypalEcsController.java
deleted file mode 100644
index 05ba6f5b2..000000000
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenPaypalEcsController.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * ######
- * ######
- * ############ ####( ###### #####. ###### ############ ############
- * ############# #####( ###### #####. ###### ############# #############
- * ###### #####( ###### #####. ###### ##### ###### ##### ######
- * ###### ###### #####( ###### #####. ###### ##### ##### ##### ######
- * ###### ###### #####( ###### #####. ###### ##### ##### ######
- * ############# ############# ############# ############# ##### ######
- * ############ ############ ############# ############ ##### ######
- * ######
- * #############
- * ############
- *
- * Adyen Hybris Extension
- *
- * Copyright (c) 2017 Adyen B.V.
- * This file is open source and available under the MIT license.
- * See the LICENSE file for more info.
- */
-package com.adyen.v6.controllers.pages;
-
-import java.security.SignatureException;
-import java.util.Map;
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
-import com.adyen.constants.HPPConstants;
-import com.adyen.v6.constants.AdyenControllerConstants;
-import com.adyen.v6.facades.AdyenCheckoutFacade;
-import com.adyen.v6.facades.AdyenPaypalFacade;
-import de.hybris.platform.acceleratorfacades.flow.CheckoutFlowFacade;
-import de.hybris.platform.acceleratorservices.urlresolver.SiteBaseUrlResolutionService;
-import de.hybris.platform.acceleratorstorefrontcommons.constants.WebConstants;
-import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages;
-import de.hybris.platform.acceleratorstorefrontcommons.security.GUIDCookieStrategy;
-import de.hybris.platform.basecommerce.model.site.BaseSiteModel;
-import de.hybris.platform.commercefacades.customer.CustomerFacade;
-import de.hybris.platform.commercefacades.user.UserFacade;
-import de.hybris.platform.commerceservices.customer.DuplicateUidException;
-import de.hybris.platform.order.InvalidCartException;
-import de.hybris.platform.servicelayer.session.SessionService;
-import de.hybris.platform.site.BaseSiteService;
-import static com.adyen.constants.HPPConstants.Response.AUTH_RESULT;
-import static com.adyen.v6.constants.AdyenControllerConstants.PAYPAL_ECS_PREFIX;
-import static com.adyen.v6.facades.AdyenPaypalFacade.PAYPAL_ECS_SHOPPER_EMAIL;
-import static com.adyen.v6.facades.AdyenPaypalFacade.PAYPAL_ECS_SHOPPER_FIRST_NAME;
-import static com.adyen.v6.facades.AdyenPaypalFacade.PAYPAL_ECS_SHOPPER_LAST_NAME;
-import static de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController.REDIRECT_PREFIX;
-
-@Controller
-@RequestMapping(PAYPAL_ECS_PREFIX)
-public class AdyenPaypalEcsController {
- private static final Logger LOG = Logger.getLogger(AdyenPaypalEcsController.class);
- private static final String PROCESS_URL = "/process";
-
- @Resource(name = "siteBaseUrlResolutionService")
- private SiteBaseUrlResolutionService siteBaseUrlResolutionService;
-
- @Resource(name = "baseSiteService")
- private BaseSiteService baseSiteService;
-
- @Resource(name = "adyenPaypalFacade")
- private AdyenPaypalFacade adyenPaypalFacade;
-
- @Resource(name = "adyenCheckoutFacade")
- private AdyenCheckoutFacade adyenCheckoutFacade;
-
- @Resource(name = "checkoutFlowFacade")
- private CheckoutFlowFacade checkoutFlowFacade;
-
- @Resource(name = "guidCookieStrategy")
- private GUIDCookieStrategy guidCookieStrategy;
-
- @Resource(name = "customerFacade")
- private CustomerFacade customerFacade;
-
- @Resource(name = "sessionService")
- private SessionService sessionService;
-
- @Resource(name = "userFacade")
- private UserFacade userFacade;
-
- @RequestMapping(value = "/initialize", method = RequestMethod.GET)
- public String initialize(final Model model, final RedirectAttributes redirectModel, final HttpServletRequest request) {
- try {
- Map hppFormData = adyenPaypalFacade.initializePaypalECS(getRedirectUrl());
-
- //Building HPP data
- model.addAttribute("hppUrl", adyenCheckoutFacade.getHppUrl());
- model.addAttribute("hppFormData", hppFormData);
-
- return AdyenControllerConstants.Views.Pages.MultiStepCheckout.HppPaymentPage;
- } catch (SignatureException | InvalidCartException e) {
- LOG.error(e);
- }
-
- LOG.debug("Redirecting to cart..");
- GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, "checkout.error.authorization.payment.error");
- return REDIRECT_PREFIX + "/cart";
- }
-
- @RequestMapping(value = PROCESS_URL)
- public String process(final HttpServletRequest request, final HttpServletResponse response, final RedirectAttributes redirectModel) {
- try {
- //Handle PP ECS response
- boolean success = adyenPaypalFacade.handlePaypalECSResponse(request);
-
- //On success, update user and cart
- if (success) {
- //If the user is anonymous, convert him to guest
- if (userFacade.isAnonymousUser()) {
- getCustomerFacade().createGuestUserForAnonymousCheckout(request.getParameter(PAYPAL_ECS_SHOPPER_EMAIL),
- request.getParameter(PAYPAL_ECS_SHOPPER_FIRST_NAME) + request.getParameter(PAYPAL_ECS_SHOPPER_LAST_NAME));
- getGuidCookieStrategy().setCookie(request, response);
- getSessionService().setAttribute(WebConstants.ANONYMOUS_CHECKOUT, Boolean.TRUE);
- }
-
- //Update the cart
- adyenPaypalFacade.updateCart(request, false);
-
- //Pick the cheapest delivery mode and redirect to the last step of checkout
- checkoutFlowFacade.setCheapestDeliveryModeForCheckout();
-
- return REDIRECT_PREFIX + "/checkout/multi/adyen/summary/view";
- }
-
- //In case of error, display the appropriate flash message
- switch (request.getParameter(AUTH_RESULT)) {
- case HPPConstants.Response.AUTH_RESULT_REFUSED:
- GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, "checkout.error.authorization.payment.refused");
- break;
- case HPPConstants.Response.AUTH_RESULT_CANCELLED:
- GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, "checkout.error.authorization.payment.cancelled");
- break;
- case HPPConstants.Response.AUTH_RESULT_ERROR:
- default:
- GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, "checkout.error.authorization.payment.error");
- break;
- }
- } catch (SignatureException | InvalidCartException | DuplicateUidException e) {
- LOG.warn(e);
- GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, "checkout.error.authorization.payment.error");
- }
-
- LOG.debug("Redirecting to cart..");
- return REDIRECT_PREFIX + "/cart";
- }
-
- /**
- * Construct the URL for PP ECS redirect
- */
- private String getRedirectUrl() {
- String url = PAYPAL_ECS_PREFIX + PROCESS_URL;
- BaseSiteModel currentBaseSite = baseSiteService.getCurrentBaseSite();
-
- return siteBaseUrlResolutionService.getWebsiteUrlForSite(currentBaseSite, true, url);
- }
-
- public SiteBaseUrlResolutionService getSiteBaseUrlResolutionService() {
- return siteBaseUrlResolutionService;
- }
-
- public void setSiteBaseUrlResolutionService(SiteBaseUrlResolutionService siteBaseUrlResolutionService) {
- this.siteBaseUrlResolutionService = siteBaseUrlResolutionService;
- }
-
- public BaseSiteService getBaseSiteService() {
- return baseSiteService;
- }
-
- public void setBaseSiteService(BaseSiteService baseSiteService) {
- this.baseSiteService = baseSiteService;
- }
-
- public AdyenPaypalFacade getAdyenPaypalFacade() {
- return adyenPaypalFacade;
- }
-
- public void setAdyenPaypalFacade(AdyenPaypalFacade adyenPaypalFacade) {
- this.adyenPaypalFacade = adyenPaypalFacade;
- }
-
- public AdyenCheckoutFacade getAdyenCheckoutFacade() {
- return adyenCheckoutFacade;
- }
-
- public void setAdyenCheckoutFacade(AdyenCheckoutFacade adyenCheckoutFacade) {
- this.adyenCheckoutFacade = adyenCheckoutFacade;
- }
-
- public CheckoutFlowFacade getCheckoutFlowFacade() {
- return checkoutFlowFacade;
- }
-
- public void setCheckoutFlowFacade(CheckoutFlowFacade checkoutFlowFacade) {
- this.checkoutFlowFacade = checkoutFlowFacade;
- }
-
- public GUIDCookieStrategy getGuidCookieStrategy() {
- return guidCookieStrategy;
- }
-
- public void setGuidCookieStrategy(GUIDCookieStrategy guidCookieStrategy) {
- this.guidCookieStrategy = guidCookieStrategy;
- }
-
- public CustomerFacade getCustomerFacade() {
- return customerFacade;
- }
-
- public void setCustomerFacade(CustomerFacade customerFacade) {
- this.customerFacade = customerFacade;
- }
-
- public SessionService getSessionService() {
- return sessionService;
- }
-
- public void setSessionService(SessionService sessionService) {
- this.sessionService = sessionService;
- }
-
- public UserFacade getUserFacade() {
- return userFacade;
- }
-
- public void setUserFacade(UserFacade userFacade) {
- this.userFacade = userFacade;
- }
-}
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenSummaryCheckoutStepController.java b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenSummaryCheckoutStepController.java
index 96ac8e710..e9ff3b285 100644
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenSummaryCheckoutStepController.java
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenSummaryCheckoutStepController.java
@@ -75,7 +75,6 @@
import static com.adyen.constants.ApiConstants.ThreeDS2Property.FINGERPRINT_TOKEN;
import static com.adyen.constants.ApiConstants.ThreeDS2Property.THREEDS2_CHALLENGE_TOKEN;
import static com.adyen.constants.ApiConstants.ThreeDS2Property.THREEDS2_FINGERPRINT_TOKEN;
-import static com.adyen.constants.BrandCodes.PAYPAL_ECS;
import static com.adyen.constants.HPPConstants.Response.SHOPPER_LOCALE;
import static com.adyen.model.checkout.PaymentsResponse.ResultCodeEnum.CHALLENGESHOPPER;
import static com.adyen.model.checkout.PaymentsResponse.ResultCodeEnum.IDENTIFYSHOPPER;
@@ -172,8 +171,7 @@ public String placeOrder(@ModelAttribute("placeOrderForm") final PlaceOrderForm
String errorMessage = "checkout.error.authorization.failed";
String adyenPaymentMethod = cartData.getAdyenPaymentMethod();
-
- if (canUseAPI(adyenPaymentMethod)) {
+ if (adyenPaymentMethod.equals(RATEPAY)) {
try {
OrderData orderData = adyenCheckoutFacade.authorisePayment(request, cartData);
LOGGER.debug("Redirecting to confirmation!");
@@ -229,7 +227,7 @@ public String placeOrder(@ModelAttribute("placeOrderForm") final PlaceOrderForm
}
} else {
try {
- cartData.setAdyenReturnUrl(getReturnUrl());
+ cartData.setAdyenReturnUrl(getReturnUrl(cartData.getAdyenPaymentMethod()));
OrderData orderData = adyenCheckoutFacade.authorisePayment(request, cartData);
//In case of Boleto, show link to pdf
if (PAYMENT_METHOD_BOLETO.equals(cartData.getAdyenPaymentMethod())) {
@@ -244,15 +242,11 @@ public String placeOrder(@ModelAttribute("placeOrderForm") final PlaceOrderForm
LOGGER.debug("Handling AdyenNonAuthorizedPaymentException. Checking PaymentResponse.");
PaymentsResponse paymentsResponse = e.getPaymentsResponse();
if (REDIRECTSHOPPER == paymentsResponse.getResultCode()) {
- LOGGER.debug("PaymentResponse resultCode is REDIRECTSHOPPER, redirecting shopper to 3DS flow");
if (is3DSPaymentMethod(adyenPaymentMethod)) {
- final String termUrl = getTermUrl();
- model.addAttribute("paReq", paymentsResponse.getRedirect().getData().get(PAREQ));
- model.addAttribute("md", paymentsResponse.getRedirect().getData().get(MD));
- model.addAttribute("issuerUrl", paymentsResponse.getRedirect().getUrl());
- model.addAttribute("termUrl", termUrl);
- return AdyenControllerConstants.Views.Pages.MultiStepCheckout.Validate3DSecurePaymentPage;
+ LOGGER.debug("PaymentResponse resultCode is REDIRECTSHOPPER, redirecting shopper to 3DS flow");
+ return redirectTo3DSValidation(model, paymentsResponse);
}
+ LOGGER.debug("PaymentResponse resultCode is REDIRECTSHOPPER, redirecting shopper to local payment method page");
return REDIRECT_PREFIX + paymentsResponse.getRedirect().getUrl();
}
if (REFUSED == paymentsResponse.getResultCode()) {
@@ -286,13 +280,19 @@ public String authorise3DS2Payment(final Model model,
} catch (AdyenNonAuthorizedPaymentException e) {
LOGGER.debug("Handling AdyenNonAuthorizedPaymentException. Checking PaymentResponse.");
PaymentsResponse paymentsResponse = e.getPaymentsResponse();
- if (paymentsResponse != null && (paymentsResponse.getResultCode() == CHALLENGESHOPPER || paymentsResponse.getResultCode() == IDENTIFYSHOPPER)) {
- LOGGER.debug("PaymentResponse is "+paymentsResponse.getResultCode()+", redirecting to 3DS2 flow");
- return redirectTo3DS2Validation(model, paymentsResponse);
- }
- if (paymentsResponse != null && paymentsResponse.getResultCode() == PaymentsResponse.ResultCodeEnum.REFUSED) {
- errorMessage = getErrorMessageByRefusalReason(paymentsResponse.getRefusalReason());
- LOGGER.debug("PaymentResponse is REFUSED: " + errorMessage);
+ if(paymentsResponse != null) {
+ if (paymentsResponse.getResultCode() == CHALLENGESHOPPER || paymentsResponse.getResultCode() == IDENTIFYSHOPPER) {
+ LOGGER.debug("PaymentResponse is " + paymentsResponse.getResultCode() + ", redirecting to 3DS2 flow");
+ return redirectTo3DS2Validation(model, paymentsResponse);
+ }
+ if (paymentsResponse.getResultCode() == REDIRECTSHOPPER) {
+ LOGGER.debug("PaymentResponse is " + paymentsResponse.getResultCode() + ", redirecting to 3DS flow");
+ return redirectTo3DSValidation(model, paymentsResponse);
+ }
+ if (paymentsResponse.getResultCode() == PaymentsResponse.ResultCodeEnum.REFUSED) {
+ errorMessage = getErrorMessageByRefusalReason(paymentsResponse.getRefusalReason());
+ LOGGER.debug("PaymentResponse is REFUSED: " + errorMessage);
+ }
}
return redirectToSelectPaymentMethodWithError(redirectModel, errorMessage);
} catch (CalculationException | InvalidCartException e) {
@@ -305,7 +305,7 @@ public String authorise3DS2Payment(final Model model,
return REDIRECT_PREFIX + "/cart";
}
- @RequestMapping(value = AUTHORISE_3D_SECURE_PAYMENT_URL, method = RequestMethod.POST)
+ @RequestMapping(value = AUTHORISE_3D_SECURE_PAYMENT_URL, method = RequestMethod.GET)
@RequireHardLogIn
public String authorise3DSecurePayment(final RedirectAttributes redirectModel,
final HttpServletRequest request) {
@@ -417,20 +417,7 @@ private void addMultibancoMessage(RedirectAttributes redirectModel, final String
+ "
");
}
- /**
- * Methods supported via API
- * Credit Cards/OneClick
- * OpenInvoice
- * Boleto
- */
- private boolean canUseAPI(String paymentMethod) {
- Set apiPaymentMethods = new HashSet<>();
-
- apiPaymentMethods.add(PAYPAL_ECS);
- apiPaymentMethods.add(RATEPAY);
- return apiPaymentMethods.contains(paymentMethod);
- }
private boolean is3DSPaymentMethod(String adyenPaymentMethod) {
return adyenPaymentMethod.equals(PAYMENT_METHOD_CC) || adyenPaymentMethod.indexOf(PAYMENT_METHOD_ONECLICK) == 0;
@@ -443,6 +430,16 @@ private String redirectToSelectPaymentMethodWithError(final RedirectAttributes r
return REDIRECT_PREFIX + AdyenControllerConstants.SELECT_PAYMENT_METHOD_PREFIX;
}
+ private String redirectTo3DSValidation(Model model, PaymentsResponse paymentsResponse) {
+ if (paymentsResponse.getRedirect() != null && paymentsResponse.getRedirect().getData() != null) {
+ model.addAttribute("termUrl", paymentsResponse.getRedirect().getData().get("TermUrl"));
+ model.addAttribute("paReq", paymentsResponse.getRedirect().getData().get(PAREQ));
+ model.addAttribute("md", paymentsResponse.getRedirect().getData().get(MD));
+ model.addAttribute("issuerUrl", paymentsResponse.getRedirect().getUrl());
+ }
+ return AdyenControllerConstants.Views.Pages.MultiStepCheckout.Validate3DSecurePaymentPage;
+ }
+
private String redirectTo3DS2Validation(Model model, PaymentsResponse paymentsResponse) {
model.addAttribute(MODEL_CHECKOUT_SHOPPER_HOST, adyenCheckoutFacade.getCheckoutShopperHost());
model.addAttribute(MODEL_ENVIRONMENT_MODE, adyenCheckoutFacade.getEnvironmentMode());
@@ -456,18 +453,13 @@ private String redirectTo3DS2Validation(Model model, PaymentsResponse paymentsRe
return AdyenControllerConstants.Views.Pages.MultiStepCheckout.Validate3DS2PaymentPage;
}
- private String getTermUrl() {
- String authorise3DSecureUrl = AdyenControllerConstants.SUMMARY_CHECKOUT_PREFIX + AUTHORISE_3D_SECURE_PAYMENT_URL;
- BaseSiteModel currentBaseSite = baseSiteService.getCurrentBaseSite();
-
- return siteBaseUrlResolutionService.getWebsiteUrlForSite(currentBaseSite, true, authorise3DSecureUrl);
- }
-
- /**
- * Construct the URL for HPP redirect
- */
- private String getReturnUrl() {
- String url = AdyenControllerConstants.SUMMARY_CHECKOUT_PREFIX + HPP_RESULT_URL;
+ private String getReturnUrl(String adyenPaymentMethod) {
+ String url;
+ if (is3DSPaymentMethod(adyenPaymentMethod)) {
+ url = AdyenControllerConstants.SUMMARY_CHECKOUT_PREFIX + AUTHORISE_3D_SECURE_PAYMENT_URL;
+ } else {
+ url = AdyenControllerConstants.SUMMARY_CHECKOUT_PREFIX + HPP_RESULT_URL;
+ }
BaseSiteModel currentBaseSite = baseSiteService.getCurrentBaseSite();
return siteBaseUrlResolutionService.getWebsiteUrlForSite(currentBaseSite, true, url);
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties
index 19a1ac90a..79f85ae35 100644
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties
@@ -18,3 +18,18 @@ text.account.storedCards=Stored Cards
text.account.storedCard.delete.popup.title=Remove card
text.account.storedCard.delete.error=An error occurred while removing the card
text.account.storedCard.delete.success=The card has been removed
+
+payment.method.billing.information=Billing Information
+payment.method.payment.information=Payment Information
+payment.method.cards.combo=Select credit or debit card
+payment.method.cards.credit=Credit
+payment.method.cards.debit=Debit
+payment.method.date.of.birth=Date of birth
+payment.method.social.security.number=Social security number (CPF/CNPJ)
+payment.method.personal.number=Personal number (last 4 digits)
+payment.method.first.name=First name
+payment.method.last.name=Last name
+payment.method.issuer.selector=Please select issuer
+payment.method.terminal.selector=Select your terminal
+
+checkout.summary.spinner.message=Please wait while your payment is processed. Do not click back or refresh the page.
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_en.properties b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_en.properties
new file mode 100644
index 000000000..79f85ae35
--- /dev/null
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_en.properties
@@ -0,0 +1,35 @@
+
+checkout.error.authorization.transaction.not.permitted=The transaction is not permitted.
+checkout.error.authorization.cvc.declined=The payment is REFUSED. Please check your Card details.
+checkout.error.authorization.restricted.card=The card is restricted.
+checkout.error.authorization.payment.detail.not.found=The payment is REFUSED because the saved card is removed. Please try an other payment method.
+checkout.error.authorization.payment.refused=The payment is REFUSED.
+checkout.error.authorization.payment.cancelled=The payment is Cancelled.
+checkout.error.authorization.payment.error=An error occurred.
+checkout.error.authorization.pos.configuration=Error reaching POS terminal. Check the terminal connection/configuration and try again.
+checkout.error.authorization.pos.busy=The terminal is busy. Wait for the current transaction to end and try again later.
+checkout.error.authorization.pos.pin=The payment is REFUSED. Please check your Card details.
+checkout.error.billing.address=Some fields were not filled in correctly. Please check if your details are correct
+
+text.account.storedCards.empty=There are no stored cards
+text.account.storedCard.delete=Remove
+text.account.storedCard.delete.following=Remove the following card
+text.account.storedCards=Stored Cards
+text.account.storedCard.delete.popup.title=Remove card
+text.account.storedCard.delete.error=An error occurred while removing the card
+text.account.storedCard.delete.success=The card has been removed
+
+payment.method.billing.information=Billing Information
+payment.method.payment.information=Payment Information
+payment.method.cards.combo=Select credit or debit card
+payment.method.cards.credit=Credit
+payment.method.cards.debit=Debit
+payment.method.date.of.birth=Date of birth
+payment.method.social.security.number=Social security number (CPF/CNPJ)
+payment.method.personal.number=Personal number (last 4 digits)
+payment.method.first.name=First name
+payment.method.last.name=Last name
+payment.method.issuer.selector=Please select issuer
+payment.method.terminal.selector=Select your terminal
+
+checkout.summary.spinner.message=Please wait while your payment is processed. Do not click back or refresh the page.
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 fbaac46ff..ce1bbb62b 100644
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/alternativeMethod.tag
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/alternativeMethod.tag
@@ -30,6 +30,7 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="adyen" tagdir="/WEB-INF/tags/addons/adyenv6b2ccheckoutaddon/responsive" %>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>