braintree 2.54.0 → 2.55.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/braintree.rb CHANGED
@@ -108,6 +108,7 @@ require "braintree/transaction/subscription_details"
108
108
  require "braintree/transaction_gateway"
109
109
  require "braintree/transaction_search"
110
110
  require "braintree/transaction/status_details"
111
+ require "braintree/transaction/venmo_account_details"
111
112
  require "braintree/unknown_payment_method"
112
113
  require "braintree/disbursement"
113
114
  require "braintree/transparent_redirect"
@@ -115,6 +116,7 @@ require "braintree/transparent_redirect_gateway"
115
116
  require "braintree/util"
116
117
  require "braintree/validation_error"
117
118
  require "braintree/validation_error_collection"
119
+ require "braintree/venmo_account"
118
120
  require "braintree/version"
119
121
  require "braintree/webhook_notification"
120
122
  require "braintree/webhook_notification_gateway"
@@ -4,7 +4,7 @@ module Braintree
4
4
 
5
5
  attr_reader :addresses, :company, :created_at, :credit_cards, :email, :fax, :first_name, :id, :last_name,
6
6
  :phone, :updated_at, :website, :custom_fields, :paypal_accounts, :apple_pay_cards, :coinbase_accounts,
7
- :android_pay_cards, :amex_express_checkout_cards
7
+ :android_pay_cards, :amex_express_checkout_cards, :venmo_accounts
8
8
 
9
9
  def self.all
10
10
  Configuration.gateway.customer.all
@@ -93,6 +93,7 @@ module Braintree
93
93
  @europe_bank_accounts = (@europe_bank_Accounts || []).map { |pm| EuropeBankAccount._new gateway, pm }
94
94
  @android_pay_cards = (@android_pay_cards || []).map { |pm| AndroidPayCard._new gateway, pm }
95
95
  @amex_express_checkout_cards = (@amex_express_checkout_cards || []).map { |pm| AmexExpressCheckoutCard._new gateway, pm }
96
+ @venmo_accounts = (@venmo_accounts || []).map { |pm| VenmoAccount._new gateway, pm }
96
97
  @addresses = (@addresses || []).map { |addr| Address._new gateway, addr }
97
98
  @custom_fields = attributes[:custom_fields].is_a?(Hash) ? attributes[:custom_fields] : {}
98
99
  end
@@ -124,7 +125,13 @@ module Braintree
124
125
 
125
126
  # Returns the customer's payment methods
126
127
  def payment_methods
127
- @credit_cards.dup + @paypal_accounts.dup + @apple_pay_cards.dup + @coinbase_accounts.dup + @android_pay_cards.dup + @amex_express_checkout_cards.dup
128
+ @credit_cards +
129
+ @paypal_accounts.dup +
130
+ @apple_pay_cards.dup +
131
+ @coinbase_accounts.dup +
132
+ @android_pay_cards.dup +
133
+ @amex_express_checkout_cards.dup +
134
+ @venmo_accounts.dup
128
135
  end
129
136
 
130
137
  def inspect # :nodoc:
@@ -309,6 +309,8 @@ module Braintree
309
309
  ProcessorAuthorizationCodeCannotBeSet = "91519"
310
310
  ProcessorAuthorizationCodeIsInvalid = "81520"
311
311
  ProcessorDoesNotSupportAuths = "915104"
312
+ ProcessorDoesNotSupportUpdatingOrderId = "915107"
313
+ ProcessorDoesNotSupportUpdatingDescriptor = "915108"
312
314
  ProcessorDoesNotSupportCredits = "91546"
313
315
  ProcessorDoesNotSupportPartialSettlement = "915102"
314
316
  ProcessorDoesNotSupportVoiceAuthorizations = "91545"
@@ -19,7 +19,8 @@ module Braintree
19
19
  end
20
20
 
21
21
  attr_reader :status, :id, :master_merchant_account,
22
- :individual_details, :business_details, :funding_details
22
+ :individual_details, :business_details, :funding_details,
23
+ :currency_iso_code
23
24
 
24
25
  def self.create(attributes)
25
26
  Configuration.gateway.merchant_account.create(attributes)
@@ -27,6 +27,8 @@ module Braintree
27
27
  SuccessfulResult.new(:payment_method => AndroidPayCard._new(@gateway, response[:android_pay_card]))
28
28
  elsif response[:amex_express_checkout_card]
29
29
  SuccessfulResult.new(:payment_method => AmexExpressCheckoutCard._new(@gateway, response[:amex_express_checkout_card]))
30
+ elsif response[:venmo_account]
31
+ SuccessfulResult.new(:payment_method => VenmoAccount._new(@gateway, response[:venmo_account]))
30
32
  elsif response[:api_error_response]
31
33
  ErrorResult.new(@gateway, response[:api_error_response])
32
34
  elsif response
@@ -17,6 +17,7 @@ module Braintree
17
17
  AndroidPayMasterCard = "fake-android-pay-mastercard-nonce"
18
18
  AndroidPayAmEx = "fake-android-pay-amex-nonce"
19
19
  AmexExpressCheckout = "fake-amex-express-checkout-nonce"
20
+ VenmoAccount = "fake-venmo-account-nonce"
20
21
  TransactableVisa = "fake-valid-visa-nonce"
21
22
  TransactableAmEx = "fake-valid-amex-nonce"
22
23
  TransactableMasterCard = "fake-valid-mastercard-nonce"
@@ -86,6 +86,7 @@ module Braintree
86
86
  attr_reader :apple_pay_details
