Skip to content

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
...
  • 2 commits
  • 2 files changed
  • 0 commit comments
  • 1 contributor
Commits on Jun 15, 2012
@shayfrendt shayfrendt Always pass CVV on card update for Braintree Blue
Always passing the CVV allows for "updating a credit card and explicitly
verifying the card" at the same time:
https://www.braintreepayments.com/docs/ruby/general/card_verification#credit_card_api
0836d0c
@shayfrendt shayfrendt Merge pull request #3 from chargify/pass-cvv-on-card-update
Pass cvv on card update
9a0b738
View
1 lib/active_merchant/billing/gateways/braintree_blue.rb
@@ -105,6 +105,7 @@ def update(vault_id, creditcard, options = {})
credit_card_params = merge_credit_card_options({
:credit_card => {
:number => creditcard.number,
+ :cvv => creditcard.verification_value,
:expiration_month => creditcard.month.to_s.rjust(2, "0"),
:expiration_year => creditcard.year.to_s
}
View
30 test/unit/gateways/braintree_blue_test.rb
@@ -150,6 +150,36 @@ def test_store_with_billing_address_options
@gateway.store(credit_card("41111111111111111111"), :billing_address => billing_address)
end
+ def test_update_with_cvv
+ stored_credit_card = mock(:token => "token", :default? => true)
+ customer = mock(:credit_cards => [stored_credit_card], :id => '123')
+ Braintree::Customer.stubs(:find).with('vault_id').returns(customer)
+ BraintreeBlueGateway.any_instance.stubs(:customer_hash)
+
+ result = Braintree::SuccessfulResult.new(:customer => customer)
+ Braintree::Customer.expects(:update).with do |vault, params|
+ assert_equal "567", params[:credit_card][:cvv]
+ [vault, params]
+ end.returns(result)
+
+ @gateway.update('vault_id', credit_card("41111111111111111111", :verification_value => "567"))
+ end
+
+ def test_update_with_verify_card_true
+ stored_credit_card = mock(:token => "token", :default? => true)
+ customer = mock(:credit_cards => [stored_credit_card], :id => '123')
+ Braintree::Customer.stubs(:find).with('vault_id').returns(customer)
+ BraintreeBlueGateway.any_instance.stubs(:customer_hash)
+
+ result = Braintree::SuccessfulResult.new(:customer => customer)
+ Braintree::Customer.expects(:update).with do |vault, params|
+ assert_equal true, params[:credit_card][:options][:verify_card]
+ [vault, params]
+ end.returns(result)
+
+ @gateway.update('vault_id', credit_card("41111111111111111111"), :verify_card => true)
+ end
+
def test_merge_credit_card_options_ignores_bad_option
params = {:first_name => 'John', :credit_card => {:cvv => '123'}}
options = {:verify_card => true, :bogus => 'ignore me'}

No commit comments for this range

Something went wrong with that request. Please try again.