Почему моя транзакция authorize.net успешна, но сообщает о сбое? - PullRequest
3 голосов
/ 17 февраля 2012

Я использую Authorize.net с Rails на Heroku.Я создал форму для отправки запроса на Authorize.net, используя онлайн-примеры, такие как:

https://developer.authorize.net/integration/fifteenminutes/ruby

Я создал учетную запись на Authorize.net и создал форму, котораяотправляет authorize.net следующим образом (в хамле):

%h3 Enter your credit card details
= form_for :sim_transaction, :url => @gateway_url do |f|
  = sim_fields(@sim_transaction)
  = order_details(@order)
  .fields
    .field
      = label_tag 'x_card_num', 'Credit Card Number'
      = text_field_tag 'x_card_num', params[:x_card_num], :style => 'width:200px'
    .field
      = label_tag 'x_exp_date', 'Expiration Date (MMYY)'
      = text_field_tag 'x_exp_date', params[:x_exp_date], :style => 'width:40px'
    .action
      = f.submit 'Confirm order'

Order_details - это вспомогательный метод, который создает скрытые поля для имени, фамилии и т. д. Из заказа на покупку.

При отправке заказа, обработанного authorize.net и кредитной картой пользователя, взимается плата, но POST для ответа на эстафету указывает на то, что sim_response не выполнен и не был обработан.

if **sim_response.success?**(AUTHORIZE_NET_CONFIG['api_login_id'], AUTHORIZE_NET_CONFIG['merchant_hash_value'])
  render :text => sim_response.direct_post_reply(payments_receipt_url(:only_path => false), :include => true)
else
  render
end

sim_response.success?звонок ложныйИли, более конкретно, есть два теста в методе успеха и этой части успеха?Метод ложен:

sim_response.valid_md5?(AUTHORIZE_NET_CONFIG['api_login_id'], AUTHORIZE_NET_CONFIG['merchant_hash_value'])

Код результата, который я получаю, равен «1», что означает, что транзакция была обработана.Это тоже текст, который я вижу.

Из моего исследования метод valid_md5 происходит только тогда, когда есть неправильный api_login_id, но я не думаю, что это так.Будет ли транзакция успешной, если login_id был неверным?Любые другие предложения для отслеживания этого?

1 Ответ

5 голосов
/ 17 февраля 2012

Это была глупая ошибка с моей стороны, но это было легко сделать. Итак, я выкладываю это здесь.

У меня в конфиге было значение MD5_hash - то же значение, что и у api_key, так как это то, что генератор из гема Authorize.net создал для тестовой учетной записи. Оказывается, это было неправильно для производства. Я не установил значение MD5_hash, поэтому я сделал это на Authorize.net в настройках учетной записи и добавил это в конфигурацию authorize_net.yml. Теперь он работает и перенаправляет правильно, как и должно.

...