Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Data.php
Go to the documentation of this file.
1 <?php
7 
11 use Magento\Sales\Model\OrderFactory;
14 
21 class Data extends AbstractHelper
22 {
26  protected $storeManager;
27 
31  protected $orderFactory;
32 
38  protected $allowedCurrencyCodes = ['USD'];
39 
45  protected $transactionStatuses = [
46  'authorizedPendingCapture' => 'Authorized/Pending Capture',
47  'capturedPendingSettlement' => 'Captured/Pending Settlement',
48  'refundSettledSuccessfully' => 'Refund/Settled Successfully',
49  'refundPendingSettlement' => 'Refund/Pending Settlement',
50  'declined' => 'Declined',
51  'expired' => 'Expired',
52  'voided' => 'Voided',
53  'FDSPendingReview' => 'FDS - Pending Review',
54  'FDSAuthorizedPendingReview' => 'FDS - Authorized/Pending Review'
55  ];
56 
62  protected $fdsFilterActions = [
63  'decline ' => 'Decline',
64  'hold' => 'Hold',
65  'authAndHold' => 'Authorize and Hold',
66  'report' => 'Report Only'
67  ];
68 
74  public function __construct(
75  Context $context,
77  OrderFactory $orderFactory
78  ) {
79  $this->storeManager = $storeManager;
80  $this->orderFactory = $orderFactory;
81  parent::__construct($context);
82  }
83 
91  protected function _getUrl($route, $params = [])
92  {
94  if (isset($params['is_secure'])) {
95  $params['_secure'] = (bool)$params['is_secure'];
96  } elseif ($this->storeManager->getStore()->isCurrentlySecure()) {
97  $params['_secure'] = true;
98  }
99  return parent::_getUrl($route, $params);
100  }
101 
109  {
110  $route = [];
111  switch ($controller) {
112  case 'onepage':
113  $route['action'] = 'saveOrder';
114  $route['controller'] = 'onepage';
115  $route['module'] = 'checkout';
116  break;
117 
118  case 'sales_order_create':
119  case 'sales_order_edit':
120  $route['action'] = 'save';
121  $route['controller'] = 'sales_order_create';
122  $route['module'] = 'admin';
123  break;
124 
125  default:
126  break;
127  }
128 
129  return $route;
130  }
131 
138  public function getRedirectIframeUrl($params)
139  {
140  return $this->_getUrl('authorizenet/directpost_payment/redirect', $params);
141  }
142 
149  public function getSuccessOrderUrl($params)
150  {
151  return $this->_getUrl('checkout/onepage/success', $params);
152  }
153 
161  public function updateOrderEditIncrements(\Magento\Sales\Model\Order $order)
162  {
163  if ($order->getId() && $order->getOriginalIncrementId()) {
164  $collection = $order->getCollection();
165  $quotedIncrId = $collection->getConnection()->quote($order->getOriginalIncrementId());
166  $collection->getSelect()->where(
167  "original_increment_id = {$quotedIncrId} OR increment_id = {$quotedIncrId}"
168  );
169 
170  foreach ($collection as $orderToUpdate) {
171  $orderToUpdate->setEditIncrement($order->getEditIncrement());
172  $orderToUpdate->save();
173  }
174  }
175  }
176 
183  public function convertMessagesToMessage($messages)
184  {
185  return implode(' | ', $messages);
186  }
187 
200  public function getTransactionMessage(
201  $payment,
202  $requestType,
203  $lastTransactionId,
204  $card,
205  $amount = false,
206  $exception = false,
207  $additionalMessage = false
208  ) {
209  $message[] = __('Credit Card: xxxx-%1', $card->getCcLast4());
210  if ($amount) {
211  $message[] = __('amount %1', $this->formatPrice($payment, $amount));
212  }
213  $operation = $this->getOperation($requestType);
214  if (!$operation) {
215  return false;
216  } else {
217  $message[] = $operation;
218  }
219  $message[] = ($exception) ? '- ' . __('failed.') : '- ' . __('successful.');
220  if ($lastTransactionId !== null) {
221  $message[] = __('Authorize.Net Transaction ID %1.', $lastTransactionId);
222  }
223  if ($additionalMessage) {
224  $message[] = $additionalMessage;
225  }
226  if ($exception) {
227  $message[] = $exception;
228  }
229  return implode(' ', $message);
230  }
231 
238  protected function getOperation($requestType)
239  {
240  switch ($requestType) {
242  return __('authorize');
244  return __('authorize and capture');
246  return __('capture');
248  return __('refund');
250  return __('void');
251  default:
252  return false;
253  }
254  }
255 
262  protected function formatPrice($payment, $amount)
263  {
264  return $payment->getOrder()->getBaseCurrency()->formatTxt($amount);
265  }
266 
273  public function getPaymentMethodsHtml(\Magento\Framework\App\ViewInterface $view)
274  {
275  $layout = $view->getLayout();
276  $update = $layout->getUpdate();
277  $update->load('checkout_onepage_paymentmethod');
278  $layout->generateXml();
279  $layout->generateElements();
280  $output = $layout->getOutput();
281  return $output;
282  }
283 
290  public function getRelayUrl($storeId = null)
291  {
292  $baseUrl = $this->storeManager->getStore($storeId)
293  ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_LINK);
294  return $baseUrl . 'authorizenet/directpost_payment/response';
295  }
296 
302  public function getAllowedCurrencyCodes()
303  {
305  }
306 
313  public function getFdsFilterActionLabel($key)
314  {
315  return isset($this->fdsFilterActions[$key]) ? __($this->fdsFilterActions[$key]) : $key;
316  }
317 
324  public function getTransactionStatusLabel($key)
325  {
326  return isset($this->transactionStatuses[$key]) ? __($this->transactionStatuses[$key]) : $key;
327  }
328 
335  public function wrapGatewayError($text)
336  {
337  return __('Gateway error: %1', $text);
338  }
339 }
convertMessagesToMessage($messages)
Definition: Data.php:183
getOperation($requestType)
Definition: Data.php:238
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
_getUrl($route, $params=[])
Definition: Data.php:91
updateOrderEditIncrements(\Magento\Sales\Model\Order $order)
Definition: Data.php:161
$order
Definition: order.php:55
__()
Definition: __.php:13
endifif( $block->getLastPageNum()>1)( 'Page') ?></strong >< ul class $text
Definition: pager.phtml:43
$message
getTransactionMessage( $payment, $requestType, $lastTransactionId, $card, $amount=false, $exception=false, $additionalMessage=false)
Definition: Data.php:200
$amount
Definition: order.php:14
$payment
Definition: order.php:17
__construct(Context $context, StoreManagerInterface $storeManager, OrderFactory $orderFactory)
Definition: Data.php:74
formatPrice($payment, $amount)
Definition: Data.php:262
getPaymentMethodsHtml(\Magento\Framework\App\ViewInterface $view)
Definition: Data.php:273
getSaveOrderUrlParams($controller)
Definition: Data.php:108
$controller
Definition: info.phtml:14
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
Definition: website.php:18
getRelayUrl($storeId=null)
Definition: Data.php:290