87
87
  attr_reader :android_pay_details
88
88
  attr_reader :amex_express_checkout_details
89
+ attr_reader :venmo_account_details
89
90
  attr_reader :coinbase_details
90
91
  attr_reader :plan_id
91
92
  # The authorization code from the processor.
@@ -206,8 +207,8 @@ module Braintree
206
207
  return_object_or_raise(:transaction) { release_from_escrow(transaction_id) }
207
208
  end
208
209
 
209
- def self.submit_for_settlement(transaction_id, amount = nil)
210
- Configuration.gateway.transaction.submit_for_settlement(transaction_id, amount)
210
+ def self.submit_for_settlement(transaction_id, amount = nil, options = {})
211
+ Configuration.gateway.transaction.submit_for_settlement(transaction_id, amount, options)
211
212
  end
212
213
 
213
214
  def self.submit_for_settlement!(transaction_id, amount = nil)
@@ -244,6 +245,7 @@ module Braintree
244
245
  @apple_pay_details = ApplePayDetails.new(@apple_pay)
245
246
  @android_pay_details = AndroidPayDetails.new(@android_pay_card)
246
247
  @amex_express_checkout_details = AmexExpressCheckoutDetails.new(@amex_express_checkout_card)
248
+ @venmo_account_details = VenmoAccountDetails.new(@venmo_account)
247
249
  @coinbase_details = CoinbaseDetails.new(@coinbase_account)
248
250
  disputes.map! { |attrs| Dispute._new(attrs) } if disputes
249
251
  @custom_fields = attributes[:custom_fields].is_a?(Hash) ? attributes[:custom_fields] : {}
@@ -0,0 +1,13 @@
1
+ module Braintree
2
+ class Transaction
3
+ class VenmoAccountDetails
4
+ include BaseModule
5
+
6
+ attr_reader :username, :venmo_user_id, :token, :source_description, :image_url
7
+
8
+ def initialize(attributes)
9
+ set_instance_variables_from_hash attributes unless attributes.nil?
10
+ end
11
+ end
12
+ end
13
+ end
@@ -98,9 +98,11 @@ module Braintree
98
98
  _handle_transaction_response(response)
99
99
  end
100
100
 
101
- def submit_for_settlement(transaction_id, amount = nil)
101
+ def submit_for_settlement(transaction_id, amount = nil, options = {})
102
102
  raise ArgumentError, "transaction_id is invalid" unless transaction_id =~ /\A[0-9a-z]+\z/
103
- response = @config.http.put("#{@config.base_merchant_path}/transactions/#{transaction_id}/submit_for_settlement", :transaction => {:amount => amount})
103
+ Util.verify_keys(TransactionGateway._submit_for_settlement_signature, options)
104
+ transaction_params = {:amount => amount}.merge(options)
105
+ response = @config.http.put("#{@config.base_merchant_path}/transactions/#{transaction_id}/submit_for_settlement", :transaction => transaction_params)
104
106
  _handle_transaction_response(response)
105
107
  end
106
108
 
@@ -146,7 +148,7 @@ module Braintree
146
148
  :payee_email,
147
149
  :skip_avs,
148
150
  :skip_cvv,
149
- {:paypal => [:custom_field, :payee_email, :description]},
151
+ {:paypal => [:custom_field, :payee_email, :description, {:supplementary_data => :_any_key_}]},
150
152
  {:three_d_secure => [:required]},
151
153
  {:amex_rewards => [:request_id, :points, :currency_amount, :currency_iso_code]}]
152
154
  },
@@ -158,6 +160,13 @@ module Braintree
158
160
  ]
159
161
  end
160
162
 
163
+ def self._submit_for_settlement_signature # :nodoc:
164
+ [
165
+ :order_id,
166
+ {:descriptor => [:name, :phone, :url]},
167
+ ]
168
+ end
169
+
161
170
  def _do_create(path, params=nil) # :nodoc:
162
171
  response = @config.http.post("#{@config.base_merchant_path}#{path}", params)
163
172
  _handle_transaction_response(response)
@@ -0,0 +1,27 @@
1
+ module Braintree
2
+ class VenmoAccount
3
+ include BaseModule # :nodoc:
4
+
5
+ attr_reader :customer_id, :username, :venmo_user_id, :token, :source_description, :subscriptions,
6
+ :image_url, :default, :updated_at, :created_at
7
+
8
+ def initialize(gateway, attributes) # :nodoc:
9
+ @gateway = gateway
10
+ set_instance_variables_from_hash(attributes)
11
+ @subscriptions = (@subscriptions || []).map { |subscription_hash| Subscription._new(@gateway, subscription_hash) }
12
+ end
13
+
14
+ def default?
15
+ @default
16
+ end
17
+
18
+ class << self
19
+ protected :new
20
+ end
21
+
22
+ def self._new(*args) # :nodoc:
23
+ self.new *args
24
+ end
25
+ end
26
+ end
27
+
@@ -1,7 +1,7 @@
1
1
  module Braintree
2
2
  module Version
3
3
  Major = 2
4
- Minor = 54
4
+ Minor = 55
5
5
  Tiny = 0
6
6
 
7
7
  String = "#{Major}.#{Minor}.#{Tiny}"
data/spec/httpsd.pid CHANGED
@@ -1 +1 @@
1
- 14756
1
+ 19402
@@ -835,6 +835,21 @@ describe Braintree::Customer do
835
835
  amex_express_checkout_card.expiration_year.should_not be_nil
