/** * 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; }
/** * 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; }
/** * 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(); }