result.credit_card_verification возвращает ноль даже при ошибке в мозговом дереве

Я использую braintree для обработки платежей и пытаюсь получить коды ответов процессора от Брейнтри с Руби.

Вот мой код:

 verification = result.credit_card_verification
 response_code = verification.try(:processor_response_code)

Я получаю подтверждение как ноль, даже если есть ошибка.

Есть ли что-то еще, чтобы получить коды ответов процессора?

Я получил этот код из здесь

Вот мой результат. Ошибки:

:errors: !ruby/object:Braintree::Errors
  errors: !ruby/object:Braintree::ValidationErrorCollection
    errors: []
    nested:
      :customer: !ruby/object:Braintree::ValidationErrorCollection
        errors: []
        nested:
          :credit_card: !ruby/object:Braintree::ValidationErrorCollection
            errors:
            - !ruby/object:Braintree::ValidationError
              code: '81707'
              attribute: cvv
              message: CVV must be 4 digits for American Express and 3 digits for
                other card types.
            - !ruby/object:Braintree::ValidationError
              code: '81713'
              attribute: expiration_year
              message: Expiration year is invalid.
            - !ruby/object:Braintree::ValidationError
              code: '81703'
              attribute: number
              message: Credit card type is not accepted by this merchant account.
            - !ruby/object:Braintree::ValidationError
              code: '81715'
              attribute: number
              message: Credit card number is invalid.
            nested:
              :billing_address: !ruby/object:Braintree::ValidationErrorCollection
                errors: []
                nested: {}

person Sachin Prasad    schedule 16.10.2013    source источник
comment
Я работаю в Брейнтри. Если у вас есть ошибка проверки, проверки не будет. Как выглядит result.errors?   -  person agf    schedule 17.10.2013
comment
@agf Я обновил свой вопрос. На самом деле я хочу обработать все ошибки и показать какое-то общее сообщение в зависимости от типов ошибок, перечисленных в Кодах ответов процессора. Кстати, обязательно ли сначала отображать эти ошибки проверки, а затем управлять кодами ответов процессора? (Или вы можете сказать лучшие практики)   -  person Sachin Prasad    schedule 17.10.2013


Ответы (1)


Я работаю в Braintree. Если вам нужна дополнительная помощь, которую вы можете получить здесь, в Stack Overflow, обратитесь в нашу службу поддержки.

Обработка объектов результатов Braintree является последовательной.

Если result.success? равно false, вы проверяете result.errors, которые представляют собой ошибки проверки.

Если result.errors равно nil, то запрос действителен. В этом случае у вас будет объект transaction или verification, как если бы result.success? был true.

Затем вы можете посмотреть на status, processor_response_code, gateway_rejection_reason и т. д.

Связанная документация содержит более подробную информацию об обработке результатов ошибок.

person agf    schedule 17.10.2013
comment
И почему бы не указать это четко в документации по всем разделам??? Почему только в разделе транзакции есть объяснение? Если я выполняю транзакции, указывается, как, но если я выполняю операции с хранилищем, ничего не говорится об обработке результатов. В отношении такого сложного объекта результатов читатели документа не могут предположить, что он работает для транзакций так же, как и для create_customer_data. Кстати? - person Rutger Karlsson; 23.10.2013
comment
Или тот факт, что вы получаете Braintree::AuthorizationError, если указываете неверные параметры. Имя исключения не очень понятно. - person Rutger Karlsson; 23.10.2013
comment
@RutgerKarlsson документы по проверке также содержат эту информацию, и да, это непротиворечив для любого объекта, который может создать транзакцию/проверку. - person agf; 23.10.2013