Exemple #1
0
 /**
  * Record transaction information pending
  * $input isn't used here becuase the DPM method uses the post data directly off the global $_POST
  */
 public function pendingPayment(\Jazzee\Entity\Payment $payment, \Foundation\Form\Input $input)
 {
     $input = false;
     $response = new \AuthorizeNetSIM($this->_paymentType->getVar('gatewayId'), $this->_paymentType->getVar('gatewayHash'));
     if ($response->isAuthorizeNet()) {
         if ($response->approved) {
             $payment->setAmount($response->amount);
             $payment->setVar('transactionId', $response->transaction_id);
             $payment->setVar('authorizationCode', $response->authorization_code);
             $payment->pending();
             return true;
         } else {
             $payment->setAmount($response->amount);
             $payment->setVar('transactionId', $response->transaction_id);
             $payment->setVar('rejectedReasonCode', $response->response_reason_code);
             $payment->setVar('rejectedReason', $response->response_reason_text);
             $payment->rejected();
             return true;
         }
     }
     return false;
 }
Exemple #2
0
 /**
  * Void a transaction before it is settled
  */
 public function rejectPayment(\Jazzee\Entity\Payment $payment, \Foundation\Form\Input $input)
 {
     $payment->rejected();
     $payment->setVar('rejectedReason', $input->get('rejectedReason'));
     return true;
 }
Exemple #3
0
 /**
  * Void a transaction before it is settled
  */
 public function rejectPayment(\Jazzee\Entity\Payment $payment, \Foundation\Form\Input $input)
 {
     $aim = new \AuthorizeNetAIM($this->_paymentType->getVar('gatewayId'), $this->_paymentType->getVar('gatewayKey'));
     $aim->setSandBox($this->_paymentType->getVar('testAccount'));
     //test accounts get sent to the sandbox
     $aim->test_request = $this->_controller->getConfig()->getStatus() == 'PRODUCTION' ? 0 : 1;
     $response = $aim->void($payment->getVar('transactionId'));
     if ($response->approved) {
         $payment->rejected();
         $payment->setVar('rejectedReason', $input->get('rejectedReason'));
         return true;
     }
     //if we cant void we are probably already settled so try and settle the payment in our system
     $settled = $this->settlePayment($payment, $input);
     if ($settled === true) {
         return 'Cannot void payment becuase it has already been settled.';
     }
     //otherwise return the original error
     return "Unable to submit void for transaction #{$payment->getVar('transactionId')} authorize.net said: " . $response->getMessageText();
 }