Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Pro.php
Go to the documentation of this file.
1 <?php
7 
14 {
20  protected $_apiType = \Magento\Paypal\Model\Api\PayflowNvp::class;
21 
27  protected $_configType = \Magento\Paypal\Model\Config::class;
28 
32  const TRANSPORT_PAYFLOW_TXN_ID = 'payflow_trxid';
33 
41  public function refund(\Magento\Framework\DataObject $payment, $amount)
42  {
43  $captureTxnId = $this->_getParentTransactionId($payment);
44  if ($captureTxnId) {
45  $api = $this->getApi();
46  $api->setAuthorizationId($captureTxnId);
47  }
48  parent::refund($payment, $amount);
49  }
50 
56  protected function _isCaptureNeeded()
57  {
58  return true;
59  }
60 
67  protected function _getParentTransactionId(\Magento\Framework\DataObject $payment)
68  {
69  if ($payment->getParentTransactionId()) {
70  return $this->transactionRepository->getByTransactionId(
71  $payment->getParentTransactionId(),
72  $payment->getId(),
73  $payment->getOrder()->getId()
74  )->getAdditionalInformation(
75  self::TRANSPORT_PAYFLOW_TXN_ID
76  );
77  }
78  return $payment->getParentTransactionId();
79  }
80 
88  protected function _importCaptureResultToPayment($api, $payment)
89  {
90  $payment->setTransactionId(
91  $api->getPaypalTransactionId()
92  )->setIsTransactionClosed(
93  false
94  )->setTransactionAdditionalInfo(
95  self::TRANSPORT_PAYFLOW_TXN_ID,
96  $api->getTransactionId()
97  );
98  $payment->setPreparedMessage(__('Payflow PNREF: #%1.', $api->getTransactionId()));
99  $this->_infoFactory->create()->importToPayment($api, $payment);
100  }
101 
111  public function fetchTransactionInfo(\Magento\Payment\Model\InfoInterface $payment, $transactionId)
112  {
113  throw new \Magento\Framework\Exception\LocalizedException(
114  __('Unable to fetch transaction details.')
115  );
116  }
117 
126  protected function _importRefundResultToPayment($api, $payment, $canRefundMore)
127  {
128  $payment->setTransactionId(
129  $api->getPaypalTransactionId()
130  )->setIsTransactionClosed(
131  1 // refund initiated by merchant
132  )->setShouldCloseParentTransaction(
133  !$canRefundMore
134  )->setTransactionAdditionalInfo(
135  self::TRANSPORT_PAYFLOW_TXN_ID,
136  $api->getTransactionId()
137  );
138  $payment->setPreparedMessage(__('Payflow PNREF: #%1.', $api->getTransactionId()));
139  $this->_infoFactory->create()->importToPayment($api, $payment);
140  }
141 }
_getParentTransactionId(\Magento\Framework\DataObject $payment)
Definition: Pro.php:67
_importCaptureResultToPayment($api, $payment)
Definition: Pro.php:88
__()
Definition: __.php:13
$amount
Definition: order.php:14
$payment
Definition: order.php:17
refund(\Magento\Framework\DataObject $payment, $amount)
Definition: Pro.php:41
_importRefundResultToPayment($api, $payment, $canRefundMore)
Definition: Pro.php:126
fetchTransactionInfo(\Magento\Payment\Model\InfoInterface $payment, $transactionId)
Definition: Pro.php:111