Magento如何为Authorize.net保存信用卡详细信息

Magento如何为Authorize.net保存信用卡详细信息,magento,Magento,我在我的magento网站上使用authorize.net payment gate。我想对以前收到的订单进行自动重新排序。我在管理员中设置了计划功能,可以通过该功能计划订单,但我想在客户单击“authorize.net payment”部分中的时保存客户的付款详细信息。是否要保存卡详细信息以重新排序此订单?。或者,当他点击订单回顾部分下订单时。 你怎么能这么做?我在OnepageController.php中尝试了以下代码,方法是在local中重写它: <?php require_on

我在我的magento网站上使用authorize.net payment gate。我想对以前收到的订单进行自动重新排序。我在管理员中设置了计划功能,可以通过该功能计划订单,但我想在客户单击“authorize.net payment”部分中的时保存客户的付款详细信息。是否要保存卡详细信息以重新排序此订单?。或者,当他点击订单回顾部分下订单时。 你怎么能这么做?我在OnepageController.php中尝试了以下代码,方法是在local中重写它:

<?php

require_once "Mage/Checkout/controllers/OnepageController.php";

class Supplycity_Checkout_OnepageController extends Mage_Checkout_OnepageController
{
    public function savePaymentAction()
    {
        if ($this->_expireAjax()) {
            return;
        }
        try {
            if (!$this->getRequest()->isPost()) {
                $this->_ajaxRedirectResponse();
                return;
            }

            $data = $this->getRequest()->getPost('payment', array());
        if(Mage::getSingleton('customer/session')->isLoggedIn()) {

     $customerData = Mage::getSingleton('customer/session')->getCustomer();
      $data['customerid']= $customerData->getId();
      $dedata=json_decode(json_encode($data));
          if($data['isreorder']==2)
                {
          //Mage::getSingleton('customer/session')->setIsreorder("1");
            $connection = Mage::getSingleton('core/resource')
            ->getConnection('core_write');
            $connection->beginTransaction();
            $fields = array();
            $fields['customerid']=$customerData->getId();
            $fields['cc_type']=$dedata->cc_type;
            $fields['cc_number']=base64_decode($dedata->cc_number);
            $fields['cc_exp_month']=$dedata->cc_exp_month;
            $fields['cc_exp_year']=$dedata->cc_exp_year;
            $fields['method']=$dedata->method;
                    $fields['cc_owner']=$dedata->cc_owner;
            $fields['cc_cid']=$dedata->cc_cid; 
            $connection->insert('reorder_payement', $fields);
            $connection->commit();
        }

        }

            $result = $this->getOnepage()->savePayment($data);
       //  print_r($data);die();
            // get section and redirect data
            $redirectUrl = $this->getOnepage()->getQuote()->getPayment()->getCheckoutRedirectUrl();
            if (empty($result['error']) && !$redirectUrl) {
                $this->loadLayout('checkout_onepage_review');
                $result['goto_section'] = 'review';
                $result['update_section'] = array(
                    'name' => 'review',
                    'html' => $this->_getReviewHtml()
                );
            }
            if ($redirectUrl) {
                $result['redirect'] = $redirectUrl;
            }


        } catch (Mage_Payment_Exception $e) {
            if ($e->getFields()) {
                $result['fields'] = $e->getFields();
            }
            $result['error'] = $e->getMessage();
        } catch (Mage_Core_Exception $e) {
            $result['error'] = $e->getMessage();
        } catch (Exception $e) {
            Mage::logException($e);
            //$result['error'] = $this->__('Unable to set Payment Method.');
      $result['error'] = $e->getMessage();
        }
        $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
    }

}

例如,如果您的公司不符合“pci标准”,则无法保存此类数据。这是法律禁止的。好的,谢谢你,但我如何才能获得“PCI兼容”,这样我就可以了解细节了。此外,还有没有其他方法来安排订单,这些订单会在一段时间后自动下订单?至于“PCI兼容”,则取决于您所在的国家。至于日程安排订单,您可以使用第三方公司保存此类订单,并在获得token后对保存的数据执行某些操作。好的,谢谢您能推荐与magento 1.8.1兼容的此类工具吗?您已经有了它,它正在保留此类数据,只需使用它们的API()即可:)