Exemple #1
0
 /**
  * @param string $payuplOrderId
  * @return bool
  */
 public function getOrderIdIfCanRepeat($payuplOrderId = null)
 {
     if ($payuplOrderId && $this->transactionResource->checkIfNewestByPayuplOrderId($payuplOrderId)) {
         return $this->transactionResource->getOrderIdByPayuplOrderId($payuplOrderId);
     }
     return false;
 }
Exemple #2
0
 protected function _prepareSpecificInformation($transport = null)
 {
     /**
      * @var $client \Orba\Payupl\Model\Client
      */
     $transport = parent::_prepareSpecificInformation($transport);
     $orderId = $this->getInfo()->getParentId();
     $status = $this->transactionResource->getLastStatusByOrderId($orderId);
     $client = $this->clientFactory->create();
     $statusDescription = $client->getOrderHelper()->getStatusDescription($status);
     $transport->setData((string) __('Status'), $statusDescription);
     return $transport;
 }
Exemple #3
0
 /**
  * @param string $payuplOrderId
  * @param string $status
  * @param bool $close
  * @throws LocalizedException
  */
 public function updateStatus($payuplOrderId, $status, $close = false)
 {
     /**
      * @var $transaction \Magento\Sales\Model\Order\Payment\Transaction
      */
     $id = $this->transactionResource->getIdByPayuplOrderId($payuplOrderId);
     if (!$id) {
         throw new LocalizedException(new Phrase('Transaction ' . $payuplOrderId . ' not found.'));
     }
     $transaction = $this->transactionRepository->get($id);
     if ($close) {
         $transaction->setIsClosed(1);
     }
     $rawDetailsInfo = $transaction->getAdditionalInformation(\Magento\Sales\Model\Order\Payment\Transaction::RAW_DETAILS);
     $rawDetailsInfo['status'] = $status;
     $transaction->setAdditionalInformation(\Magento\Sales\Model\Order\Payment\Transaction::RAW_DETAILS, $rawDetailsInfo)->save();
 }
 public function testGetLastStatusByOrderSuccess()
 {
     $orderId = 1;
     $status = 'status';
     $resultTableRow = ['additional_information' => serialize([\Magento\Sales\Model\Order\Payment\Transaction::RAW_DETAILS => ['status' => $status]])];
     $this->internalTestGetLastByOrderId($orderId, $resultTableRow);
     $this->assertEquals($status, $this->model->getLastStatusByOrderId($orderId));
 }
Exemple #5
0
 /**
  * @inheritDoc
  */
 public function create($orderId = '', $description = '', $amount = null)
 {
     $realPayuplOrderId = $this->transactionResource->getExtOrderIdByPayuplOrderId($orderId);
     if ($realPayuplOrderId) {
         $posId = $this->orderDataGetter->getPosId();
         $ts = $this->orderDataGetter->getTs();
         $sig = $this->orderDataGetter->getSigForOrderRetrieve(['pos_id' => $posId, 'session_id' => $realPayuplOrderId, 'ts' => $ts]);
         $authData = ['posId' => $posId, 'sessionId' => $realPayuplOrderId, 'ts' => $ts, 'sig' => $sig];
         $getResult = $this->methodCaller->call('refundGet', [$authData]);
         if ($getResult) {
             $createResult = $this->methodCaller->call('refundAdd', [$authData, ['refundsHash' => $getResult->refsHash, 'amount' => $amount, 'desc' => $description, 'autoData' => true]]);
             if ($createResult < 0) {
                 $this->logger->error('Refund error ' . $createResult . ' for transaction ' . $orderId);
             }
             return $createResult === 0;
         }
     }
     return false;
 }
Exemple #6
0
 /**
  * @inheritDoc
  */
 public function processNotification($payuplOrderId, $status, $amount)
 {
     /**
      * @var $result \Magento\Framework\Controller\Result\Raw
      */
     $newest = $this->transactionResource->checkIfNewestByPayuplOrderId($payuplOrderId);
     $this->orderProcessor->processStatusChange($payuplOrderId, $status, $amount, $newest);
     $result = $this->rawResultFactory->create();
     $result->setHttpResponseCode(200)->setContents('OK');
     return $result;
 }
Exemple #7
0
 /**
  * @param \Magento\Payment\Model\InfoInterface $payment
  * @param float $amount
  * @return $this
  */
 public function refund(\Magento\Payment\Model\InfoInterface $payment, $amount)
 {
     /**
      * @var $order \Magento\Sales\Model\Order
      */
     $order = $payment->getOrder();
     $payuplOrderId = $this->transactionResource->getLastPayuplOrderIdByOrderId($order->getId());
     $client = $this->clientFactory->create();
     $client->refundCreate($payuplOrderId, __('Refund for order # %1', $order->getIncrementId()), $amount * 100);
     return $this;
 }
 /**
  * @param \Magento\Sales\Model\Order $order
  * @return bool
  */
 public function validateNoTransactions(\Magento\Sales\Model\Order $order)
 {
     return $this->transactionResource->getLastPayuplOrderIdByOrderId($order->getId()) === false;
 }
 /**
  * @param \Magento\Sales\Model\Order $order
  * @return string
  */
 public function generate(\Magento\Sales\Model\Order $order)
 {
     $try = $this->transactionResource->getLastTryByOrderId($order->getId()) + 1;
     return $order->getIncrementId() . ':' . $this->dateTime->timestamp() . ':' . $try;
 }