示例#1
0
 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);
 }
示例#2
0
 public function setData($name, $value)
 {
     $crypt = Axis_Crypt::factory();
     $value = empty($value) ? null : $crypt->encrypt($value);
     $this->_data[$name] = $value;
     return $this;
 }
示例#3
0
 /**
  *
  * @return Axis_Crypt_Interface 
  */
 public function getHandler()
 {
     if (empty($this->_handler)) {
         $this->_handler = Axis_Crypt::factory();
     }
     return $this->_handler;
 }
示例#4
0
 /**
  * @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()));
 }
示例#5
0
 /**
  *
  * @param string $value
  * @return string
  */
 public static function getConfig($value)
 {
     return Axis_Crypt::factory()->decrypt($value);
 }