I am trying to do card verification with the braintree api when I create a customer. Here is the code that creates the customer:
@braintree_id = "#{current_user.profile_name}" + rand(5..1000).to_s
@result = Braintree::Customer.create(
:id => @braintree_id,
:first_name => employer_account_params[:first_name],
:last_name => employer_account_params[:last_name],
:company => employer_account_params[:company],
:email => employer_account_params[:email],
:phone => employer_account_params[:phone],
:fax => employer_account_params[:fax],
:website => employer_account_params[:website],
:credit_card => {
:number => employer_account_params[:credit_card][:number],
:expiration_date => employer_account_params[:credit_card][:expiration_date],
:billing_address => {
:street_address => employer_account_params[:credit_card][:billing_address][:street_address],
:extended_address => employer_account_params[:credit_card][:billing_address][:extended_address],
:locality => employer_account_params[:credit_card][:billing_address][:locality],
:region => employer_account_params[:credit_card][:billing_address][:region],
:postal_code => employer_account_params[:credit_card][:billing_address][:postal_code],
:country_code_alpha2 => employer_account_params[:credit_card][:billing_address][:country_code_alpha2]
},
:options => {
:verify_card => true
}
}
)
puts 'result is ' + @result.inspect.to_s
@verification = @result.credit_card_verification
puts 'verification' + @verification.inspect.to_s
puts 'card results: ' + @verification.gateway_rejection_reason.to_s
The problem is that credit_card_verification is always nil, regardless of whether or not @result returns true or false. Here is the console logs from the code above:
11:57:32 web.1 | result is #<Braintree::SuccessfulResult customer:#<Braintree::Customer id: "person2359", company: nil, email: nil, fax: nil, first_name: "sgdgsfd", last_name: nil, phone: nil, website: nil, created_at: 2014-04-29 15:57:32 UTC, updated_at: 2014-04-29 15:57:32 UTC, addresses: [#<Braintree::Address:0x007fe3639cefe8 @gateway=#<Braintree::Gateway:0x007fe364062eb8 @config=#<Braintree::Configuration:0x007fe3640630e8 @endpoint=nil, @environment=:sandbox, @public_key="vfyzr8zb7jqdhpxn", @private_key="[FILTERED]">>, @id="s7", @customer_id="person2359", @first_name=nil, @last_name=nil, @company=nil, @street_address="sdgfsgfgsdf", @extended_address=nil, @locality=nil, @region=nil, @postal_code=nil, @country_code_alpha2=nil, @country_code_alpha3=nil, @country_code_numeric=nil, @country_name=nil, @created_at=2014-04-29 15:57:32 UTC, @updated_at=2014-04-29 15:57:32 UTC>], credit_cards: [#<Braintree::CreditCard token: "66jz9r", billing_address: #<Braintree::Address:0x007fe3639cf8f8 @gateway=#<Braintree::Gateway:0x007fe364062eb8 @config=#<Braintree::Configuration:0x007fe3640630e8 @endpoint=nil, @environment=:sandbox, @public_key="vfyzr8zb7jqdhpxn", @private_key="[FILTERED]">>, @id="s7", @customer_id="person2359", @first_name=nil, @last_name=nil, @company=nil, @street_address="sdgfsgfgsdf", @extended_address=nil, @locality=nil, @region=nil, @postal_code=nil, @country_code_alpha2=nil, @country_code_alpha3=nil, @country_code_numeric=nil, @country_name=nil, @created_at=2014-04-29 15:57:32 UTC, @updated_at=2014-04-29 15:57:32 UTC>, bin: "411111", card_type: "Visa", cardholder_name: nil, created_at: 2014-04-29 15:57:32 UTC, customer_id: "person2359", expiration_month: "11", expiration_year: "2015", last_4: "1111", updated_at: 2014-04-29 15:57:32 UTC, prepaid: "Unknown", payroll: "Unknown", commercial: "Unknown", debit: "Unknown", durbin_regulated: "Unknown", healthcare: "Unknown", country_of_issuance: "Unknown", issuing_bank: "Unknown", image_url: "https://assets.braintreegateway.com/payment_method_logo/visa.png?environment=sandbox&merchant_id=b7gwpzqrspgmyc2x">]>>
11:57:32 web.1 | Completed 500 Internal Server Error in 844ms
11:57:32 web.1 |
11:57:32 web.1 | NoMethodError (undefined method `credit_card_verification' for #<Braintree::SuccessfulResult:0x007fe3639ce4d0>):
11:57:32 web.1 | app/controllers/payments_controller.rb:210:in `create_employer_account'
11:57:32 web.1 |
11:57:32 web.1 |
11:57:32 web.1 | Rendered /usr/local/rvm/gems/ruby-2.0.0-p247@firehose/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_source.erb (0.7ms)
11:57:32 web.1 | Rendered /usr/local/rvm/gems/ruby-2.0.0-p247@firehose/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.9ms)
11:57:32 web.1 | Rendered /usr/local/rvm/gems/ruby-2.0.0-p247@firehose/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.0ms)
11:57:32 web.1 | Rendered /usr/local/rvm/gems/ruby-2.0.0-p247@firehose/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (16.2ms)
How do I make it so verification works?