Skip to content

Commit 8724a93

Browse files
committed
RATESWSX-321: fix deletion of ratepay-data if payment-method got switched
1 parent c3fa507 commit 8724a93

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

src/Components/Checkout/SalesChannel/HandlePaymentMethodRoute.php

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -44,28 +44,24 @@ public function getDecorated(): AbstractHandlePaymentMethodRoute
4444

4545
public function load(Request $request, SalesChannelContext $context): HandlePaymentMethodRouteResponse
4646
{
47-
if ($request->headers->count() === 0) {
48-
// it seems like that this is not an API request. This should be an internal call of the route.
49-
// the module should only handle API calls.
50-
return $this->innerService->load($request, $context);
51-
}
52-
5347
$orderId = $request->request->getAlnum('orderId');
48+
/** @var OrderEntity|null $order */
49+
$order = !empty($orderId) ? $this->orderRepository->search(CriteriaHelper::getCriteriaForOrder($orderId), $context->getContext())->first() : null;
5450

55-
$paymentHandlerIdentifier = null;
56-
$order = null;
57-
if (!empty($orderId)) {
58-
/** @var OrderEntity|null $order */
59-
$order = $this->orderRepository->search(CriteriaHelper::getCriteriaForOrder($orderId), $context->getContext())->first();
60-
if ($order instanceof OrderEntity && ($transaction = $order->getTransactions()->last()) instanceof OrderTransactionEntity) {
61-
$paymentHandlerIdentifier = $transaction->getPaymentMethod()->getHandlerIdentifier();
51+
if ($request->headers->count() !== 0) {
52+
// we only validate API requests
53+
$paymentHandlerIdentifier = null;
54+
if (!empty($orderId)) {
55+
if ($order instanceof OrderEntity && ($transaction = $order->getTransactions()->last()) instanceof OrderTransactionEntity) {
56+
$paymentHandlerIdentifier = $transaction->getPaymentMethod()->getHandlerIdentifier();
57+
}
58+
} else {
59+
$paymentHandlerIdentifier = $context->getPaymentMethod()->getHandlerIdentifier();
6260
}
63-
} else {
64-
$paymentHandlerIdentifier = $context->getPaymentMethod()->getHandlerIdentifier();
65-
}
6661

67-
if ($paymentHandlerIdentifier !== null && is_subclass_of($paymentHandlerIdentifier, AbstractPaymentHandler::class)) {
68-
$this->dataValidationService->validatePaymentData(new DataBag($request->request->all()), $context, $order ?? null);
62+
if ($paymentHandlerIdentifier !== null && is_subclass_of($paymentHandlerIdentifier, AbstractPaymentHandler::class)) {
63+
$this->dataValidationService->validatePaymentData(new DataBag($request->request->all()), $context, $order ?? null);
64+
}
6965
}
7066

7167
$result = $this->innerService->load($request, $context);

0 commit comments

Comments
 (0)