diff --git a/README.md b/README.md index f88ddf59c..e9f5e8183 100644 --- a/README.md +++ b/README.md @@ -89,16 +89,6 @@ Ratepay is supported via Adyen API. ### Pix [Pix](https://docs.adyen.com/payment-methods/pix) is supported via Adyen component and API. -### Paypal Express Checkout Shortcut - -Requires both Adyen API and HPP credentials. - -The plugin offers: - - a facade (AdyenPaypalFacade) that takes care of the communication from and to Adyen regarding Paypal ECS - - a default controller that given a valid Cart, can initiate such payment "/en/adyen/paypal-ecs/initialize" - -More details can be found here: https://docs.adyen.com/developers/payment-methods/paypal/express-checkout-shortcut - ### Other alternative payment methods Supported via Adyen Checkout. diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenComponentController.java b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenComponentController.java index 06df9b71c..599f209aa 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenComponentController.java +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/src/com/adyen/v6/controllers/pages/AdyenComponentController.java @@ -61,11 +61,14 @@ import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Type; import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.List; import java.util.Map; import static com.adyen.v6.constants.AdyenControllerConstants.COMPONENT_PREFIX; import static com.adyen.v6.constants.AdyenControllerConstants.SUMMARY_CHECKOUT_PREFIX; import static com.adyen.v6.constants.Adyenv6coreConstants.PAYMENT_METHOD_AMAZONPAY; +import static com.adyen.v6.constants.Adyenv6coreConstants.PAYMENT_METHOD_BCMC_MOBILE; import static com.adyen.v6.constants.Adyenv6coreConstants.PAYMENT_METHOD_PIX; @RestController @@ -88,6 +91,10 @@ public class AdyenComponentController { @Resource(name = "baseSiteService") private BaseSiteService baseSiteService; + private final List PAYMENT_METHODS_WITH_VALIDATED_TERMS = Arrays.asList(PAYMENT_METHOD_AMAZONPAY, + PAYMENT_METHOD_BCMC_MOBILE, + PAYMENT_METHOD_PIX); + @RequestMapping(value = "/payment", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public String componentPayment(final HttpServletRequest request) throws AdyenComponentException { @@ -112,9 +119,9 @@ public String componentPayment(final HttpServletRequest request) throws AdyenCom paymentMethodDetails = gson.fromJson(requestJson.get("paymentMethodDetails"), GooglePayDetails.class); } else if(AmazonPayDetails.AMAZONPAY.equals(paymentMethod)) { paymentMethodDetails = gson.fromJson(requestJson.get("paymentMethodDetails"), AmazonPayDetails.class); - } else if(PAYMENT_METHOD_PIX.equals(paymentMethod)) { + } else if(PAYMENT_METHOD_PIX.equals(paymentMethod) || PAYMENT_METHOD_BCMC_MOBILE.equals(paymentMethod)) { paymentMethodDetails = new DefaultPaymentMethodDetails(); - paymentMethodDetails.setType(PAYMENT_METHOD_PIX); + paymentMethodDetails.setType(paymentMethod); } else { throw new InvalidCartException("checkout.error.paymentethod.formentry.invalid"); } @@ -180,8 +187,8 @@ protected void validateOrderForm(JsonObject requestJson) throws InvalidCartExcep JsonObject paymentMethodDetails = requestJson.get("paymentMethodDetails").getAsJsonObject(); String paymentMethod = gson.fromJson(paymentMethodDetails.get("type"), String.class); - // Pix and Amazon already have the terms validated on a previous step - if(!PAYMENT_METHOD_PIX.equals(paymentMethod) && !PAYMENT_METHOD_AMAZONPAY.equals(paymentMethod) + // Some methods already have the terms validated on a previous step + if (!PAYMENT_METHODS_WITH_VALIDATED_TERMS.contains(paymentMethod) && (termsCheck == null || !termsCheck)) { throw new InvalidCartException("checkout.error.terms.not.accepted"); } 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 b6617b48d..f1abbb23e 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 @@ -84,6 +84,7 @@ import static com.adyen.v6.constants.AdyenControllerConstants.SUMMARY_CHECKOUT_PREFIX; import static com.adyen.v6.constants.Adyenv6coreConstants.AFTERPAY_TOUCH; import static com.adyen.v6.constants.Adyenv6coreConstants.PAYMENT_METHOD_APPLEPAY; +import static com.adyen.v6.constants.Adyenv6coreConstants.PAYMENT_METHOD_BCMC; import static com.adyen.v6.constants.Adyenv6coreConstants.PAYMENT_METHOD_BOLETO; import static com.adyen.v6.constants.Adyenv6coreConstants.PAYMENT_METHOD_CC; import static com.adyen.v6.constants.Adyenv6coreConstants.PAYMENT_METHOD_MULTIBANCO; @@ -102,7 +103,7 @@ public class AdyenSummaryCheckoutStepController extends AbstractCheckoutStepCont private final static String SUMMARY = "summary"; private static final String AUTHORISE_3D_SECURE_PAYMENT_URL = "/authorise-3d-adyen-response"; - private static final String HPP_RESULT_URL = "/hpp-adyen-response"; + private static final String CHECKOUT_RESULT_URL = "/checkout-adyen-response"; private static final String REDIRECT_RESULT = "redirectResult"; private static final String ACTION = "action"; @@ -342,7 +343,7 @@ public String authorise3DSPayment(final RedirectAttributes redirectModel, return REDIRECT_PREFIX + CART_PREFIX; } - @RequestMapping(value = HPP_RESULT_URL, method = RequestMethod.GET) + @RequestMapping(value = CHECKOUT_RESULT_URL, method = RequestMethod.GET) @RequireHardLogIn public String handleAdyenResponse(final HttpServletRequest request, final RedirectAttributes redirectModel) { String redirectResult = request.getParameter(REDIRECT_RESULT); @@ -423,7 +424,7 @@ private void addMultibancoMessage(RedirectAttributes redirectModel, final String private boolean is3DSPaymentMethod(String adyenPaymentMethod) { - return adyenPaymentMethod.equals(PAYMENT_METHOD_CC) || adyenPaymentMethod.indexOf(PAYMENT_METHOD_ONECLICK) == 0; + return adyenPaymentMethod.equals(PAYMENT_METHOD_CC) || adyenPaymentMethod.equals(PAYMENT_METHOD_BCMC) || adyenPaymentMethod.indexOf(PAYMENT_METHOD_ONECLICK) == 0; } private String redirectToSelectPaymentMethodWithError(final RedirectAttributes redirectModel, final String messageKey) { @@ -455,7 +456,7 @@ private String getReturnUrl(String adyenPaymentMethod) { if (is3DSPaymentMethod(adyenPaymentMethod)) { url = SUMMARY_CHECKOUT_PREFIX + AUTHORISE_3D_SECURE_PAYMENT_URL; } else { - url = SUMMARY_CHECKOUT_PREFIX + HPP_RESULT_URL; + url = SUMMARY_CHECKOUT_PREFIX + CHECKOUT_RESULT_URL; } BaseSiteModel currentBaseSite = baseSiteService.getCurrentBaseSite(); diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties index 154fee068..92e012792 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties @@ -36,4 +36,4 @@ payment.method.telephonenumber=Phone Number checkout.summary.spinner.message=Please wait while your payment is processed. Do not click back or refresh the page. checkout.summary.component.mbway.payment=Provide your MB WAY account data to finalize your payment checkout.summary.component.notavailable=This payment method is not available on your current browser or device -checkout.summary.component.pix.generateqr = Generate QR Code \ No newline at end of file +checkout.summary.component.generateqr = Generate QR Code \ No newline at end of file diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_en.properties b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_en.properties index 154fee068..92e012792 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_en.properties +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_en.properties @@ -36,4 +36,4 @@ payment.method.telephonenumber=Phone Number checkout.summary.spinner.message=Please wait while your payment is processed. Do not click back or refresh the page. checkout.summary.component.mbway.payment=Provide your MB WAY account data to finalize your payment checkout.summary.component.notavailable=This payment method is not available on your current browser or device -checkout.summary.component.pix.generateqr = Generate QR Code \ No newline at end of file +checkout.summary.component.generateqr = Generate QR Code \ No newline at end of file diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_pt.properties b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_pt.properties index 23d945d12..ec926c6c1 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_pt.properties +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_pt.properties @@ -34,4 +34,4 @@ payment.method.terminal.selector=Selecione o terminal payment.method.telephonenumber=NĂºmero de telefone checkout.summary.spinner.message=Aguarde... -checkout.summary.component.pix.generateqr = Gerar QR Code \ No newline at end of file +checkout.summary.component.generateqr = Gerar QR Code \ No newline at end of file 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 cba7eeaae..f2038403c 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/alternativeMethod.tag +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/alternativeMethod.tag @@ -145,6 +145,10 @@
+ + +
+
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkoutOrderSummary.tag b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkoutOrderSummary.tag index 6c0d94cc1..2b1d54b5b 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkoutOrderSummary.tag +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkoutOrderSummary.tag @@ -10,10 +10,11 @@ - + + <%-- Components --%> - +
- - <%-- Render Pix QR code --%> + + <%-- Render QR code --%> -
+
<%-- Render payment button --%> @@ -37,7 +38,7 @@
- +
@@ -45,7 +46,7 @@
<%-- For components that do not have it's own button --%> - +