Magento多个授权.net网关
我看到过关于货币类型的问题,但我要问的是如何在同一商店中为不同的信用卡类型配置第二个Authorize.net帐户。因此,我们希望一些信用卡使用第一个主Authorize.net网关,但其他信用卡使用第二个Authorize.net帐户,以便将付款路由到两个不同的银行帐户。这是为了和解,是一种约束;不能修改 我想,我所需要做的就是在订单提交后(但在通过API发送给.net授权之前)确定它是哪种卡类型,知道要传递给API的凭据,但我不确定在何处添加此代码,或者添加此代码的最佳方式Magento多个授权.net网关,magento,payment-gateway,authorize.net,Magento,Payment Gateway,Authorize.net,我看到过关于货币类型的问题,但我要问的是如何在同一商店中为不同的信用卡类型配置第二个Authorize.net帐户。因此,我们希望一些信用卡使用第一个主Authorize.net网关,但其他信用卡使用第二个Authorize.net帐户,以便将付款路由到两个不同的银行帐户。这是为了和解,是一种约束;不能修改 我想,我所需要做的就是在订单提交后(但在通过API发送给.net授权之前)确定它是哪种卡类型,知道要传递给API的凭据,但我不确定在何处添加此代码,或者添加此代码的最佳方式 如果您有任何见解
如果您有任何见解或建议,我们将不胜感激。默认情况下,这是无法实现的,因此您需要使用一些自定义代码。具体来说,覆盖Authnet支付类
Mage\u Paygate\u Model\u Authorizenet
:
class MyNamespace_MyModule_Model_Authorizenet extends Mage_Paygate_Model_Authorizenet {
/**
* Prepare request to gateway
*
* @link http://www.authorize.net/support/AIM_guide.pdf
* @param Mage_Sales_Model_Document $order
* @return unknown
*/
protected function _buildRequest(Varien_Object $payment)
//see below
}
}
在该函数的第277行,执行以下代码来设置Authnet帐户:
$request->setXLogin($this->getConfigData('login'))
->setXTranKey($this->getConfigData('trans_key'))
->setXType($payment->getAnetTransType())
->setXMethod($payment->getAnetTransMethod());
相反,您需要的是以下内容:
if(whatever cc type) {
// set alternate gateway
} else {
// set default gateway
}
要实现这一点,您还需要在后端创建新选项,以加密形式保存凭据。希望有帮助
谢谢,
乔嗨,乔-谢谢你的帮助-这完全有道理。当你说我需要在后端创建新选项时,你会说复制已经存在的内容就足够了(当然,使用不同的名称)?是的,这应该可以做到。确保在输入数据的过程中对数据进行加密,以确保其安全。