/** * @param Mage_Sales_Model_Order $order * @param Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus * @return void */ public function updateByTransactionStatus(Mage_Sales_Model_Order $order, Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus) { // Update Status of Transaction $order->setPayoneTransactionStatus($transactionStatus->getTxaction()); // Update dunning status if ($transactionStatus->getReminderlevel()) { $order->setPayoneDunningStatus($transactionStatus->getReminderlevel()); } // Status mapping of Order by Transaction Status $statusMapping = $this->getConfigStore()->getGeneral()->getStatusMapping(); $txAction = $transactionStatus->getTxaction(); /** * @var $paymentMethod Payone_Core_Model_Payment_Method_Abstract */ $paymentMethod = $order->getPayment()->getMethodInstance(); $type = $paymentMethod->getMethodType(); // Mapping $mapping = $statusMapping->getByType($type); if (!is_array($mapping) or !array_key_exists($txAction, $mapping)) { return; } // Check for valid Mapping $mappingOrderState = $mapping[$txAction]; if (!is_array($mappingOrderState) or !array_key_exists('status', $mappingOrderState) or !array_key_exists('state', $mappingOrderState)) { return; } // Get State / Status and set to Order $newOrderState = $mappingOrderState['state']; $newOrderStatus = $mappingOrderState['status']; if ($newOrderState != '') { $order->setState($newOrderState, $newOrderStatus); } else { $order->setStatus($newOrderStatus); } }
/** * @param Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus * @return bool */ public function forward(Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus) { $currentTxAction = $transactionStatus->getTxaction(); $config = $this->getConfigForwarding()->getConfig($currentTxAction); foreach ($config as $configHost) { $response = $this->forwardToHost($configHost, $transactionStatus); } if ($this->hasExceptions()) { return false; } return true; }
/** * @param Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus * @return Payone_Core_Model_Domain_Transaction */ public function updateByTransactionStatus(Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus) { $transaction = $this->getFactory()->getModelTransaction(); $transaction->load($transactionStatus->getTxid(), 'txid'); $data = $transactionStatus->getData(); unset($data['id']); unset($data['created_at']); unset($data['updated_at']); unset($data['processed_at']); unset($data['processing_status']); $transaction->setLastTxaction($transactionStatus->getTxaction()); $transaction->setLastSequencenumber($transactionStatus->getSequencenumber()); $transaction->addData($data); $transaction->save(); return $transaction; }
/** * @param Mage_Sales_Model_Order $order * @param Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus */ public function addByTransactionStatus(Mage_Sales_Model_Order $order, Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus) { if ($transactionStatus->isAppointed()) { $comment = 'PAYONE accepted the payment-request.'; } elseif ($transactionStatus->isCapture()) { $comment = 'PAYONE confirmed the collection.'; } elseif ($transactionStatus->isPaid()) { $comment = 'PAYONE confirmed the payment receipt.'; } elseif ($transactionStatus->isUnderpaid()) { $comment = 'PAYONE confirmed the payment receipt. There is an underpayment.'; } elseif ($transactionStatus->isCancelation()) { $comment = 'The payment was rejected.'; } elseif ($transactionStatus->isRefund()) { $comment = 'PAYONE confirmed the credit.'; } elseif ($transactionStatus->isDebit()) { $comment = 'PAYONE confirmed the claim.'; } elseif ($transactionStatus->isReminder()) { $comment = 'The dunning status was updated, status is %s'; } elseif ($transactionStatus->isTransfer()) { $comment = 'Transactionstatus: transfer'; } elseif ($transactionStatus->isVauthorization()) { $comment = 'Transactionstatus: vauthorization'; } elseif ($transactionStatus->isVsettlement()) { $comment = 'Transactionstatus: vsettlement'; } elseif ($transactionStatus->isInvoice()) { $comment = 'Transactionstatus: invoice'; } else { $comment = $transactionStatus->getTxaction(); } $this->addCommentToOrder($order, $comment); }