From b6609807d411dfb3aa0bf19b00bf2d140bb6bedd Mon Sep 17 00:00:00 2001
From: PJaneta
Date: Fri, 5 Jan 2024 12:37:38 +0100
Subject: [PATCH 1/6] AD-12 Apple pay express delivery method calculation fix
---
.../v6/facades/AdyenExpressCheckoutFacade.java | 3 +++
.../impl/DefaultAdyenExpressCheckoutFacade.java | 13 +++++++++++++
2 files changed, 16 insertions(+)
diff --git a/adyenv6core/src/com/adyen/v6/facades/AdyenExpressCheckoutFacade.java b/adyenv6core/src/com/adyen/v6/facades/AdyenExpressCheckoutFacade.java
index b3b204800..b86af609b 100644
--- a/adyenv6core/src/com/adyen/v6/facades/AdyenExpressCheckoutFacade.java
+++ b/adyenv6core/src/com/adyen/v6/facades/AdyenExpressCheckoutFacade.java
@@ -3,6 +3,7 @@
import com.adyen.model.checkout.PaymentsResponse;
import de.hybris.platform.commercefacades.user.data.AddressData;
import de.hybris.platform.deliveryzone.model.ZoneDeliveryModeValueModel;
+import de.hybris.platform.order.exceptions.CalculationException;
import javax.servlet.http.HttpServletRequest;
import java.util.Optional;
@@ -16,4 +17,6 @@ PaymentsResponse expressCartCheckout(AddressData addressData, String merchantId,
String applePayToken, HttpServletRequest request) throws Exception;
Optional getExpressDeliveryModePrice();
+
+ void removeDeliveryModeFromSessionCart() throws CalculationException;
}
diff --git a/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java b/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java
index b0aab7019..8c7f920c1 100644
--- a/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java
+++ b/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java
@@ -24,6 +24,7 @@
import de.hybris.platform.deliveryzone.model.ZoneDeliveryModeModel;
import de.hybris.platform.deliveryzone.model.ZoneDeliveryModeValueModel;
import de.hybris.platform.order.*;
+import de.hybris.platform.order.exceptions.CalculationException;
import de.hybris.platform.product.ProductService;
import de.hybris.platform.servicelayer.dto.converter.Converter;
import de.hybris.platform.servicelayer.i18n.CommonI18NService;
@@ -154,6 +155,18 @@ public PaymentsResponse expressCartCheckout(AddressData addressData, String merc
}
}
+ public void removeDeliveryModeFromSessionCart() throws CalculationException {
+ if (cartService.hasSessionCart()) {
+ CartModel sessionCart = cartService.getSessionCart();
+ sessionCart.setDeliveryMode(null);
+ modelService.save(sessionCart);
+
+ CommerceCartParameter commerceCartParameter = new CommerceCartParameter();
+ commerceCartParameter.setCart(sessionCart);
+ commerceCartService.recalculateCart(commerceCartParameter);
+ }
+ }
+
private void prepareCart(CartModel cart, DeliveryModeModel deliveryMode, AddressModel addressModel, PaymentInfoModel paymentInfo) {
cart.setDeliveryMode(deliveryMode);
cart.setDeliveryAddress(addressModel);
From 2c3f406e01b0b2760a2885aaf2d7b9c8ac52b3e8 Mon Sep 17 00:00:00 2001
From: Artur Kaflowski
Date: Tue, 9 Jan 2024 12:21:39 +0100
Subject: [PATCH 2/6] AD-12 - Fixing issue with apple pay
---
.../pages/AdyenSummaryCheckoutStepController.java | 8 +++++++-
.../_ui/responsive/common/js/adyen_express_checkout.js | 1 +
2 files changed, 8 insertions(+), 1 deletion(-)
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 4828cfb6f..1dd5efda0 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
@@ -35,6 +35,7 @@
import de.hybris.platform.acceleratorservices.enums.CheckoutPciOptionEnum;
import de.hybris.platform.acceleratorservices.urlresolver.SiteBaseUrlResolutionService;
import org.apache.commons.lang3.StringUtils;
+import org.apache.http.HttpHeaders;
import org.json.JSONObject;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -700,7 +701,12 @@ protected String validateOrderFormJson(final PlaceOrderForm placeOrderForm) {
return StringUtils.EMPTY;
}
-
+ @PostMapping(value = "/component-result-express")
+ public String handleComponentResultExpress(final RedirectAttributes redirectAttributes,
+ @RequestHeader(value = HttpHeaders.REFERER, required = false) final String referrer) {
+ GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.ERROR_MESSAGES_HOLDER, CHECKOUT_ERROR_AUTHORIZATION_PAYMENT_ERROR);
+ return "redirect:" + referrer;
+ }
@PostMapping(value = "/component-result")
@RequireHardLogIn
public String handleComponentResult(final HttpServletRequest request,
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_express_checkout.js b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_express_checkout.js
index 271d2d910..15e304c66 100644
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_express_checkout.js
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_express_checkout.js
@@ -142,6 +142,7 @@ var AdyenExpressCheckoutHybris = (function() {
if (error) {
document.querySelector("#resultData").value = data;
document.querySelector("#isResultError").value = error;
+ document.querySelector("#handleComponentResultForm").action += "-express"
} else {
document.querySelector("#resultData").value = JSON.stringify(data);
}
From 3f86aa1af9f74f7ed80ad2847fc9861257ad66bb Mon Sep 17 00:00:00 2001
From: Artur Kaflowski
Date: Wed, 10 Jan 2024 10:31:35 +0100
Subject: [PATCH 3/6] AD-12 - npe fix
---
.../com/adyen/v6/facades/impl/DefaultAdyenCheckoutFacade.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenCheckoutFacade.java b/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenCheckoutFacade.java
index c10017640..a1dabb265 100644
--- a/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenCheckoutFacade.java
+++ b/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenCheckoutFacade.java
@@ -573,6 +573,9 @@ private OrderData createOrderFromPaymentsResponse(final PaymentsResponse payment
OrderData orderData = getCheckoutFacade().placeOrder();
+ if (orderData == null) {
+ throw new InvalidCartException("Order does not exist!");
+ }
OrderModel orderModel = orderRepository.getOrderModel(orderData.getCode());
getAdyenOrderService().updateOrderFromPaymentsResponse(orderModel, paymentsResponse);
From a8da1d35866de3d8ad3fa68f5236633b986a7844 Mon Sep 17 00:00:00 2001
From: Artur Kaflowski
Date: Wed, 10 Jan 2024 12:58:58 +0100
Subject: [PATCH 4/6] AD-12 - npe fix
---
adyenv6core/resources/adyenv6core-spring.xml | 1 +
.../impl/DefaultAdyenExpressCheckoutFacade.java | 12 ++++++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/adyenv6core/resources/adyenv6core-spring.xml b/adyenv6core/resources/adyenv6core-spring.xml
index ccf23a18a..4e31568c1 100644
--- a/adyenv6core/resources/adyenv6core-spring.xml
+++ b/adyenv6core/resources/adyenv6core-spring.xml
@@ -511,5 +511,6 @@
+
diff --git a/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java b/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java
index 8c7f920c1..f8275c4a0 100644
--- a/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java
+++ b/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java
@@ -30,6 +30,7 @@
import de.hybris.platform.servicelayer.i18n.CommonI18NService;
import de.hybris.platform.servicelayer.model.ModelService;
import de.hybris.platform.servicelayer.session.SessionService;
+import de.hybris.platform.servicelayer.user.UserService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.validator.routines.EmailValidator;
@@ -62,6 +63,7 @@ public class DefaultAdyenExpressCheckoutFacade implements AdyenExpressCheckoutFa
private ZoneDeliveryModeService zoneDeliveryModeService;
private AdyenCheckoutFacade adyenCheckoutFacade;
private SessionService sessionService;
+ private UserService userService;
private Converter addressReverseConverter;
private Converter cartConverter;
@@ -72,8 +74,10 @@ public PaymentsResponse expressPDPCheckout(AddressData addressData, String produ
if (StringUtils.isEmpty(addressData.getEmail())) {
throw new IllegalArgumentException("Empty email address");
}
-
- CustomerModel user = createGuestCustomer(addressData.getEmail());
+ CustomerModel user = (CustomerModel) userService.getCurrentUser();
+ if (userService.isAnonymousUser(user)) {
+ user = createGuestCustomer(addressData.getEmail());
+ }
CartModel cart = createCartForExpressCheckout(user);
@@ -315,4 +319,8 @@ public void setCartConverter(Converter cartConverter) {
public void setSessionService(SessionService sessionService) {
this.sessionService = sessionService;
}
+
+ public void setUserService(UserService userService) {
+ this.userService = userService;
+ }
}
From 8d35533144a5529791f99f775683e73e4005185c Mon Sep 17 00:00:00 2001
From: Artur Kaflowski
Date: Wed, 10 Jan 2024 15:37:39 +0100
Subject: [PATCH 5/6] AD-12 - npe fix
---
.../v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java b/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java
index f8275c4a0..b0682ea22 100644
--- a/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java
+++ b/adyenv6core/src/com/adyen/v6/facades/impl/DefaultAdyenExpressCheckoutFacade.java
@@ -125,8 +125,11 @@ public PaymentsResponse expressPDPCheckout(AddressData addressData, String produ
public PaymentsResponse expressCartCheckout(AddressData addressData, String merchantId, String merchantName,
String applePayToken, HttpServletRequest request) throws Exception {
- CustomerModel user = createGuestCustomer(addressData.getEmail());
- cartService.changeCurrentCartUser(user);
+ CustomerModel user = (CustomerModel) userService.getCurrentUser();
+ if (userService.isAnonymousUser(user)) {
+ user = createGuestCustomer(addressData.getEmail());
+ cartService.changeCurrentCartUser(user);
+ }
CartModel cart = cartService.getSessionCart();
From c0eebb98cc4475e45862b1c4eef8d03fcf5fbea8 Mon Sep 17 00:00:00 2001
From: Artur Kaflowski
Date: Thu, 11 Jan 2024 10:53:55 +0100
Subject: [PATCH 6/6] AD-12 - js fix
---
.../webroot/_ui/responsive/common/js/adyen_express_checkout.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_express_checkout.js b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_express_checkout.js
index 15e304c66..271d2d910 100644
--- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_express_checkout.js
+++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_express_checkout.js
@@ -142,7 +142,6 @@ var AdyenExpressCheckoutHybris = (function() {
if (error) {
document.querySelector("#resultData").value = data;
document.querySelector("#isResultError").value = error;
- document.querySelector("#handleComponentResultForm").action += "-express"
} else {
document.querySelector("#resultData").value = JSON.stringify(data);
}