Commit 8b02847b authored by attilak's avatar attilak Committed by Rik ter Beek

Move 3D secure to new checkout endpoint

Add Checkout utility factory into Helper\Data
parent 7773f97d
...@@ -97,14 +97,15 @@ class CheckoutResponseValidator extends AbstractValidator ...@@ -97,14 +97,15 @@ class CheckoutResponseValidator extends AbstractValidator
case "RedirectShopper": case "RedirectShopper":
$payment->setAdditionalInformation('3dActive', true); $payment->setAdditionalInformation('3dActive', true);
$issuerUrl = $response['redirect']['url']; if (!empty($paReq = $response['redirect']['data']['PaReq']) &&
$paReq = $response['redirect']['data']['PaReq']; !empty($md = $response['redirect']['data']['MD']) &&
$md = $response['redirect']['data']['MD']; !empty($issuerUrl = $response['redirect']['url']) &&
!empty($paymentData = $response['paymentData'])
if (!empty($paReq) && !empty($md) && !empty($issuerUrl)) { ) {
$payment->setAdditionalInformation('issuerUrl', $issuerUrl); $payment->setAdditionalInformation('issuerUrl', $issuerUrl);
$payment->setAdditionalInformation('paRequest', $paReq); $payment->setAdditionalInformation('paRequest', $paReq);
$payment->setAdditionalInformation('md', $md); $payment->setAdditionalInformation('md', $md);
$payment->setAdditionalInformation('paymentData', $paymentData);
} else { } else {
$isValid = false; $isValid = false;
$errorMsg = __('3D secure is not valid.'); $errorMsg = __('3D secure is not valid.');
......
...@@ -96,11 +96,6 @@ class Data extends AbstractHelper ...@@ -96,11 +96,6 @@ class Data extends AbstractHelper
*/ */
protected $adyenLogger; protected $adyenLogger;
/**
* @var \Adyen\Service\ServiceFactory
*/
protected $adyenServiceFactory;
/** /**
* @var \Magento\Store\Model\StoreManagerInterface * @var \Magento\Store\Model\StoreManagerInterface
*/ */
...@@ -1405,7 +1400,7 @@ class Data extends AbstractHelper ...@@ -1405,7 +1400,7 @@ class Data extends AbstractHelper
$client = $this->initializeAdyenClient(); $client = $this->initializeAdyenClient();
$service = $this->adyenServiceFactory->createCheckoutUtility($client); $service = $this->createAdyenCheckoutUtilityService($client);
$respone = $service->originKeys($params); $respone = $service->originKeys($params);
if (empty($originKey = $respone['originKeys'][$url])) { if (empty($originKey = $respone['originKeys'][$url])) {
...@@ -1426,4 +1421,14 @@ class Data extends AbstractHelper ...@@ -1426,4 +1421,14 @@ class Data extends AbstractHelper
return self::CHECKOUT_CONTEXT_URL_LIVE; return self::CHECKOUT_CONTEXT_URL_LIVE;
} }
/**
* @param \Adyen\Clien $client
* @return \Adyen\Service\CheckoutUtility
* @throws \Adyen\AdyenException
*/
private function createAdyenCheckoutUtilityService($client)
{
return new \Adyen\Service\CheckoutUtility($client);
}
} }
...@@ -98,26 +98,24 @@ class PaymentRequest extends DataObject ...@@ -98,26 +98,24 @@ class PaymentRequest extends DataObject
{ {
$order = $payment->getOrder(); $order = $payment->getOrder();
$storeId = $order->getStoreId(); $storeId = $order->getStoreId();
$merchantAccount = $this->_adyenHelper->getAdyenAbstractConfigData("merchant_account", $storeId);
$shopperIp = $order->getRemoteIp();
$md = $payment->getAdditionalInformation('md'); $md = $payment->getAdditionalInformation('md');
$paResponse = $payment->getAdditionalInformation('paResponse'); $paResponse = $payment->getAdditionalInformation('paResponse');
$paymentData = $payment->getAdditionalInformation('paymentData');
$browserInfo = ['userAgent' => $_SERVER['HTTP_USER_AGENT'], 'acceptHeader' => $_SERVER['HTTP_ACCEPT']];
$request = [ $request = [
"merchantAccount" => $merchantAccount, "paymentData" => $paymentData,
"browserInfo" => $browserInfo, "details" => [
"md" => $md, "MD" => $md,
"paResponse" => $paResponse, "PaRes" => $paResponse
"shopperIP" => $shopperIp ]
]; ];
try { try {
$client = $this->createClient($storeId); $client = $this->_adyenHelper->initializeAdyenClient($storeId);
$service = new \Adyen\Service\Payment($client); $service = new \Adyen\Service\Checkout($client);
$result = $service->authorise3D($request); $result = $service->paymentsDetails($request);
} catch (\Adyen\AdyenException $e) { } catch(\Adyen\AdyenException $e) {
throw new \Magento\Framework\Exception\LocalizedException(__('3D secure failed')); throw new \Magento\Framework\Exception\LocalizedException(__('3D secure failed'));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment