2010-04-22 4 views
2

У меня возникла проблема с получением authorize.net для выполнения транзакций по кредитным картам из моего приложения rails.Проблемы с API login/trans key с ActiveMerchant и Authorize.net

Вот что в моем environment.rb

if ENV['RAILS_ENV'] != 'production' 
    ::GATEWAY = gateway = ActiveMerchant::Billing::Base.gateway(:authorize_net).new(
     :login => "scrubbed", 
     :password => "scrubbed") 
    else 
    ::GATEWAY = gateway = ActiveMerchant::Billing::Base.gateway(:authorize_net).new(
     :login => "scrubbed", 
     :password => "scrubbed", :test => 'true') 
    end 

Я следую Райан Бейтс Railscast для интеграции - это то, что в модели порядка

def purchase 
    response = GATEWAY.purchase(price_in_cents, credit_card, purchase_options) 
    transactions.create!(:action => "purchase", :amount => price_in_cents, :response => response) 
    cart.update_attribute(:purchased_at, Time.now) if response.success? 
    response.success? 
    end 

я уже отлаживается, и все, кажется, правильно отправлено, но оно возвращает следующую ошибку:

GATEWAY.purchase(price_in_cents, credit_card, purchase_options)#<ActiveMerchant::Billing::Response:0x1066efda0 @fraud_review=false, @params={"response_reason_text"=>"The merchant login ID or password is invalid or the account is inactive.", "transaction_id"=>"0", "response_code"=>3, "response_reason_code"=>"13", "avs_result_code"=>"P", "card_code"=>nil}, @message="The merchant login ID or password is invalid or the account is inactive", @avs_result={"code"=>"P", "postal_match"=>"Y", "street_match"=>"N", "message"=>"Postal code matches, but street address not verified."}, @test=true, @authorization="0", @success=false, @cvv_result={"code"=>nil, "message"=>nil}> 

Я проверил ключ API и ключ Trans и оба правильные. Authorize.net установлен в режим тестирования на их конце, но я не думаю, что должно вызывать проблемы ...

любая помощь будет принята с благодарностью ...

+0

, что весь ваш «response.message»? – Salil

ответ

2

Поскольку я не могу увидеть, что URL вы отправляете свои транзакции, поэтому сложно сказать, в чем проблема.

Если вы используете живой сервер в тестовом режиме, вы должны использовать свои учетные данные. Они отличаются от имени входа и пароля учетной записи, которые вы используете для входа в панель управления.

Если у вас есть учетная запись разработчика, она работает только при использовании тестового сервера. Использование учетных данных вашего разработчика на реальном сервере, даже если оно находится в тестовом режиме, не будет работать.

+0

Это живой сервер в режиме реального времени. Я использую api и trans key, сгенерированные на панели управления authorize.net. В прошлом я интегрировал AN w/cakePHP, symfony, PHP и Rails, поэтому я знаком с процедурой - что-то странное происходит, хотя и не совсем точно ... – BandsOnABudget

+0

на самом деле - только что понял - ActiveMerchant :: Billing :: Base.mode =: test необходимо удалить - это вызывает проблемы с Authorize.net. Просто примечание - это, вероятно, не вызовет проблемы в производстве - просто в разработке ... в любом случае - спасибо за предложения ... – BandsOnABudget

0

Удаление ActiveMerchant :: Billing :: Base.mode =: тест работал для меня. Я просто установить: тест => верно при создании шлюза

::PAYMENT_GATEWAY = ActiveMerchant::Billing::AuthorizeNetGateway.new(:login => SiteCredentials.authorize_net_api_login, :password => SiteCredentials.authorize_net_api_transaction_key, :test => true)

Смежные вопросы