2011-02-24 4 views
3

通貨タイプに関してこの質問がありましたが、別のクレジットカードタイプの2番目のAuthorize.netアカウントを同じ店舗で設定する方法があります。したがって、いくつかのクレジットカードでは最初のメインのAuthorize.netゲートウェイを使用し、他のカードでは2つ目のAuthorize.netアカウントを使用して支払いを2つの異なる銀行口座にルーティングできるようにします。これは和解のためであり、制約です。変更することはできません。Magento複数のAuthorize.netゲートウェイ

注文が提出されたら(ただし、APIを介してAuthorize.netに送信される前に)どのカードの種類であるかを把握し、どの資格情報を渡すかを知ることが必要であることがわかっていますAPIを使用していますが、このコードをどこに追加するか、またはそれを追加するための最良の方法についてはわかりません。

洞察力や助言をいただければ幸いです。

答えて

3

デフォルトでは、これを行う方法はないため、カスタムコードを使用する必要があります。具体的には、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 
} 

これを達成するには、バックエンドに新しいオプションを作成して、暗号化された形式でクレデンシャルを保持することも必要です。希望が助けてくれる!

おかげで、 ジョー

+0

こんにちはジョー - このためのおかげで - それは完全に理にかなっています。バックエンドに新しいオプションを作成する必要があると言うと、すでに存在するものを複製するだけで十分でしょうか(もちろん、別の名前を使用します)。 – mattbryanswan

+0

はい、そのトリックを行う必要があります。暗号化して安全であることを確認してください。 –

関連する問題