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');
コメントによると、$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_mode
をtrue
に設定する必要があります。これはtest_mode
(Auth.net固有の機能)とは異なります。
$settings = array(
'api_login_id' => 'xxxx',
'transaction_key' => 'xxxx',
'developer_mode' => true,
);
$this->merchant->initialize($settings);