From a15f96c9dac8a9fcda81dda39666fe9494444ac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89bano=20Lopes?= Date: Thu, 28 Oct 2021 20:04:09 +0000 Subject: [PATCH] Adyen proxy minor fix. --- .../Gateway/Request/CheckoutDataBuilder.php | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Plugin/Adyen/Payment/Gateway/Request/CheckoutDataBuilder.php b/Plugin/Adyen/Payment/Gateway/Request/CheckoutDataBuilder.php index 947bd242..31e19f97 100644 --- a/Plugin/Adyen/Payment/Gateway/Request/CheckoutDataBuilder.php +++ b/Plugin/Adyen/Payment/Gateway/Request/CheckoutDataBuilder.php @@ -175,10 +175,16 @@ public function afterBuild(AdyenCheckoutDataBuilder $subject, $request) $request['body']['additionalData']['bin'] = $magentoRequest['paymentMethod']['additional_data']['cardBin']; } + if ($quote->getCustomerIsGuest()) { + $customerEmail = $quote->getBillingAddress()->getEmail(); + } else { + $customerEmail = $quote->getCustomerEmail(); + } + $request['body']['additionalData']['teamId'] = $teamId; $request['body']['additionalData']['checkoutAttemptId'] = uniqid(); $request['body']['additionalData']['enhancedSchemeData.dutyAmount'] = $this->processAmount($taxAmount); - $request['body']['additionalData']['riskdata.basket.item0.receiverEmail'] = $quote->getCustomer()->getEmail(); + $request['body']['additionalData']['riskdata.basket.item0.receiverEmail'] = $customerEmail; if ($discountAmount) { $request['body']['additionalData']['riskdata.promotions.promotion0.promotionDiscountAmount'] = @@ -226,9 +232,6 @@ public function afterBuild(AdyenCheckoutDataBuilder $subject, $request) } } - $createdAt = $quote->getCustomer()->getCreatedAt(); - $createdAt = str_replace(' ', 'T', $createdAt) . "+00:00"; - $address = $quote->getShippingAddress()->getCity() !== null ? $quote->getShippingAddress() : $quote->getBillingAddress(); $shippingData = $this->getAddressData($quote->getShippingAddress()); @@ -256,7 +259,13 @@ public function afterBuild(AdyenCheckoutDataBuilder $subject, $request) $request['body']['merchantRiskIndicator']['deliveryTimeframe'] = $deliveryTimeframe; } - $request['body']['accountInfo']['accountCreationDate'] = $createdAt; + $createdAt = $quote->getCustomer()->getCreatedAt(); + + if (isset($createdAt)) { + $createdAt = str_replace(' ', 'T', $createdAt) . "+00:00"; + $request['body']['accountInfo']['accountCreationDate'] = $createdAt; + } + $request['body']['merchantRiskIndicator']['deliveryAddressIndicator'] = $deliveryAddressIndicator; $request['body']['deliveryAddress'] = $adyenAddress; @@ -265,7 +274,7 @@ public function afterBuild(AdyenCheckoutDataBuilder $subject, $request) public function getAddressData(\Magento\Quote\Model\Quote\Address $address) { - $data = implode($address->getStreet(), ''); + $data = implode('', $address->getStreet()); $data .= $address->getPostcode(); $data .= $address->getCity(); $data .= $address->getRegion();