public function postProcess(Axis_Sales_Model_Order_Row $order) { $number = $this->getCreditCard()->getCcNumber(); switch (Axis::config("payment/{$order->payment_method_code}/saveCCAction")) { case 'last_four': $number = str_repeat('X', strlen($number) - 4) . substr($number, -4); break; case 'first_last_four': $number = substr($number, 0, 4) . str_repeat('X', strlen($number) - 8) . substr($number, -4); break; case 'partial_email': $number = substr($number, 0, 4) . str_repeat('X', strlen($number) - 8) . substr($number, -4); try { $mail = new Axis_Mail(); $mail->setLocale(Axis::config('locale/main/language_admin')); $mail->setConfig(array('subject' => Axis::translate('sales')->__('Order #%s. Credit card number'), 'data' => array('text' => Axis::translate('sales')->__('Order #%s, Credit card middle digits: %s', $order->number, substr($number, 4, strlen($number) - 8))), 'to' => Axis_Collect_MailBoxes::getName(Axis::config('sales/order/email')))); $mail->send(); } catch (Zend_Mail_Transport_Exception $e) { } break; case 'complete': $number = $number; break; default: return true; } $crypt = Axis_Crypt::factory(); $data = array('order_id' => $order->id, 'cc_type' => $crypt->encrypt($card->getCcType()), 'cc_owner' => $crypt->encrypt($card->getCcOwner()), 'cc_number' => $crypt->encrypt($number), 'cc_expires_year' => $crypt->encrypt($card->getCcExpiresYear()), 'cc_expires_month' => $crypt->encrypt($card->getCcExpiresMonth()), 'cc_cvv' => Axis::config()->payment->{$order->payment_method_code}->saveCvv ? $crypt->encrypt($card->getCcCvv()) : '', 'cc_issue_year' => $crypt->encrypt($card->getCcIssueYear()), 'cc_issue_month' => $crypt->encrypt($card->getCcIssueMonth())); Axis::single('sales/order_creditcard')->save($data); }
public function setData($name, $value) { $crypt = Axis_Crypt::factory(); $value = empty($value) ? null : $crypt->encrypt($value); $this->_data[$name] = $value; return $this; }
/** * * @return Axis_Crypt_Interface */ public function getHandler() { if (empty($this->_handler)) { $this->_handler = Axis_Crypt::factory(); } return $this->_handler; }
/** * @param Axis_Sales_Model_Order_Row $order * @return bool */ public function postProcess(Axis_Sales_Model_Order_Row $order) { if ($this->_config->authorizationType === 'Authorize') { $response = $this->_authorize($order); } else { $response = $this->_capture($order); } if (self::APPROVED != $response->getResponseCode()) { $message = sprintf("Authorize.Net Error:\n\tResponse Reason Code: %s;\n\tResponse Code: %s;\n\tResponse Reson Text: %s", $response->getResponseReasonCode(), $response->getResponseCode(), $response->getResponseReasonText()); $order->setStatus('failed', $message); $this->log($message); throw new Axis_Exception($response->getResponseReasonText()); } $this->getRequest()->setLastTransId($response->getTransactionId()); $crypt = Axis_Crypt::factory(); $cc = $this->getCreditCard(); $ccNumber = $cc->getCcNumber(); $ccNumber = substr($ccNumber, 0, 4) . str_repeat('X', strlen($ccNumber) - 8) . substr($ccNumber, -4); Axis::single('paymentAuthorizenetAim/standard_order')->insert(array('order_id' => $order->id, 'trans_id' => $this->getRequest()->getLastTransId(), 'cc_type' => $crypt->encrypt($cc->getCcType()), 'cc_owner' => $crypt->encrypt($cc->getCcOwner()), 'cc_number' => $crypt->encrypt($ccNumber), 'cc_expires' => $crypt->encrypt($cc->getCcExpiresMonth() . '/' . $cc->getCcExpiresYear()), 'cc_issue' => $crypt->encrypt($cc->getCcIssueMonth() . '/' . $cc->getCcIssueYear()), 'x_type' => $this->getRequest()->getAnetTransType(), 'x_method' => $this->getRequest()->getAnetTransMethod())); }
/** * * @param string $value * @return string */ public static function getConfig($value) { return Axis_Crypt::factory()->decrypt($value); }