/**
  * Do the necessary magic to process this transaction via the Moneris API.
  *
  * @param Moneris_Transaction $transaction
  * @return Moneris_Result
  */
 public static function process(Moneris_Transaction $transaction)
 {
     if (!$transaction->is_valid()) {
         $result = new Moneris_Result($transaction);
         $result->was_successful(false);
         $result->error_code(Moneris_Result::ERROR_INVALID_POST_DATA);
         return $result;
     }
     $response = self::_call_api($transaction);
     return $transaction->validate_response($response);
 }
 /**
  * Was this transaction a huge success?
  *
  * @param SimpleXMLElement $response
  * @return Moneris_Result
  */
 public function validate_response(SimpleXMLElement $response)
 {
     $this->response($response);
     $result = Moneris_Result::factory($this);
     $result->validate_response();
     return $result;
 }