即使在braintree中出错,result.credit_card_verification仍返回nil

我正在使用braintree进行支付处理,我正在尝试使用Ruby从Braintree获取处理器响应代码 。

这是我的代码:

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

即使出现错误,我也会将validation结果为零。

还有其他东西可以获得处理器响应代码吗?

我从这里得到了这个代码

这是我的result.erros:

 :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: {} 

我在布伦特里工作。 如果您想获得比Stack Overflow更多的帮助,请联系我们的支持团队 。

处理Braintree结果对象是渐进的。

如果result.success? 如果为false ,则检查result.errors ,它表示validation错误 。

如果result.errorsnil ,则请求有效。 在这种情况下,您将拥有一个transactionverification对象,就像result.success?true

然后,您可以查看result.verificationstatusprocessor_response_codegateway_rejection_reason等。

链接的文档提供了有关处理错误结果的更多详细信