web-dev-qa-db-ja.com

Codeigniter ci-merchantライブラリ-authorize.net支払いゲートウェイ統合の問題

Docs http://ci-merchant.org を使用してcodeigniter authorize.net支払いゲートウェイを統合しようとしましたが、Paypalを正常に統合できましたが、残念ながらauthorize.netを実行できませんでした。私が試した以下のコードですが、動作しません、それを行う方法は?

$this->load->library('merchant');
$this->merchant->load('authorize_net_sim');
$settings = array(
'api_login_id' => 'xxxx',
'transaction_key' => 'xxxx',
'test_mode' => true);

$this->merchant->initialize($settings);

$params = array( 
        'amount' => 10, 
        'currency' => 'USD', 
        'card_no' => '4111111111111111', 
        'exp_month' => '12', 
        'exp_year' => '14', 
        'csc' => 123, 
        'first_name' => 'Ashok', 
        'last_name' => 'KS',
        'return_url' => 'http://www.ioss.in/success',
        'cancel_url' => 'http://www.ioss.in/cancel'    
        );
$response = $this->merchant->purchase($params);   

print_r($response)は以下を返します。

Merchant_response Object (
    [_status:protected] => failed
    [_message:protected] =>
    [_reference:protected] =>
    [_data:protected] =>
    [_redirect_url:protected] =>
    [_redirect_method:protected] => GET
    [_redirect_message:protected] =>
    [_redirect_data:protected] =>
)

コードを変更した後、UPDATE 1、正常に動作しています...

$params = array(
'amount' => 10.00,
'currency' => 'USD',
'return_url' => 'http://www.ioss.in',
'cancel_url' => 'http://www.google.in');
2
Ashok KS

コメントによると、$responseがエラーメッセージなしで失敗する場合は、一般に、暗号化されていない(HTTPSを使用しない)クレジットカードの詳細を送信しようとしているためです。

この場合、Auth.net SIMゲートウェイはオフサイトゲートウェイであるため、クレジットカードの詳細は必要ありません(カードの詳細はサイトに入力されません)。 $ requestをこれに変更すると、問題が修正されました。

$params = array(
    'amount' => 10.00,
    'currency' => 'USD',
    'return_url' => 'http://www.ioss.in',
    'cancel_url' => 'http://www.google.in',
);

さらに、Authorize.net開発者エンドポイントを使用するには、ゲートウェイ設定でdeveloper_modetrueに設定する必要があります。これはtest_mode(Auth.net固有の機能)とは異なります。

$settings = array(
    'api_login_id' => 'xxxx',
    'transaction_key' => 'xxxx',
    'developer_mode' => true,
);
$this->merchant->initialize($settings);
1
Adrian Macneil