836
836
  end
837
837
 
838
+ it "returns associated venmo accounts" do
839
+ result = Braintree::Customer.create(
840
+ :payment_method_nonce => Braintree::Test::Nonce::VenmoAccount
841
+ )
842
+ result.success?.should == true
843
+
844
+ found_customer = Braintree::Customer.find(result.customer.id)
845
+ found_customer.venmo_accounts.size.should == 1
846
+ found_customer.payment_methods.size.should == 1
847
+ venmo_account = found_customer.venmo_accounts.first
848
+ venmo_account.should be_a Braintree::VenmoAccount
849
+ venmo_account.token.should_not be_nil
850
+ venmo_account.username.should_not be_nil
851
+ end
852
+
838
853
  it "works for a blank customer" do
839
854
  created_customer = Braintree::Customer.create!
840
855
  found_customer = Braintree::Customer.find(created_customer.id)
@@ -149,6 +149,12 @@ describe Braintree::MerchantAccount do
149
149
  merchant_account.individual_details.last_name.should == VALID_APPLICATION_PARAMS[:individual][:last_name]
150
150
  end
151
151
 
152
+ it "retrieves the currency iso code for an existing master merchant account" do
153
+ merchant_account = Braintree::MerchantAccount.find("sandbox_master_merchant_account")
154
+
155
+ merchant_account.currency_iso_code.should == "USD"
156
+ end
157
+
152
158
  it "raises a NotFoundError exception if merchant account cannot be found" do
153
159
  expect do
154
160
  Braintree::MerchantAccount.find("non-existant")
@@ -177,6 +177,28 @@ describe Braintree::PaymentMethod do
177
177
  amex_express_checkout_card.customer_id.should == customer.id
178
178
  end
179
179
 
180
+ it "creates a payment method from venmo account nonce" do
181
+ customer = Braintree::Customer.create.customer
182
+ token = SecureRandom.hex(16)
183
+ result = Braintree::PaymentMethod.create(
184
+ :payment_method_nonce => Braintree::Test::Nonce::VenmoAccount,
185
+ :customer_id => customer.id,
186
+ :token => token
187
+ )
188
+
189
+ result.should be_success
190
+ venmo_account = result.payment_method
191
+ venmo_account.should be_a(Braintree::VenmoAccount)
192
+
193
+ venmo_account.default.should == true
194
+ venmo_account.token.should == token
195
+ venmo_account.username.should == "venmojoe"
196
+ venmo_account.venmo_user_id.should == "Venmo-Joe-1"
197
+ venmo_account.image_url.should include(".png")
198
+ venmo_account.source_description.should == "Venmo Account: venmojoe"
199
+ venmo_account.customer_id.should == customer.id
200
+ end
201
+
180
202
  it "allows passing the make_default option alongside the nonce" do
181
203
  customer = Braintree::Customer.create!
