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 +2 -0
- data/lib/braintree/customer.rb +9 -2
- data/lib/braintree/error_codes.rb +2 -0
- data/lib/braintree/merchant_account.rb +2 -1
- data/lib/braintree/payment_method_gateway.rb +2 -0
- data/lib/braintree/test/nonce.rb +1 -0
- data/lib/braintree/transaction.rb +4 -2
- data/lib/braintree/transaction/venmo_account_details.rb +13 -0
- data/lib/braintree/transaction_gateway.rb +12 -3
- data/lib/braintree/venmo_account.rb +27 -0
- data/lib/braintree/version.rb +1 -1
- data/spec/httpsd.pid +1 -1
- data/spec/integration/braintree/customer_spec.rb +15 -0
- data/spec/integration/braintree/merchant_account_spec.rb +6 -0
- data/spec/integration/braintree/payment_method_spec.rb +22 -0
- data/spec/integration/braintree/transaction_spec.rb +142 -0
- data/spec/spec_helper.rb +1 -0
- metadata +164 -162
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"
|
data/lib/braintree/customer.rb
CHANGED
@@ -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
|
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
|
data/lib/braintree/test/nonce.rb
CHANGED
@@ -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
|
-
|
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
|
+
|
data/lib/braintree/version.rb
CHANGED
data/spec/httpsd.pid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
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.
|
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-
|
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/
|
39
|
-
- lib/braintree/
|
40
|
-
- lib/braintree/
|
41
|
-
- lib/braintree/
|
42
|
-
- lib/braintree/
|
43
|
-
- lib/braintree/
|
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/
|
52
|
-
- lib/braintree/
|
53
|
-
- lib/braintree/
|
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/
|
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/
|
68
|
-
- lib/braintree/
|
69
|
-
- lib/braintree/
|
70
|
-
- lib/braintree/
|
71
|
-
- lib/braintree/
|
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/
|
76
|
-
- lib/braintree/
|
77
|
-
- lib/braintree/
|
78
|
-
- lib/braintree/
|
79
|
-
- lib/braintree/
|
80
|
-
- lib/braintree/
|
81
|
-
- lib/braintree/
|
82
|
-
- lib/braintree/
|
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/
|
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/
|
88
|
-
- lib/braintree/
|
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/
|
91
|
-
- lib/braintree/
|
92
|
-
- lib/braintree/
|
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/
|
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/
|
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/
|
111
|
-
- lib/braintree/
|
112
|
-
- lib/braintree/
|
113
|
-
- lib/braintree/
|
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/
|
116
|
-
- lib/braintree/
|
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/
|
119
|
-
- lib/braintree/
|
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/
|
128
|
-
- lib/braintree/
|
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/
|
131
|
-
- lib/braintree/
|
132
|
-
- lib/braintree/
|
133
|
-
- lib/braintree/
|
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/
|
139
|
-
- lib/braintree/
|
140
|
-
- lib/braintree/
|
141
|
-
- lib/braintree/
|
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
|
-
-
|
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/
|
155
|
-
- spec/
|
156
|
-
- spec/
|
157
|
-
- spec/
|
158
|
-
- spec/
|
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/
|
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/
|
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/
|
173
|
-
- spec/unit/braintree/
|
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/
|
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/
|
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/
|
191
|
-
- spec/unit/braintree/
|
192
|
-
- spec/unit/braintree/
|
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:
|