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