spree: Отсутствует обязательный параметр: логин

Я только что унаследовал интересный проект, в котором есть проблема. При оформлении заказа, после того как пользователь предоставляет информацию о своей кредитной карте, в системе возникает исключение rails. Я ищу руководство о том, для чего может потребоваться параметр входа в систему. Я быстро узнаю, как работает веселье, поэтому любые рекомендации мне пригодятся. Спасибо!

Started PUT "/checkout/update/payment" for 107.3.138.229 at 2012-09-28 08:52:11 -0700
Processing by Spree::CheckoutController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"XXXXXXX=", "order"=>{"payments_attributes"=>[{"payment_method_id"=>"2"}], "coupon_code"=>""}, "payment_source"=>{"2"=>{"number"=>"[FILTERED]", "month"=>"X", "year"=>"XXXX", "verification_value"=>"XXX", "first_name"=>"XXX", "last_name"=>"XXX"}}, "commit"=>"Save and Continue", "state"=>"payment"}
Completed 500 Internal Server Error in 464ms

ArgumentError (Missing required parameter: login):
  active_utils (1.0.4) lib/active_utils/common/requires_parameters.rb:11:in `block in requires!'
  active_utils (1.0.4) lib/active_utils/common/requires_parameters.rb:4:in `each'
  active_utils (1.0.4) lib/active_utils/common/requires_parameters.rb:4:in `requires!'
  activemerchant (1.20.4) lib/active_merchant/billing/gateways/authorize_net.rb:74:in `initialize'
  spree_core (1.1.3) app/models/spree/gateway.rb:25:in `new'
  spree_core (1.1.3) app/models/spree/gateway.rb:25:in `provider'
  spree_core (1.1.3) lib/spree/core/delegate_belongs_to.rb:82:in `delegator_for'
  spree_core (1.1.3) lib/spree/core/delegate_belongs_to.rb:44:in `block (2 levels) in delegate_belongs_to'
  spree_core (1.1.3) app/models/spree/payment/processing.rb:128:in `block in gateway_action'
  spree_core (1.1.3) app/models/spree/payment/processing.rb:172:in `protect_from_connection_error'
  spree_core (1.1.3) app/models/spree/payment/processing.rb:125:in `gateway_action'
  spree_core (1.1.3) app/models/spree/payment/processing.rb:22:in `authorize!'
  spree_core (1.1.3) app/models/spree/payment/processing.rb:11:in `process!'
  activerecord (3.2.8) lib/active_record/associations/collection_proxy.rb:89:in `each'
  activerecord (3.2.8) lib/active_record/associations/collection_proxy.rb:89:in `method_missing'
  spree_core (1.1.3) app/models/spree/order.rb:380:in `process_payments!'
  spree_core (1.1.3) app/models/spree/order.rb:83:in `block (2 levels) in <class:Order>'

person Professor Todd    schedule 29.09.2012    source источник
comment
Я только что решил это. Логин для способа оплаты пуст. (Я убежден, что заглядывал туда перед тем, как опубликовать это. Вздох.)   -  person Professor Todd    schedule 30.09.2012
comment
Извините, не видел ваш комментарий перед ответом, этот элемент пользовательского интерфейса слишком мал! В любом случае, я думаю, это хорошо для общего понимания.   -  person j15e    schedule 01.10.2012


Ответы (2)


У меня такая же проблема с использованием шлюза autorize.net в качестве моих способов оплаты. Раньше мой сеанс был без логина и пароля, из-за чего возникает это исключение рельсов. Затем я создаю тестовую учетную запись на authorize.net и устанавливаю этот идентификатор входа в учетную запись и ключ на admin сторона для настройки authorize.net и решенной проблемы.

      Card Not Present Test Account

          API Login ID 3cm2NkD3GyyyW

          Transaction Key 6v7CEMcRq5H74p5yyg   #as password

даже такая же ошибка с PayPal перед предоставлением учетных данных тестовой учетной записи

Надеюсь помочь другим

person Kashiftufail    schedule 23.11.2012

Думаю, вашему модулю authorize_net не предоставлена ​​необходимая конфигурация. И / или конфигурация не предусмотрена для вашей среды (конфигурации шлюзов предоставляются для каждой среды, поэтому, если вы загружаете конфигурацию производственной базы данных и запускаете ее в процессе разработки, у вас может не быть необходимых конфигураций).

И чтобы получить общую картину, модуль authorize_net является частью гема active_merchant (модули оформления заказа от Shopify) и расширен для Spree в spree_gateway и конфигурации для active_merchant: управляется Spree и хранится в базе данных.

Пример конфигурации приведен в руководстве по Spree:

# gateway/authorize_net.rb
class Gateway::AuthorizeNet < Gateway
    preference :login, :string
    preference :password, :string

    def provider_class
        ActiveMerchant::Billing::AuthorizeNetGateway
    end
end

Затем вы можете установить свой логин / пароль из панели администратора или автоматически заполнить их.

person j15e    schedule 01.10.2012