Skip to content

Commit f1f786f

Browse files
author
Oleg Zinoviev
committed
Merge remote-tracking branch 'origin/develop' into MAGETWO-39999
2 parents 7f0ffbb + c36b15c commit f1f786f

File tree

1,270 files changed

+53583
-22314
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,270 files changed

+53583
-22314
lines changed
Lines changed: 60 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,27 @@
11
<?php
22
/**
3-
*
43
* Copyright © 2015 Magento. All rights reserved.
54
* See COPYING.txt for license details.
65
*/
76
namespace Magento\Authorizenet\Controller\Directpost\Payment;
87

9-
class Place extends \Magento\Authorizenet\Controller\Directpost\Payment
8+
use Magento\Authorizenet\Controller\Directpost\Payment;
9+
use Magento\Authorizenet\Helper\DataFactory;
10+
use Magento\Checkout\Model\Type\Onepage;
11+
use Magento\Framework\App\Action\Context;
12+
use Magento\Framework\App\Response\Http;
13+
use Magento\Framework\Json\Helper\Data as JsonHelper;
14+
use Magento\Framework\Object;
15+
use Magento\Framework\Registry;
16+
use Magento\Payment\Model\IframeConfigProvider;
17+
use Magento\Quote\Api\CartManagementInterface;
18+
19+
/**
20+
* Class Place
21+
*
22+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
23+
*/
24+
class Place extends Payment
1025
{
1126
/**
1227
* @var \Magento\Quote\Api\CartManagementInterface
@@ -19,19 +34,35 @@ class Place extends \Magento\Authorizenet\Controller\Directpost\Payment
1934
protected $eventManager;
2035

2136
/**
22-
* @param \Magento\Framework\App\Action\Context $context
23-
* @param \Magento\Framework\Registry $coreRegistry
24-
* @param \Magento\Authorizenet\Helper\DataFactory $dataFactory
25-
* @param \Magento\Quote\Api\CartManagementInterface $cartManagement
37+
* @var \Magento\Checkout\Model\Type\Onepage
38+
*/
39+
protected $onepageCheckout;
40+
41+
/**
42+
* @var \Magento\Framework\Json\Helper\Data
43+
*/
44+
protected $jsonHelper;
45+
46+
/**
47+
* @param Context $context
48+
* @param Registry $coreRegistry
49+
* @param DataFactory $dataFactory
50+
* @param CartManagementInterface $cartManagement
51+
* @param Onepage $onepageCheckout
52+
* @param JsonHelper $jsonHelper
2653
*/
2754
public function __construct(
28-
\Magento\Framework\App\Action\Context $context,
29-
\Magento\Framework\Registry $coreRegistry,
30-
\Magento\Authorizenet\Helper\DataFactory $dataFactory,
31-
\Magento\Quote\Api\CartManagementInterface $cartManagement
55+
Context $context,
56+
Registry $coreRegistry,
57+
DataFactory $dataFactory,
58+
CartManagementInterface $cartManagement,
59+
Onepage $onepageCheckout,
60+
JsonHelper $jsonHelper
3261
) {
3362
$this->eventManager = $context->getEventManager();
3463
$this->cartManagement = $cartManagement;
64+
$this->onepageCheckout = $onepageCheckout;
65+
$this->jsonHelper = $jsonHelper;
3566
parent::__construct($context, $coreRegistry, $dataFactory);
3667
}
3768

@@ -44,18 +75,23 @@ public function execute()
4475
{
4576
$paymentParam = $this->getRequest()->getParam('payment');
4677
$controller = $this->getRequest()->getParam('controller');
78+
$response = $this->getResponse();
79+
4780
if (isset($paymentParam['method'])) {
4881
$this->_getDirectPostSession()->setQuoteId($this->_getCheckout()->getQuote()->getId());
82+
/**
83+
* Current workaround depends on Onepage checkout model defect
84+
* Method Onepage::getCheckoutMethod performs setCheckoutMethod
85+
*/
86+
$this->onepageCheckout->getCheckoutMethod();
4987

50-
if ($controller == \Magento\Payment\Model\IframeConfigProvider::CHECKOUT_IDENTIFIER) {
88+
if ($controller == IframeConfigProvider::CHECKOUT_IDENTIFIER) {
5189
return $this->placeCheckoutOrder();
5290
}
5391

54-
$params = $this->_objectManager->get(
55-
'Magento\Authorizenet\Helper\Data'
56-
)->getSaveOrderUrlParams(
57-
$controller
58-
);
92+
$params = $this->dataFactory
93+
->create(DataFactory::AREA_FRONTEND)
94+
->getSaveOrderUrlParams($controller);
5995
$this->_forward(
6096
$params['action'],
6197
$params['controller'],
@@ -64,9 +100,9 @@ public function execute()
64100
);
65101
} else {
66102
$result = ['error_messages' => __('Please choose a payment method.'), 'goto_section' => 'payment'];
67-
$this->getResponse()->representJson(
68-
$this->_objectManager->get('Magento\Framework\Json\Helper\Data')->jsonEncode($result)
69-
);
103+
if ($response instanceof Http) {
104+
$response->representJson($this->jsonHelper->jsonEncode($result));
105+
}
70106
}
71107
}
72108

@@ -77,7 +113,8 @@ public function execute()
77113
*/
78114
protected function placeCheckoutOrder()
79115
{
80-
$result = new \Magento\Framework\Object();
116+
$result = new Object();
117+
$response = $this->getResponse();
81118
try {
82119
$this->cartManagement->placeOrder($this->_getCheckout()->getQuote()->getId());
83120
$result->setData('success', true);
@@ -92,8 +129,8 @@ protected function placeCheckoutOrder()
92129
$result->setData('error', true);
93130
$result->setData('error_messages', __('Cannot place order.'));
94131
}
95-
$this->getResponse()->representJson(
96-
$this->_objectManager->get('Magento\Framework\Json\Helper\Data')->jsonEncode($result)
97-
);
132+
if ($response instanceof Http) {
133+
$response->representJson($this->jsonHelper->jsonEncode($result));
134+
}
98135
}
99136
}

app/code/Magento/Authorizenet/Helper/DataFactory.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
*/
1414
class DataFactory
1515
{
16+
const AREA_FRONTEND = 'frontend';
17+
const AREA_BACKEND = 'adminhtml';
1618
/**
1719
* @var ObjectManagerInterface
1820
*/
@@ -22,8 +24,8 @@ class DataFactory
2224
* @var array
2325
*/
2426
protected $helperMap = [
25-
'frontend' => 'Magento\Authorizenet\Helper\Data',
26-
'adminhtml' => 'Magento\Authorizenet\Helper\Backend\Data'
27+
self::AREA_FRONTEND => 'Magento\Authorizenet\Helper\Data',
28+
self::AREA_BACKEND => 'Magento\Authorizenet\Helper\Backend\Data'
2729
];
2830

2931
/**

app/code/Magento/Authorizenet/Model/Directpost/Session.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
*/
66
namespace Magento\Authorizenet\Model\Directpost;
77

8+
use Magento\Framework\Session\SessionManager;
9+
810
/**
911
* Authorize.net DirectPost session model
1012
*/
11-
class Session extends \Magento\Framework\Session\SessionManager
13+
class Session extends SessionManager
1214
{
1315
/**
1416
* Add order IncrementId to session
@@ -60,4 +62,16 @@ public function isCheckoutOrderIncrementIdExist($orderIncrementId)
6062
}
6163
return false;
6264
}
65+
66+
/**
67+
* Set quote id to session
68+
*
69+
* @param int|string $id
70+
* @return $this
71+
*/
72+
public function setQuoteId($id)
73+
{
74+
$this->storage->setQuoteId($id);
75+
return $this;
76+
}
6377
}

0 commit comments

Comments
 (0)