protected function _logResponseException(Exception $e)
 {
     if ($e instanceof \Payin7Payments\Exception\Payin7APIException) {
         $response = $e->getResponse();
         $code = $response->getStatusCode();
         $body = $response->getBody();
         $this->_logger->logError("[API SERVER ERROR] Status Code: {$code} | Body: {$body}");
     } else {
         $this->_logger->logError("[API SERVER ERROR] " . $e->getMessage() . ', Code: ' . $e->getCode());
     }
 }
 /**
  * @param Mage_Sales_Model_Order $order
  * @return $this
  * @throws Mage_Core_Exception
  * @internal param $amount
  */
 protected function _callPostOrder($order)
 {
     /** @var Payin7_Payments_Helper_Data $phelper */
     $phelper = Mage::helper('payin7payments');
     /** @var Mage_Core_Helper_Http $core_http */
     //$core_http = Mage::helper('core/http');
     // mark as customer NOT notified as really it has not been
     $order->setCustomerNoteNotify(false);
     /** @noinspection PhpUndefinedMethodInspection */
     $order->getPayment()->setSkipOrderProcessing(true);
     $source = Mage::app()->getStore()->isAdmin() ? 'backend' : 'frontend';
     $ordered_by_ip_address = \Payin7Payments\StringUtils::getIpAddress();
     // magento integrated method does not return the proper IP address when it has been forwarded (e.g. server is behind a proxy gw - haproxy)
     //$core_http->getRemoteAddr();
     $locale = Mage::app()->getLocale()->getLocaleCode();
     /** @var Payin7_Payments_Model_Remote_Order_Submit $order_submit */
     $order_submit = Mage::getModel('payin7payments/remote_order_submit');
     $order_submit->setSysinfo($phelper->getSysinfo());
     $order_submit->setOrderedByIpAddress($ordered_by_ip_address);
     $order_submit->setSource($source);
     $order_submit->setOrder($order);
     $order_submit->setLanguageCode($locale);
     try {
         // force submit it to update any statuses locally
         $status = $order_submit->submitOrder(true);
         if (!$status) {
             throw new Exception(Mage::helper('payin7payments')->__('Payment could not be completed. Please try again later'));
         }
     } catch (\Payin7Payments\Exception\ClientErrorResponseException $e) {
         Mage::throwException($e->getFullServerErrorMessage());
     } catch (Exception $e) {
         $this->_logger->logError('Submit order failure: ' . $e);
         Mage::throwException(Mage::helper('payin7payments')->__('Payment could not be completed. Please try again later'));
     }
     return $this;
 }