public function testShouldRaiseErrorWithUnknownTypes()
 {
     try {
         $object = Payment_Process2_Result::factory('Duck', null, new Payment_Process2_Common());
         $this->fail("Expected an exception");
     } catch (Payment_Process2_Exception $ppe) {
     }
 }
 public function testShouldCreateObjectWithFactory()
 {
     $object = Payment_Process2_Result::factory('Bibit', null, new Payment_Process2_Common());
     $this->assertTrue($object instanceof Payment_Process2_Result_Bibit);
 }
Ejemplo n.º 3
0
 /**
  * Process a payment
  *
  * @return Payment_Process2_Result_ANZ
  */
 public function process()
 {
     // Sanity check
     $this->validate();
     // Prepare the data
     $this->_prepare();
     $request = clone $this->_request;
     $request->setUrl($this->getOption('url'));
     $request->setMethod(HTTP_Request2::METHOD_POST);
     $request->addPostParameter($this->prepareRequestData());
     $response = $request->send();
     if ($response->getStatus() != 200) {
         $error_msg = "Payment Gateway HTTP Error " . $response->getStatus() . " " . $response->getReasonPhrase();
         throw new Payment_Process2_Exception($error_msg);
     }
     $result = Payment_Process2_Result::factory($this->_driver, $response->getBody(), $this);
     $result->parse();
     return $result;
 }
Ejemplo n.º 4
0
 /**
  * Process the (dummy) transaction
  *
  * @return mixed  Payment_Process2_Result instance or PEAR_Error
  */
 function process()
 {
     // Sanity check
     $this->validate();
     return Payment_Process2_Result::factory('Dummy', null, $this);
 }
Ejemplo n.º 5
0
 /**
  * Process the transaction.
  *
  * @return mixed Payment_Process2_Result on success, PEAR_Error on failure
  */
 function process()
 {
     // Sanity check
     $this->validate();
     // Prepare the data
     $this->_prepare();
     $req = clone $this->_request;
     $req->setURL($this->_options['authorizeUri']);
     $req->setMethod('POST');
     $req->addPostParameter($this->prepareRequestData());
     $res = $req->send();
     $this->_processed = true;
     $response = trim($res->getBody());
     $result = Payment_Process2_Result::factory('Transfirst', $response, $this);
     $result->_request = $this;
     $this->_result = $result;
     return $result;
 }
Ejemplo n.º 6
0
 /**
  * Process the transaction.
  *
  * @author Joe Stump <*****@*****.**>
  * @access public
  * @return mixed Payment_Process2_Result on success, PEAR_Error on failure
  */
 function process()
 {
     // Sanity check
     $this->validate();
     // Prepare the data
     $this->_prepare();
     $xml = $this->renderRequestDocument();
     $url = 'https://' . $this->_options['host'] . ':' . $this->_options['port'] . '/LSGSXML';
     $request = clone $this->_request;
     $request->setURL($url);
     $request->addPostParameter($this->prepareRequestData());
     $request->setMethod('post');
     $request->setBody($xml);
     /** If we are empty, raise exception? */
     if (!empty($this->_options['keyfile'])) {
         $request->setConfig('ssl_local_cert', $this->_options['keyfile']);
     }
     // LinkPoint's staging server has a boned certificate. If they are
     // testing against staging we need to turn off SSL host verification.
     if ($this->_options['host'] == 'staging.linkpt.net') {
         $request->setConfig('ssl_verify_peer', false);
         $request->setConfig('ssl_verify_host', false);
     }
     $result = $request->send();
     $responseBody = trim($result->getBody());
     $this->_processed = true;
     $response = Payment_Process2_Result::factory($this->_driver, $responseBody, $this);
     $response->parse();
     return $response;
 }
 public function aResult($case)
 {
     $result = Payment_Process2_Result::factory('TrustCommerce', $this->fetchData($case), new Payment_Process2_Common());
     $result->parse();
     return $result;
 }
Ejemplo n.º 8
0
 /**
  * Process the transaction.
  *
  * @return mixed Payment_Process2_Result on success, PEAR_Error on failure
  */
 function process()
 {
     // Sanity check
     $this->validate();
     // Prepare the data
     $this->_prepare();
     if (empty($this->_payment)) {
         throw new Payment_Process2_Exception("Payment type not set");
     }
     /** @todo Refactor this method, it does two things at once! */
     $fields = $this->prepareRequestData();
     $request = clone $this->_request;
     $request->setURL('https://vault.trustcommerce.com/trans/');
     $request->setMethod('POST');
     $request->addPostParameter($fields);
     $result = $request->send();
     $responseBody = trim($result->getBody());
     $this->_processed = true;
     $response = Payment_Process2_Result::factory($this->_driver, $responseBody, $this);
     $response->parse();
     return $response;
 }
Ejemplo n.º 9
0
 /**
  * Processes the transaction.
  *
  * Success here doesn't mean the transaction was approved. It means
  * the transaction was sent and processed without technical difficulties.
  *
  * @return mixed Payment_Process2_Result on success, PEAR_Error on failure
  * @access public
  */
 function process()
 {
     // Sanity check
     $this->validate();
     // Prepare the data
     $this->_prepare();
     $fields = $this->prepareRequestData();
     $fields['VERSION'] = '3.2';
     $request = clone $this->_request;
     $request->setURL($this->_options['paypalUri']);
     $request->setMethod('post');
     $request->addPostParameter($fields);
     $result = $request->send();
     $responseBody = trim($result->getBody());
     $this->_processed = true;
     $response = Payment_Process2_Result::factory($this->_driver, $responseBody, $this);
     $response->parse();
     $r = $response->isLegitimate();
     if ($r === false) {
         throw new Payment_Process2_Exception('Illegitimate response from gateway');
     }
     $response->action = $this->action;
     return $response;
 }
Ejemplo n.º 10
0
 /**
  * Processes a callback from payment gateway
  *
  * Success here doesn't mean the transaction was approved. It means
  * the callback was received and processed without technical difficulties.
  *
  * @return mixed Payment_Process2_Result on success, PEAR_Error on failure
  */
 function processCallback()
 {
     $this->_responseBody = $_POST;
     $this->_processed = true;
     $response = Payment_Process2_Result::factory($this->_driver, $this->_responseBody);
     $response->_request =& $this;
     $response->parseCallback();
     $r = $response->isLegitimate();
     if ($r === false) {
         throw new Payment_Process2_Exception('Illegitimate callback from gateway.');
     }
     return $response;
 }
Ejemplo n.º 11
0
 /**
  * Process the transaction.
  *
  * @return mixed Payment_Process2_Result on success, PEAR_Error on failure
  */
 function process()
 {
     // Sanity check
     $this->validate();
     // Prepare the data
     $this->_prepare();
     $url = isset($this->_options['live']) ? $this->_options['authorizeUri'] : $this->_options['authorizeTestUri'];
     $request = clone $this->_request;
     $request->setURL($url);
     $request->setBody($this->renderRequestDocument());
     $request->setMethod('put');
     $request->setAuth($this->_data['x_login'], $this->_data['x_password']);
     $result = $request->send();
     $responseBody = trim($result->getBody());
     $this->_processed = true;
     $response = Payment_Process2_Result::factory($this->_driver, $responseBody, $this);
     $response->parse();
     return $response;
 }