Следующий код
purchase = @order.authorize_payment(@credit_card, options) is_success = purchase.success? if is_success ... else flash[:notice] = "!! " + purchase.message + "
" + purchase.params['missingField'].to_s redirect_to :action => :payment, :id => @order.id end
приводит к ошибке «!! Сбой с внутренней ошибкой сервера 500» в моей флэш-памяти [: уведомление]. Нет ни трассировки стека, ни ошибки веб-сервера, все, что я знаю, это то, что Purchase.message заполнен и Purchase.success? является ложным.
Я действительно в недоумении, как решить эту проблему. Я думаю, что это может быть требование ssl, но я не могу ни увидеть запрос мыла, ни проверить базовое соединение с киберисточником (мой платежный шлюз).
Я устанавливаю свой шлюз с помощью этого кода (после выполнения config.after_initialize):
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 )
Могу ли я увидеть запрос на мыло? Есть ли способы проверить часть этого? Любая помощь очень ценится.
Лучший,
Тим