/**
  * @param Varien_Object $payment
  * @param float         $amount
  *
  * @return $this
  */
 public function order(Varien_Object $payment, $amount)
 {
     parent::order($payment, $amount);
     /** @var Mage_Sales_Model_Order_Payment $payment */
     $order = $payment->getOrder();
     /** @var Rede_ClickPag_Model_Processor $processor */
     $processor = $this->_processor();
     $processor->setOrder($order);
     $validation = $this->_validateOrderParameters($processor->getOrderParams());
     if ($validation !== true) {
         Mage::throwException($validation);
     }
     $this->getApi()->request();
     $body = $this->getApi()->getBody();
     if ($this->getApi()->getResult()->getStatus() !== 201) {
         $errors = array();
         foreach ($body as $error) {
             $errors[] = $this->_helper()->__($error['message']);
         }
         Mage::throwException(implode("\n", $errors));
     }
     if (!isset($body['id']) || empty($body['id'])) {
         Mage::throwException($this->_helper()->__('Some error has occurred when trying to process your payment.'));
     }
     /** @var Rede_ClickPag_Model_Payments $payments */
     $payments = Mage::getModel('rede_clickpag/payments');
     $payments->setOrderId($order->getId());
     $payments->setOrderIncrementId($order->getIncrementId());
     $payments->setPaymentId($body['id']);
     try {
         $payments->save();
         $this->_getSession()->setLastTransaction($payments);
         $this->_getCheckoutSession()->setData('payment_id', $payments->getPaymentId());
     } catch (Exception $e) {
         Mage::logException($e);
         $this->_logger()->finishTransactionLog($order->getRealOrderId());
         Mage::throwException($this->_helper()->__('Some error occurred when trying to save the payment data.'));
     }
     return $this;
 }
 /**
  * Order payment abstract method
  *
  * @param Mage_Sales_Model_Order_Payment|Varien_Object $payment
  * @param float $amount
  * @return Payin7_Payments_Model_Payin7daysPaymentMethod
  */
 public function order(Varien_Object $payment, $amount)
 {
     parent::order($payment, $amount);
     /** @var Payin7_Payments_Helper_Data $phelper */
     $phelper = Mage::helper('payin7payments');
     $order = $payment->getOrder();
     // if it's a sandbox order mark it as such
     $is_sandbox = $phelper->getApiSandboxEnabled();
     if ($is_sandbox) {
         $order->setData('payin7_sandbox_order', true);
     }
     $this->_callPostOrder($order);
     return $this;
 }