Устранение неполадок, связанных с активным продавцом, возвращающим сообщение «Ошибка 500: внутренняя ошибка сервера» - PullRequest
0 голосов
/ 22 июля 2011

следующий код

    purchase = @order.authorize_payment(@credit_card, options)
    is_success = purchase.success?
    if is_success
        ...
    else
      flash[:notice] = "!! " + purchase.message + "<br />"  +
        purchase.params['missingField'].to_s
      redirect_to :action => :payment, :id => @order.id
    end

приводит к «!! Failed with 500 Internal Server Error» в моей флешке [: note]. Нет никакой трассировки стека, нет ошибки веб-сервера, все, что я знаю, это то, что заполнено поле purchase.message, а файл purchase.success? ложно.

Я действительно в недоумении, чтобы выяснить, как решить эту проблему. Я думаю, что это может быть требование ssl, но я не вижу ни запрос на мыло, ни тестирую базовую связь с киберресурсом (мой платежный шлюз).

Я устанавливаю свой шлюз с этим кодом (после config.after_initialize do):

ActiveMerchant::Billing::Base.mode = :production # :test
  ActiveMerchant::Billing::CreditCard.require_verification_value = false
  ActiveMerchant::Billing::CyberSourceGateway.wiredump_device = File.new(File.join([Rails.root, "log", "cybersource.log"]), "a") # doesn't work (!)
  # we need to open an external file to get the password
  mypassphrase = File.open('/var/www/foo/shared/passphrase.txt').read
  OrderTransaction.gateway = ActiveMerchant::Billing::CyberSourceGateway.new(:login    => 'vxxxxxxx',
                                                    :password => mypassphrase.to_s,
                                                    :test => false,
                                                    :vat_reg_number => 'your VAT registration number',
                                                    # sets the states/provinces where you have a physical presense for tax purposes
                                                    :nexus => "GA OH",
                                                    # don‘t want to use AVS so continue processing even if AVS would have failed
                                                    :ignore_avs => true,
                                                    # don‘t want to use CVV so continue processing even if CVV would have failed
                                                    :ignore_cvv => true,
                                                    :money_format => :dollars
                                                    )

Могу ли я увидеть запрос на мыло? Есть ли способы проверить часть этого? Любая помощь с благодарностью.

Best

Тим

Ответы [ 2 ]

4 голосов
/ 30 марта 2012

ActiveMerchant :: Billing :: CyberSourceGateway.logger = your_logger

1 голос
/ 21 марта 2012

Итак, поздний ответ, но ...

Я проделал большую работу с шлюзом Cybersource, и единственный способ увидеть SOAP-запрос / ответ шлюза кибер-ресурсов в настоящее время - открыть гем и отредактировать его.

Если вы измените метод фиксации lib / active_merchant / billing / gateways / cybersource.rb, вы можете сделать что-то вроде этого:

def commit(request, options)
    puts "*** POSTING TO: #{test? ? TEST_URL : LIVE_URL}"
    request =  build_request(request, options)
    puts "*** POSTING:"
    puts request
    begin
         post_response = ssl_post(test? ? TEST_URL : LIVE_URL, request)
    rescue ActiveMerchant::ResponseError => e
      puts "ERROR!"
      puts e.response
    end
    puts post_response

Было бы неплохо, если бы был способ получить этот ответ, не проходя через это, я посмотрю, есть ли способ передать эту информацию через возвращенный объект ответа и добавить ее в мой ответвление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...