182
204
  result = Braintree::CreditCard.create(
@@ -1402,6 +1402,25 @@ describe Braintree::Transaction do
1402
1402
  checkout_details.source_description.should =~ /\AAmEx \d{4}\z/
1403
1403
  end
1404
1404
 
1405
+ it "can create a transaction with a fake venmo account nonce" do
1406
+ result = Braintree::Transaction.create(
1407
+ :type => "sale",
1408
+ :merchant_account_id => SpecHelper::FakeVenmoAccountMerchantAccountId,
1409
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
1410
+ :payment_method_nonce => Braintree::Test::Nonce::VenmoAccount,
1411
+ :options => {:store_in_vault => true}
1412
+ )
1413
+ result.should be_success
1414
+
1415
+ venmo_account_details = result.transaction.venmo_account_details
1416
+ venmo_account_details.should be_a(Braintree::Transaction::VenmoAccountDetails)
1417
+ venmo_account_details.token.should respond_to(:to_str)
1418
+ venmo_account_details.username.should == "venmojoe"
1419
+ venmo_account_details.venmo_user_id.should == "Venmo-Joe-1"
1420
+ venmo_account_details.image_url.should include(".png")
1421
+ venmo_account_details.source_description.should == "Venmo Account: venmojoe"
1422
+ end
1423
+
1405
1424
  it "can create a transaction with an unknown nonce" do
1406
1425
  customer = Braintree::Customer.create!
1407
1426
  result = Braintree::Transaction.create(
@@ -1539,6 +1558,33 @@ describe Braintree::Transaction do
1539
1558
  result.transaction.paypal_details.debug_id.should_not be_nil
1540
1559
  result.transaction.paypal_details.description.should == "A great product"
1541
1560
  end
1561
+
1562
+ it "can create a transaction with STC supplementary data" do
1563
+ customer = Braintree::Customer.create!
1564
+ nonce = nonce_for_new_payment_method(
1565
+ :paypal_account => {
1566
+ :consent_code => "PAYPAL_CONSENT_CODE",
1567
+ }
1568
+ )
1569
+ nonce.should_not be_nil
1570
+
1571
+ result = Braintree::Transaction.create(
1572
+ :type => "sale",
1573
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
1574
+ :payment_method_nonce => nonce,
1575
+ :options => {
1576
+ :paypal => {
1577
+ :supplementary_data => {
1578
+ :key1 => "value1",
1579
+ :key2 => "value2",
1580
+ }
1581
+ }
1582
+ }
1583
+ )
1584
+
1585
+ # note - supplementary data is not returned in response
1586
+ result.success?.should == true
1587
+ end
1542
1588
  end
1543
1589
 
1544
1590
  context "three_d_secure" do
@@ -2550,6 +2596,62 @@ describe Braintree::Transaction do
2550
2596
  result.transaction.updated_at.between?(Time.now - 60, Time.now).should == true
2551
2597
  end
2552
2598
 
2599
+ it "returns a successful result if order_id is passed in as an options hash" do
2600
+ transaction = Braintree::Transaction.sale!(
2601
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
2602
+ :credit_card => {
2603
+ :number => Braintree::Test::CreditCardNumbers::Visa,
2604
+ :expiration_date => "06/2009"
2605
+ }
2606
+ )
2607
+ options = { :order_id => "ABC123" }
2608
+ result = Braintree::Transaction.submit_for_settlement(transaction.id, nil, options)
2609
+ result.success?.should == true
2610
+ result.transaction.order_id.should == "ABC123"
2611
+ result.transaction.status.should == Braintree::Transaction::Status::SubmittedForSettlement
2612
+ end
2613
+
2614
+ it "returns a successful result if descritpors are passed in as an options hash" do
2615
+ transaction = Braintree::Transaction.sale!(
2616
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
2617
+ :credit_card => {
2618
+ :number => Braintree::Test::CreditCardNumbers::Visa,
2619
+ :expiration_date => "06/2009"
2620
+ }
2621
+ )
2622
+
2623
+ options = {
2624
+ :descriptor => {
2625
+ :name => '123*123456789012345678',
2626
+ :phone => '3334445555',
2627
+ :url => "ebay.com"
2628
+ }
2629
+ }
2630
+
2631
+ result = Braintree::Transaction.submit_for_settlement(transaction.id, nil, options)
2632
+ result.success?.should == true
2633
+ result.transaction.status.should == Braintree::Transaction::Status::SubmittedForSettlement
2634
+ result.transaction.descriptor.name.should == '123*123456789012345678'
2635
+ result.transaction.descriptor.phone.should == '3334445555'
2636
+ result.transaction.descriptor.url.should == 'ebay.com'
2637
+ end
2638
+
2639
+ it "raises an error if an invalid option is passed in" do
2640
+ transaction = Braintree::Transaction.sale!(
2641
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
2642
+ :credit_card => {
2643
+ :number => Braintree::Test::CreditCardNumbers::Visa,
2644
+ :expiration_date => "06/2009"
2645
+ }
2646
+ )
2647
+
2648
+ options = { :order_id => "ABC123", :invalid_option => "i'm invalid" }
2649
+
2650
+ expect do
2651
+ Braintree::Transaction.submit_for_settlement(transaction.id, nil, options)
2652
+ end.to raise_error(ArgumentError)
2653
+ end
2654
+
2553
2655
  it "returns an error result if settlement is too large" do
2554
2656
  transaction = Braintree::Transaction.sale!(
2555
2657
  :amount => Braintree::Test::TransactionAmounts::Authorize,
@@ -2565,6 +2667,46 @@ describe Braintree::Transaction do
2565
2667
  result.params[:transaction][:amount].should == "1000.01"
2566
2668
  end
2567
2669
 
2670
+ it "returns an error result if descriptors are passed in but not supported by processor" do
2671
+ transaction = Braintree::Transaction.sale!(
2672
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
2673
+ :merchant_account_id => SpecHelper::FakeAmexDirectMerchantAccountId,
2674
+ :credit_card => {
2675
+ :number => Braintree::Test::CreditCardNumbers::AmexPayWithPoints::Success,
2676
+ :expiration_date => "05/2009"
2677
+ }
2678
+ )
2679
+
2680
+ options = {
2681
+ :descriptor => {
2682
+ :name => '123*123456789012345678',
2683
+ :phone => '3334445555',
2684
+ :url => "ebay.com"
2685
+ }
2686
+ }
2687
+
2688
+ result = Braintree::Transaction.submit_for_settlement(transaction.id, nil, options)
2689
+ result.success?.should == false
2690
+ result.errors.for(:transaction).on(:base)[0].code.should == Braintree::ErrorCodes::Transaction::ProcessorDoesNotSupportUpdatingDescriptor
2691
+ end
2692
+
2693
+ it "returns an error result if order_id is passed in but not supported by processor" do
2694
+ transaction = Braintree::Transaction.sale!(
2695
+ :amount => Braintree::Test::TransactionAmounts::Authorize,
2696
+ :merchant_account_id => SpecHelper::FakeAmexDirectMerchantAccountId,
2697
+ :credit_card => {
2698
+ :number => Braintree::Test::CreditCardNumbers::AmexPayWithPoints::Success,
2699
+ :expiration_date => "05/2009"
2700
+ }
2701
+ )
2702
+
2703
+ options = { :order_id => "ABC123" }
2704
+
2705
+ result = Braintree::Transaction.submit_for_settlement(transaction.id, nil, options)
2706
+ result.success?.should == false
2707
+ result.errors.for(:transaction).on(:base)[0].code.should == Braintree::ErrorCodes::Transaction::ProcessorDoesNotSupportUpdatingOrderId
2708
+ end
2709
+
2568
2710
  it "returns an error result if status is not authorized" do
2569
2711
  transaction = Braintree::Transaction.sale(
2570
2712
  :amount => Braintree::Test::TransactionAmounts::Decline,
data/spec/spec_helper.rb CHANGED
@@ -38,6 +38,7 @@ unless defined?(SPEC_HELPER_LOADED)
38
38
  NonDefaultSubMerchantAccountId = "sandbox_sub_merchant_account"
39
39
  ThreeDSecureMerchantAccountId = "three_d_secure_merchant_account"
40
40
  FakeAmexDirectMerchantAccountId = "fake_amex_direct_usd"
41
+ FakeVenmoAccountMerchantAccountId = "fake_first_data_venmo_account"
41
42
 
42
43
  TrialPlan = {
43
44
  :description => "Plan for integration tests -- with trial",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braintree
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.54.0
4
+ version: 2.55.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-09 00:00:00.000000000 Z
12
+ date: 2015-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: builder
@@ -35,204 +35,206 @@ extra_rdoc_files: []
35
35
  files:
36
36
  - README.rdoc
37
37
  - LICENSE
38
- - lib/braintree/webhook_testing_gateway.rb
39
- - lib/braintree/version.rb
40
- - lib/braintree/plan.rb
41
- - lib/braintree/configuration.rb
42
- - lib/braintree/disbursement.rb
43
- - lib/braintree/successful_result.rb
44
- - lib/braintree/dispute.rb
45
- - lib/braintree/exceptions.rb
46
- - lib/braintree/add_on_gateway.rb
47
- - lib/braintree/payment_instrument_type.rb
48
- - lib/braintree/transaction_search.rb
49
- - lib/braintree/util.rb
38
+ - lib/braintree/payment_method_nonce.rb
39
+ - lib/braintree/unknown_payment_method.rb
40
+ - lib/braintree/three_d_secure_info.rb
41
+ - lib/braintree/webhook_notification.rb
42
+ - lib/braintree/android_pay_card.rb
43
+ - lib/braintree/payment_method_gateway.rb
50
44
  - lib/braintree/credit_card_verification.rb
51
- - lib/braintree/test/nonce.rb
52
- - lib/braintree/test/credit_card.rb
53
- - lib/braintree/test/transaction_amounts.rb
54
- - lib/braintree/test/merchant_account.rb
55
- - lib/braintree/test/venmo_sdk.rb
56
- - lib/braintree/transaction/credit_card_details.rb
57
- - lib/braintree/transaction/subscription_details.rb
45
+ - lib/braintree/exceptions.rb
46
+ - lib/braintree/webhook_testing_gateway.rb
47
+ - lib/braintree/transaction/customer_details.rb
58
48
  - lib/braintree/transaction/status_details.rb
59
- - lib/braintree/transaction/disbursement_details.rb
60
49
  - lib/braintree/transaction/address_details.rb
61
50
  - lib/braintree/transaction/amex_express_checkout_details.rb
62
- - lib/braintree/transaction/customer_details.rb
51
+ - lib/braintree/transaction/subscription_details.rb
52
+ - lib/braintree/transaction/disbursement_details.rb
63
53
  - lib/braintree/transaction/android_pay_details.rb
64
- - lib/braintree/transaction/paypal_details.rb
65
54
  - lib/braintree/transaction/apple_pay_details.rb
66
55
  - lib/braintree/transaction/coinbase_details.rb
67
- - lib/braintree/risk_data.rb
68
- - lib/braintree/credit_card_verification_search.rb
69
- - lib/braintree/transparent_redirect_gateway.rb
70
- - lib/braintree/three_d_secure_info.rb
71
- - lib/braintree/merchant_gateway.rb
72
- - lib/braintree/subscription/status_details.rb
73
- - lib/braintree/address/country_names.rb
56
+ - lib/braintree/transaction/credit_card_details.rb
57
+ - lib/braintree/transaction/venmo_account_details.rb
58
+ - lib/braintree/transaction/paypal_details.rb
59
+ - lib/braintree/transaction_search.rb
60
+ - lib/braintree/version.rb
74
61
  - lib/braintree/settlement_batch.rb
75
- - lib/braintree/validation_error.rb
76
- - lib/braintree/webhook_notification.rb
77
- - lib/braintree/client_token_gateway.rb
78
- - lib/braintree/subscription_gateway.rb
79
- - lib/braintree/testing_gateway.rb
80
- - lib/braintree/address_gateway.rb
81
- - lib/braintree/payment_method.rb
82
- - lib/braintree/webhook_notification_gateway.rb
62
+ - lib/braintree/payment_instrument_type.rb
63
+ - lib/braintree/paypal_account.rb
64
+ - lib/braintree/transparent_redirect.rb
65
+ - lib/braintree/test/venmo_sdk.rb
66
+ - lib/braintree/test/merchant_account.rb
67
+ - lib/braintree/test/nonce.rb
68
+ - lib/braintree/test/credit_card.rb
69
+ - lib/braintree/test/transaction_amounts.rb
70
+ - lib/braintree/merchant_gateway.rb
71
+ - lib/braintree/client_token.rb
72
+ - lib/braintree/plan.rb
73
+ - lib/braintree/xml/libxml.rb
74
+ - lib/braintree/xml/rexml.rb
75
+ - lib/braintree/xml/generator.rb
76
+ - lib/braintree/xml/parser.rb
77
+ - lib/braintree/successful_result.rb
78
+ - lib/braintree/util.rb
83
79
  - lib/braintree/webhook_testing.rb
80
+ - lib/braintree/digest.rb
81
+ - lib/braintree/europe_bank_account_gateway.rb
82
+ - lib/braintree/settlement_batch_summary_gateway.rb
83
+ - lib/braintree/gateway.rb
84
84
  - lib/braintree/base_module.rb
85
- - lib/braintree/oauth_credentials.rb
85
+ - lib/braintree/customer.rb
86
+ - lib/braintree/settlement_batch_summary.rb
87
+ - lib/braintree/amex_express_checkout_card.rb
88
+ - lib/braintree/credit_card_gateway.rb
89
+ - lib/braintree/discount_gateway.rb
90
+ - lib/braintree/test_transaction.rb
91
+ - lib/braintree/resource_collection.rb
92
+ - lib/braintree/risk_data.rb
93
+ - lib/braintree/dispute.rb
86
94
  - lib/braintree/customer_gateway.rb
87
- - lib/braintree/modification.rb
88
- - lib/braintree/payment_method_nonce_gateway.rb
95
+ - lib/braintree/credit_card_verification_gateway.rb
96
+ - lib/braintree/errors.rb
97
+ - lib/braintree/facilitator_details.rb
89
98
  - lib/braintree/plan_gateway.rb
90
- - lib/braintree/credit_card.rb
91
- - lib/braintree/merchant.rb
92
- - lib/braintree/advanced_search.rb
93
- - lib/braintree/test_transaction.rb
94
- - lib/braintree/transaction_gateway.rb
95
- - lib/braintree/payment_method_gateway.rb
96
- - lib/braintree/settlement_batch_summary.rb
97
- - lib/braintree/merchant_account/funding_details.rb
99
+ - lib/braintree/subscription/status_details.rb
100
+ - lib/braintree/europe_bank_account.rb
101
+ - lib/braintree/add_on.rb
98
102
  - lib/braintree/merchant_account/address_details.rb
99
103
  - lib/braintree/merchant_account/business_details.rb
100
104
  - lib/braintree/merchant_account/individual_details.rb
101
- - lib/braintree/dispute/transaction_details.rb
102
- - lib/braintree/facilitator_details.rb
103
- - lib/braintree/validation_error_collection.rb
105
+ - lib/braintree/merchant_account/funding_details.rb
104
106
  - lib/braintree/sha256_digest.rb
105
- - lib/braintree/europe_bank_account.rb
106
- - lib/braintree/transaction.rb
107
- - lib/braintree/subscription.rb
107
+ - lib/braintree/transaction_gateway.rb
108
108
  - lib/braintree/xml.rb
109
109
  - lib/braintree/merchant_account.rb
110
- - lib/braintree/apple_pay_card.rb
111
- - lib/braintree/error_result.rb
112
- - lib/braintree/payment_method_nonce.rb
113
- - lib/braintree/oauth_gateway.rb
110
+ - lib/braintree/transaction.rb
111
+ - lib/braintree/configuration.rb
112
+ - lib/braintree/payment_method_nonce_gateway.rb
113
+ - lib/braintree/subscription.rb
114
+ - lib/braintree/discount.rb
115
+ - lib/braintree/subscription_search.rb
116
+ - lib/braintree/http.rb
117
+ - lib/braintree/dispute/transaction_details.rb
118
+ - lib/braintree/oauth_credentials.rb
119
+ - lib/braintree/advanced_search.rb
120
+ - lib/braintree/transparent_redirect_gateway.rb
121
+ - lib/braintree/validation_error.rb
122
+ - lib/braintree/client_token_gateway.rb
123
+ - lib/braintree/venmo_account.rb
124
+ - lib/braintree/paypal_account_gateway.rb
125
+ - lib/braintree/webhook_notification_gateway.rb
126
+ - lib/braintree/signature_service.rb
127
+ - lib/braintree/testing_gateway.rb
114
128
  - lib/braintree/descriptor.rb
115
- - lib/braintree/add_on.rb
116
- - lib/braintree/resource_collection.rb
129
+ - lib/braintree/address.rb
130
+ - lib/braintree/subscription_gateway.rb
131
+ - lib/braintree/error_codes.rb
117
132
  - lib/braintree/coinbase_account.rb
118
- - lib/braintree/digest.rb
119
- - lib/braintree/gateway.rb
120
- - lib/braintree/amex_express_checkout_card.rb
121
- - lib/braintree/customer.rb
122
- - lib/braintree/client_token.rb
123
- - lib/braintree/paypal_account_gateway.rb
124
- - lib/braintree/europe_bank_account_gateway.rb
125
- - lib/braintree/transparent_redirect.rb
133
+ - lib/braintree/error_result.rb
134
+ - lib/braintree/apple_pay_card.rb
126
135
  - lib/braintree/credentials_parser.rb
127
- - lib/braintree/errors.rb
128
- - lib/braintree/unknown_payment_method.rb
136
+ - lib/braintree/merchant.rb
137
+ - lib/braintree/validation_error_collection.rb
138
+ - lib/braintree/modification.rb
129
139
  - lib/braintree/customer_search.rb
130
- - lib/braintree/error_codes.rb
131
- - lib/braintree/discount_gateway.rb
132
- - lib/braintree/subscription_search.rb
133
- - lib/braintree/http.rb
134
- - lib/braintree/address.rb
135
- - lib/braintree/credit_card_gateway.rb
136
- - lib/braintree/credit_card_verification_gateway.rb
140
+ - lib/braintree/disbursement.rb
141
+ - lib/braintree/add_on_gateway.rb
142
+ - lib/braintree/credit_card.rb
143
+ - lib/braintree/credit_card_verification_search.rb
137
144
  - lib/braintree/merchant_account_gateway.rb
138
- - lib/braintree/android_pay_card.rb
139
- - lib/braintree/paypal_account.rb
140
- - lib/braintree/signature_service.rb
141
- - lib/braintree/settlement_batch_summary_gateway.rb
142
- - lib/braintree/discount.rb
143
- - lib/braintree/xml/rexml.rb
144
- - lib/braintree/xml/generator.rb
145
- - lib/braintree/xml/libxml.rb
146
- - lib/braintree/xml/parser.rb
145
+ - lib/braintree/address/country_names.rb
146
+ - lib/braintree/oauth_gateway.rb
147
+ - lib/braintree/payment_method.rb
148
+ - lib/braintree/address_gateway.rb
147
149
  - lib/braintree.rb
148
- - lib/ssl/www_braintreegateway_com.ca.crt
149
- - lib/ssl/api_braintreegateway_com.ca.crt
150
- - lib/ssl/securetrust_ca.crt
151
150
  - lib/ssl/sandbox_braintreegateway_com.ca.crt
152
- - spec/httpsd.pid
151
+ - lib/ssl/securetrust_ca.crt
152
+ - lib/ssl/api_braintreegateway_com.ca.crt
153
+ - lib/ssl/www_braintreegateway_com.ca.crt
154
+ - spec/oauth_test_helper.rb
155
+ - spec/spec.opts
156
+ - spec/hacks/tcp_socket.rb
153
157
  - spec/script/httpsd.rb
154
- - spec/unit/braintree/base_module_spec.rb
155
- - spec/unit/braintree/signature_service_spec.rb
156
- - spec/unit/braintree/http_spec.rb
157
- - spec/unit/braintree/modification_spec.rb
158
- - spec/unit/braintree/credit_card_verification_search_spec.rb
158
+ - spec/integration/braintree/discount_spec.rb
159
+ - spec/integration/braintree/merchant_spec.rb
160
+ - spec/integration/braintree/payment_method_spec.rb
161
+ - spec/integration/braintree/test/transaction_amounts_spec.rb
162
+ - spec/integration/braintree/http_spec.rb
163
+ - spec/integration/braintree/advanced_search_spec.rb
164
+ - spec/integration/braintree/test_transaction_spec.rb
165
+ - spec/integration/braintree/disbursement_spec.rb
166
+ - spec/integration/braintree/add_on_spec.rb
167
+ - spec/integration/braintree/coinbase_spec.rb
168
+ - spec/integration/braintree/oauth_spec.rb
169
+ - spec/integration/braintree/credit_card_spec.rb
170
+ - spec/integration/braintree/paypal_account_spec.rb
171
+ - spec/integration/braintree/customer_search_spec.rb
172
+ - spec/integration/braintree/error_codes_spec.rb
173
+ - spec/integration/braintree/transaction_search_spec.rb
174
+ - spec/integration/braintree/merchant_account_spec.rb
175
+ - spec/integration/braintree/credit_card_verification_search_spec.rb
176
+ - spec/integration/braintree/plan_spec.rb
177
+ - spec/integration/braintree/settlement_batch_summary_spec.rb
178
+ - spec/integration/braintree/payment_method_nonce_spec.rb
179
+ - spec/integration/braintree/transaction_spec.rb
180
+ - spec/integration/braintree/address_spec.rb
181
+ - spec/integration/braintree/client_api/client_token_spec.rb
182
+ - spec/integration/braintree/client_api/spec_helper.rb
183
+ - spec/integration/braintree/credit_card_verification_spec.rb
184
+ - spec/integration/braintree/customer_spec.rb
185
+ - spec/integration/braintree/transparent_redirect_spec.rb
186
+ - spec/integration/braintree/subscription_spec.rb
187
+ - spec/integration/spec_helper.rb
188
+ - spec/ssl/certificate.crt
189
+ - spec/ssl/privateKey.key
190
+ - spec/ssl/geotrust_global.crt
191
+ - spec/httpsd.pid
192
+ - spec/spec_helper.rb
193
+ - spec/unit/braintree/dispute_spec.rb
194
+ - spec/unit/braintree/util_spec.rb
195
+ - spec/unit/braintree/resource_collection_spec.rb
196
+ - spec/unit/braintree/validation_error_collection_spec.rb
197
+ - spec/unit/braintree/transaction/credit_card_details_spec.rb
159
198
  - spec/unit/braintree/transaction/deposit_details_spec.rb
160
199
  - spec/unit/braintree/transaction/customer_details_spec.rb
161
- - spec/unit/braintree/transaction/credit_card_details_spec.rb
200
+ - spec/unit/braintree/payment_method_spec.rb
201
+ - spec/unit/braintree/base_module_spec.rb
202
+ - spec/unit/braintree/http_spec.rb
203
+ - spec/unit/braintree/xml/libxml_spec.rb
204
+ - spec/unit/braintree/xml/parser_spec.rb
205
+ - spec/unit/braintree/xml/rexml_spec.rb
206
+ - spec/unit/braintree/digest_spec.rb
207
+ - spec/unit/braintree/sha256_digest_spec.rb
208
+ - spec/unit/braintree/disbursement_spec.rb
209
+ - spec/unit/braintree/xml_spec.rb
210
+ - spec/unit/braintree/client_token_spec.rb
162
211
  - spec/unit/braintree/error_result_spec.rb
163
- - spec/unit/braintree/unknown_payment_method_spec.rb
164
212
  - spec/unit/braintree/credit_card_spec.rb
165
- - spec/unit/braintree/disbursement_spec.rb
213
+ - spec/unit/braintree/paypal_account_spec.rb
214
+ - spec/unit/braintree/webhook_notification_spec.rb
166
215
  - spec/unit/braintree/credentials_parser_spec.rb
167
- - spec/unit/braintree/subscription_spec.rb
168
- - spec/unit/braintree/successful_result_spec.rb
169
- - spec/unit/braintree/merchant_account_spec.rb
170
- - spec/unit/braintree/sha256_digest_spec.rb
171
216
  - spec/unit/braintree/transaction_search_spec.rb
172
- - spec/unit/braintree/util_spec.rb
173
- - spec/unit/braintree/validation_error_spec.rb
217
+ - spec/unit/braintree/errors_spec.rb
218
+ - spec/unit/braintree/merchant_account_spec.rb
219
+ - spec/unit/braintree/credit_card_verification_search_spec.rb
220
+ - spec/unit/braintree/configuration_spec.rb
221
+ - spec/unit/braintree/three_d_secure_info_spec.rb
222
+ - spec/unit/braintree/unknown_payment_method_spec.rb
223
+ - spec/unit/braintree/modification_spec.rb
224
+ - spec/unit/braintree/risk_data_spec.rb
225
+ - spec/unit/braintree/signature_service_spec.rb
226
+ - spec/unit/braintree/apple_pay_card_spec.rb
174
227
  - spec/unit/braintree/transaction_spec.rb
175
- - spec/unit/braintree/resource_collection_spec.rb
176
- - spec/unit/braintree/paypal_account_spec.rb
228
+ - spec/unit/braintree/successful_result_spec.rb
177
229
  - spec/unit/braintree/address_spec.rb
178
- - spec/unit/braintree/webhook_notification_spec.rb
179
- - spec/unit/braintree/transparent_redirect_spec.rb
180
- - spec/unit/braintree/configuration_spec.rb
181
230
  - spec/unit/braintree/credit_card_verification_spec.rb
182
- - spec/unit/braintree/client_token_spec.rb
183
- - spec/unit/braintree/apple_pay_card_spec.rb
184
- - spec/unit/braintree/risk_data_spec.rb
185
- - spec/unit/braintree/customer_spec.rb
186
- - spec/unit/braintree/xml_spec.rb
187
- - spec/unit/braintree/validation_error_collection_spec.rb
188
- - spec/unit/braintree/payment_method_spec.rb
231
+ - spec/unit/braintree/validation_error_spec.rb
189
232
  - spec/unit/braintree/subscription_search_spec.rb
190
- - spec/unit/braintree/three_d_secure_info_spec.rb
191
- - spec/unit/braintree/digest_spec.rb
192
- - spec/unit/braintree/errors_spec.rb
193
- - spec/unit/braintree/dispute_spec.rb
194
- - spec/unit/braintree/xml/parser_spec.rb
195
- - spec/unit/braintree/xml/libxml_spec.rb
196
- - spec/unit/braintree/xml/rexml_spec.rb
233
+ - spec/unit/braintree/customer_spec.rb
234
+ - spec/unit/braintree/transparent_redirect_spec.rb
235
+ - spec/unit/braintree/subscription_spec.rb
197
236
  - spec/unit/braintree_spec.rb
198
237
  - spec/unit/spec_helper.rb
199
- - spec/hacks/tcp_socket.rb
200
- - spec/oauth_test_helper.rb
201
- - spec/integration/braintree/http_spec.rb
202
- - spec/integration/braintree/credit_card_verification_search_spec.rb
203
- - spec/integration/braintree/payment_method_nonce_spec.rb
204
- - spec/integration/braintree/test/transaction_amounts_spec.rb
205
- - spec/integration/braintree/client_api/client_token_spec.rb
206
- - spec/integration/braintree/client_api/spec_helper.rb
207
- - spec/integration/braintree/test_transaction_spec.rb
208
- - spec/integration/braintree/merchant_spec.rb
209
- - spec/integration/braintree/add_on_spec.rb
210
- - spec/integration/braintree/credit_card_spec.rb
211
- - spec/integration/braintree/disbursement_spec.rb
212
- - spec/integration/braintree/subscription_spec.rb
213
- - spec/integration/braintree/merchant_account_spec.rb
214
- - spec/integration/braintree/advanced_search_spec.rb
215
- - spec/integration/braintree/transaction_search_spec.rb
216
- - spec/integration/braintree/transaction_spec.rb
217
- - spec/integration/braintree/plan_spec.rb
218
- - spec/integration/braintree/paypal_account_spec.rb
219
- - spec/integration/braintree/discount_spec.rb
220
- - spec/integration/braintree/address_spec.rb
221
- - spec/integration/braintree/transparent_redirect_spec.rb
222
- - spec/integration/braintree/credit_card_verification_spec.rb
223
- - spec/integration/braintree/coinbase_spec.rb
224
- - spec/integration/braintree/customer_spec.rb
225
- - spec/integration/braintree/payment_method_spec.rb
226
- - spec/integration/braintree/settlement_batch_summary_spec.rb
227
- - spec/integration/braintree/oauth_spec.rb
228
- - spec/integration/braintree/error_codes_spec.rb
229
- - spec/integration/braintree/customer_search_spec.rb
230
- - spec/integration/spec_helper.rb
231
- - spec/spec_helper.rb
232
- - spec/spec.opts
233
- - spec/ssl/geotrust_global.crt
234
- - spec/ssl/privateKey.key
235
- - spec/ssl/certificate.crt
236
238
  - braintree.gemspec
237
239
  homepage: http://www.braintreepayments.com/
238
240
  licenses: