Magento Несколько шлюзов Authorize.net - PullRequest
3 голосов
/ 24 февраля 2011

Я видел этот вопрос в отношении типа валюты, но я спрашиваю, как настроить вторую учетную запись Authorize.net в том же магазине для другого типа кредитной карты.Итак, мы хотим, чтобы некоторые кредитные карты использовали первый основной шлюз Authorize.net, а другие - вторичную учетную запись Authorize.net, чтобы платежи могли перенаправляться на два разных банковских счета.Это в целях примирения и является ограничением;не может быть изменено.

Я полагаю, что все, что мне нужно сделать, это выяснить, как только заказ был отправлен (но до того, как он был отправлен через API на Authorize.net), какой тип карты это, чтобы узнать, какие учетные данные передавать в API, но я не уверен относительно того, где добавить этот код, или как лучше всего его добавить.

Буду очень признателен за любые идеи или советы.

1 Ответ

3 голосов
/ 25 февраля 2011

По умолчанию этого не существует, поэтому вам нужно будет использовать некоторый пользовательский код. В частности, переопределите класс оплаты Authnet Mage_Paygate_Model_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
}

Для этого вам также понадобится создать новые опции в бэкэнде для хранения учетных данных в зашифрованном виде. Надеюсь, это поможет!

Спасибо, Джо

...