braintree 2.40.0 → 2.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/braintree.rb +2 -2
- data/lib/braintree/add_on.rb +0 -1
- data/lib/braintree/address.rb +0 -1
- data/lib/braintree/apple_pay_card.rb +0 -1
- data/lib/braintree/configuration.rb +0 -1
- data/lib/braintree/credit_card.rb +0 -33
- data/lib/braintree/credit_card_verification.rb +0 -1
- data/lib/braintree/customer.rb +1 -32
- data/lib/braintree/discount.rb +0 -1
- data/lib/braintree/error_codes.rb +1 -6
- data/lib/braintree/error_result.rb +0 -1
- data/lib/braintree/errors.rb +0 -1
- data/lib/braintree/{sepa_bank_account.rb → europe_bank_account.rb} +2 -2
- data/lib/braintree/{sepa_bank_account_gateway.rb → europe_bank_account_gateway.rb} +3 -3
- data/lib/braintree/gateway.rb +2 -3
- data/lib/braintree/payment_instrument_type.rb +1 -1
- data/lib/braintree/payment_method_gateway.rb +4 -4
- data/lib/braintree/paypal_account.rb +0 -2
- data/lib/braintree/plan.rb +0 -2
- data/lib/braintree/subscription.rb +0 -6
- data/lib/braintree/successful_result.rb +0 -1
- data/lib/braintree/test/credit_card.rb +0 -2
- data/lib/braintree/test/transaction_amounts.rb +0 -2
- data/lib/braintree/transaction.rb +0 -27
- data/lib/braintree/transaction/credit_card_details.rb +2 -2
- data/lib/braintree/transaction/paypal_details.rb +2 -1
- data/lib/braintree/transaction_search.rb +1 -1
- data/lib/braintree/transparent_redirect.rb +0 -11
- data/lib/braintree/validation_error.rb +0 -1
- data/lib/braintree/validation_error_collection.rb +0 -1
- data/lib/braintree/version.rb +1 -1
- data/spec/httpsd.pid +1 -1
- data/spec/integration/braintree/client_api/client_token_spec.rb +1 -1
- data/spec/integration/braintree/client_api/spec_helper.rb +3 -4
- data/spec/integration/braintree/credit_card_spec.rb +1 -1
- data/spec/integration/braintree/payment_method_spec.rb +2 -2
- data/spec/integration/braintree/transaction_search_spec.rb +3 -3
- data/spec/integration/braintree/transaction_spec.rb +16 -0
- data/spec/unit/braintree/transaction/credit_card_details_spec.rb +3 -2
- metadata +161 -157
- checksums.yaml +0 -7
@@ -1,5 +1,5 @@
|
|
1
1
|
module Braintree
|
2
|
-
class
|
2
|
+
class EuropeBankAccountGateway
|
3
3
|
def initialize(gateway)
|
4
4
|
@gateway = gateway
|
5
5
|
@config = gateway.config
|
@@ -7,8 +7,8 @@ module Braintree
|
|
7
7
|
|
8
8
|
def find(token)
|
9
9
|
raise ArgumentError if token.nil? || token.to_s.strip == ""
|
10
|
-
response = @config.http.get "/payment_methods/
|
11
|
-
|
10
|
+
response = @config.http.get "/payment_methods/europe_bank_account/#{token}"
|
11
|
+
EuropeBankAccount._new(@gateway, response[:europe_bank_account])
|
12
12
|
rescue NotFoundError
|
13
13
|
raise NotFoundError, "payment method with token #{token.inspect} not found"
|
14
14
|
end
|
data/lib/braintree/gateway.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
module Braintree
|
2
|
-
# See http://www.braintreepayments.com/docs/ruby
|
3
2
|
class Gateway
|
4
3
|
attr_reader :config
|
5
4
|
|
@@ -57,8 +56,8 @@ module Braintree
|
|
57
56
|
MerchantAccountGateway.new(self)
|
58
57
|
end
|
59
58
|
|
60
|
-
def
|
61
|
-
|
59
|
+
def europe_bank_account
|
60
|
+
EuropeBankAccountGateway.new(self)
|
62
61
|
end
|
63
62
|
|
64
63
|
def settlement_batch_summary
|
@@ -18,8 +18,8 @@ module Braintree
|
|
18
18
|
SuccessfulResult.new(:payment_method => PayPalAccount._new(@gateway, response[:paypal_account]))
|
19
19
|
elsif response[:coinbase_account]
|
20
20
|
SuccessfulResult.new(:payment_method => CoinbaseAccount._new(@gateway, response[:coinbase_account]))
|
21
|
-
elsif response[:
|
22
|
-
SuccessfulResult.new(:payment_method =>
|
21
|
+
elsif response[:europe_bank_account]
|
22
|
+
SuccessfulResult.new(:payment_method => EuropeBankAccount._new(@gateway, response[:europe_bank_account]))
|
23
23
|
elsif response[:apple_pay_card]
|
24
24
|
SuccessfulResult.new(:payment_method => ApplePayCard._new(@gateway, response[:apple_pay_card]))
|
25
25
|
elsif response[:api_error_response]
|
@@ -44,8 +44,8 @@ module Braintree
|
|
44
44
|
PayPalAccount._new(@gateway, response[:paypal_account])
|
45
45
|
elsif response[:coinbase_account]
|
46
46
|
SuccessfulResult.new(:payment_method => CoinbaseAccount._new(@gateway, response[:coinbase_account]))
|
47
|
-
elsif response.has_key?(:
|
48
|
-
|
47
|
+
elsif response.has_key?(:europe_bank_account)
|
48
|
+
EuropeBankAccount._new(@gateway, response[:europe_bank_account])
|
49
49
|
elsif response.has_key?(:apple_pay_card)
|
50
50
|
ApplePayCard._new(@gateway, response[:apple_pay_card])
|
51
51
|
else
|
@@ -30,12 +30,10 @@ module Braintree
|
|
30
30
|
Configuration.gateway.paypal_account.delete(token)
|
31
31
|
end
|
32
32
|
|
33
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/create_from_vault
|
34
33
|
def self.sale(token, transaction_attributes)
|
35
34
|
Configuration.gateway.transaction.sale(transaction_attributes.merge(:payment_method_token => token))
|
36
35
|
end
|
37
36
|
|
38
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/create_from_vault
|
39
37
|
def self.sale!(token, transaction_attributes)
|
40
38
|
return_object_or_raise(:transaction) { sale(token, transaction_attributes) }
|
41
39
|
end
|
data/lib/braintree/plan.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
module Braintree
|
2
|
-
# See http://www.braintreepayments.com/docs/ruby
|
3
2
|
class Plan
|
4
3
|
include BaseModule
|
5
4
|
|
@@ -20,7 +19,6 @@ module Braintree
|
|
20
19
|
attr_reader :updated_at
|
21
20
|
attr_reader :add_ons
|
22
21
|
|
23
|
-
# See http://www.braintreepayments.com/docs/ruby/plans/all
|
24
22
|
def self.all
|
25
23
|
Configuration.gateway.plan.all
|
26
24
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
module Braintree
|
2
|
-
# See http://www.braintreepayments.com/docs/ruby/subscriptions/overview
|
3
2
|
class Subscription
|
4
3
|
include BaseModule
|
5
4
|
|
@@ -39,12 +38,10 @@ module Braintree
|
|
39
38
|
attr_reader :updated_at, :created_at
|
40
39
|
attr_reader :status_history
|
41
40
|
|
42
|
-
# See http://www.braintreepayments.com/docs/ruby/subscriptions/cancel
|
43
41
|
def self.cancel(subscription_id)
|
44
42
|
Configuration.gateway.subscription.cancel(subscription_id)
|
45
43
|
end
|
46
44
|
|
47
|
-
# See http://www.braintreepayments.com/docs/ruby/subscriptions/create
|
48
45
|
def self.create(attributes)
|
49
46
|
Configuration.gateway.subscription.create(attributes)
|
50
47
|
end
|
@@ -53,7 +50,6 @@ module Braintree
|
|
53
50
|
return_object_or_raise(:subscription) { create(attributes) }
|
54
51
|
end
|
55
52
|
|
56
|
-
# See http://www.braintreepayments.com/docs/ruby/subscriptions/search
|
57
53
|
def self.find(id)
|
58
54
|
Configuration.gateway.subscription.find(id)
|
59
55
|
end
|
@@ -62,12 +58,10 @@ module Braintree
|
|
62
58
|
Configuration.gateway.transaction.retry_subscription_charge(subscription_id, amount)
|
63
59
|
end
|
64
60
|
|
65
|
-
# See http://www.braintreepayments.com/docs/ruby/subscriptions/search
|
66
61
|
def self.search(&block)
|
67
62
|
Configuration.gateway.subscription.search(&block)
|
68
63
|
end
|
69
64
|
|
70
|
-
# See http://www.braintreepayments.com/docs/ruby/subscriptions/update
|
71
65
|
def self.update(subscription_id, attributes)
|
72
66
|
Configuration.gateway.subscription.update(subscription_id, attributes)
|
73
67
|
end
|
@@ -3,8 +3,6 @@ module Braintree
|
|
3
3
|
# The constants contained in the Braintree::Test::CreditCardNumbers module provide
|
4
4
|
# credit card numbers that should be used when working in the sandbox environment. The sandbox
|
5
5
|
# will not accept any credit card numbers other than the ones listed below.
|
6
|
-
#
|
7
|
-
# See http://www.braintreepayments.com/docs/ruby/reference/sandbox
|
8
6
|
module CreditCardNumbers
|
9
7
|
module CardTypeIndicators
|
10
8
|
Prepaid = "4111111111111210"
|
@@ -2,8 +2,6 @@ module Braintree
|
|
2
2
|
module Test # :nodoc:
|
3
3
|
# The constants in this module can be used to create transactions with
|
4
4
|
# the desired status in the sandbox environment.
|
5
|
-
#
|
6
|
-
# See http://www.braintreepayments.com/docs/ruby/reference/sandbox
|
7
5
|
module TransactionAmounts
|
8
6
|
Authorize = "1000.00"
|
9
7
|
Decline = "2000.00"
|
@@ -1,5 +1,4 @@
|
|
1
1
|
module Braintree
|
2
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/overview
|
3
2
|
class Transaction
|
4
3
|
include BaseModule
|
5
4
|
|
@@ -116,12 +115,10 @@ module Braintree
|
|
116
115
|
attr_reader :payment_instrument_type
|
117
116
|
attr_reader :risk_data
|
118
117
|
|
119
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/create
|
120
118
|
def self.create(attributes)
|
121
119
|
Configuration.gateway.transaction.create(attributes)
|
122
120
|
end
|
123
121
|
|
124
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/create
|
125
122
|
def self.create!(attributes)
|
126
123
|
return_object_or_raise(:transaction) { create(attributes) }
|
127
124
|
end
|
@@ -143,16 +140,12 @@ module Braintree
|
|
143
140
|
end
|
144
141
|
|
145
142
|
# Deprecated. Use Braintree::TransparentRedirect.confirm
|
146
|
-
#
|
147
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/create_tr
|
148
143
|
def self.create_from_transparent_redirect(query_string)
|
149
144
|
warn "[DEPRECATED] Transaction.create_from_transparent_redirect is deprecated. Please use TransparentRedirect.confirm"
|
150
145
|
Configuration.gateway.transaction.create_from_transparent_redirect(query_string)
|
151
146
|
end
|
152
147
|
|
153
148
|
# Deprecated. Use Braintree::TransparentRedirect.url
|
154
|
-
#
|
155
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/create_tr
|
156
149
|
def self.create_transaction_url
|
157
150
|
warn "[DEPRECATED] Transaction.create_transaction_url is deprecated. Please use TransparentRedirect.url"
|
158
151
|
Configuration.gateway.transaction.create_transaction_url
|
@@ -166,7 +159,6 @@ module Braintree
|
|
166
159
|
return_object_or_raise(:transaction) { credit(attributes) }
|
167
160
|
end
|
168
161
|
|
169
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/search
|
170
162
|
def self.find(id)
|
171
163
|
Configuration.gateway.transaction.find(id)
|
172
164
|
end
|
@@ -179,27 +171,22 @@ module Braintree
|
|
179
171
|
return_object_or_raise(:transaction) { hold_in_escrow(id) }
|
180
172
|
end
|
181
173
|
|
182
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/refund
|
183
174
|
def self.refund(id, amount = nil)
|
184
175
|
Configuration.gateway.transaction.refund(id, amount)
|
185
176
|
end
|
186
177
|
|
187
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/refund
|
188
178
|
def self.refund!(id, amount = nil)
|
189
179
|
return_object_or_raise(:transaction) { refund(id, amount) }
|
190
180
|
end
|
191
181
|
|
192
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/create
|
193
182
|
def self.sale(attributes)
|
194
183
|
Configuration.gateway.transaction.sale(attributes)
|
195
184
|
end
|
196
185
|
|
197
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/create
|
198
186
|
def self.sale!(attributes)
|
199
187
|
return_object_or_raise(:transaction) { sale(attributes) }
|
200
188
|
end
|
201
189
|
|
202
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/search
|
203
190
|
def self.search(&block)
|
204
191
|
Configuration.gateway.transaction.search(&block)
|
205
192
|
end
|
@@ -212,22 +199,18 @@ module Braintree
|
|
212
199
|
return_object_or_raise(:transaction) { release_from_escrow(transaction_id) }
|
213
200
|
end
|
214
201
|
|
215
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/submit_for_settlement
|
216
202
|
def self.submit_for_settlement(transaction_id, amount = nil)
|
217
203
|
Configuration.gateway.transaction.submit_for_settlement(transaction_id, amount)
|
218
204
|
end
|
219
205
|
|
220
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/submit_for_settlement
|
221
206
|
def self.submit_for_settlement!(transaction_id, amount = nil)
|
222
207
|
return_object_or_raise(:transaction) { submit_for_settlement(transaction_id, amount) }
|
223
208
|
end
|
224
209
|
|
225
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/void
|
226
210
|
def self.void(transaction_id)
|
227
211
|
Configuration.gateway.transaction.void(transaction_id)
|
228
212
|
end
|
229
213
|
|
230
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/void
|
231
214
|
def self.void!(transaction_id)
|
232
215
|
return_object_or_raise(:transaction) { void(transaction_id) }
|
233
216
|
end
|
@@ -277,8 +260,6 @@ module Braintree
|
|
277
260
|
end
|
278
261
|
|
279
262
|
# Deprecated. Use Braintree::Transaction.refund
|
280
|
-
#
|
281
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/refund
|
282
263
|
def refund(amount = nil)
|
283
264
|
warn "[DEPRECATED] refund as an instance method is deprecated. Please use Transaction.refund"
|
284
265
|
result = @gateway.transaction.refund(id, amount)
|
@@ -306,8 +287,6 @@ module Braintree
|
|
306
287
|
end
|
307
288
|
|
308
289
|
# Deprecated. Use Braintree::Transaction.submit_for_settlement
|
309
|
-
#
|
310
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/submit_for_settlement
|
311
290
|
def submit_for_settlement(amount = nil)
|
312
291
|
warn "[DEPRECATED] submit_for_settlement as an instance method is deprecated. Please use Transaction.submit_for_settlement"
|
313
292
|
result = @gateway.transaction.submit_for_settlement(id, amount)
|
@@ -318,8 +297,6 @@ module Braintree
|
|
318
297
|
end
|
319
298
|
|
320
299
|
# Deprecated. Use Braintree::Transaction.submit_for_settlement!
|
321
|
-
#
|
322
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/submit_for_settlement
|
323
300
|
def submit_for_settlement!(amount = nil)
|
324
301
|
warn "[DEPRECATED] submit_for_settlement! as an instance method is deprecated. Please use Transaction.submit_for_settlement!"
|
325
302
|
return_object_or_raise(:transaction) { submit_for_settlement(amount) }
|
@@ -362,8 +339,6 @@ module Braintree
|
|
362
339
|
end
|
363
340
|
|
364
341
|
# Deprecated. Use Braintree::Transaction.void
|
365
|
-
#
|
366
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/void
|
367
342
|
def void
|
368
343
|
warn "[DEPRECATED] void as an instance method is deprecated. Please use Transaction.void"
|
369
344
|
result = @gateway.transaction.void(id)
|
@@ -374,8 +349,6 @@ module Braintree
|
|
374
349
|
end
|
375
350
|
|
376
351
|
# Deprecated. Use Braintree::Transaction.void!
|
377
|
-
#
|
378
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/void
|
379
352
|
def void!
|
380
353
|
warn "[DEPRECATED] void! as an instance method is deprecated. Please use Transaction.void!"
|
381
354
|
return_object_or_raise(:transaction) { void }
|
@@ -5,7 +5,7 @@ module Braintree
|
|
5
5
|
|
6
6
|
attr_reader :bin, :card_type, :cardholder_name, :customer_location, :expiration_month,
|
7
7
|
:expiration_year, :last_4, :token, :prepaid, :healthcare, :durbin_regulated, :debit,
|
8
|
-
:commercial, :payroll, :country_of_issuance, :issuing_bank
|
8
|
+
:commercial, :payroll, :country_of_issuance, :issuing_bank, :image_url
|
9
9
|
|
10
10
|
def initialize(attributes)
|
11
11
|
set_instance_variables_from_hash attributes unless attributes.nil?
|
@@ -17,7 +17,7 @@ module Braintree
|
|
17
17
|
|
18
18
|
def inspect
|
19
19
|
attr_order = [:token, :bin, :last_4, :card_type, :expiration_date, :cardholder_name, :customer_location, :prepaid,
|
20
|
-
:healthcare, :durbin_regulated, :debit, :commercial, :payroll, :country_of_issuance, :issuing_bank]
|
20
|
+
:healthcare, :durbin_regulated, :debit, :commercial, :payroll, :country_of_issuance, :issuing_bank, :image_url]
|
21
21
|
formatted_attrs = attr_order.map do |attr|
|
22
22
|
"#{attr}: #{send(attr).inspect}"
|
23
23
|
end
|
@@ -4,7 +4,8 @@ module Braintree
|
|
4
4
|
include BaseModule
|
5
5
|
|
6
6
|
attr_reader :custom_field, :payer_email, :payment_id, :authorization_id, :token,
|
7
|
-
:image_url, :debug_id, :payee_email
|
7
|
+
:image_url, :debug_id, :payee_email, :payer_id, :payer_first_name, :payer_last_name,
|
8
|
+
:seller_protection_status, :capture_id, :refund_id
|
8
9
|
|
9
10
|
def initialize(attributes)
|
10
11
|
set_instance_variables_from_hash attributes unless attributes.nil?
|
@@ -1,10 +1,4 @@
|
|
1
1
|
module Braintree
|
2
|
-
# See:
|
3
|
-
# * http://www.braintreepayments.com/docs/ruby/transactions/create_tr
|
4
|
-
# * http://www.braintreepayments.com/docs/ruby/customers/create_tr
|
5
|
-
# * http://www.braintreepayments.com/docs/ruby/customers/update_tr
|
6
|
-
# * http://www.braintreepayments.com/docs/ruby/credit_cards/create_tr
|
7
|
-
# * http://www.braintreepayments.com/docs/ruby/credit_cards/update_tr
|
8
2
|
module TransparentRedirect
|
9
3
|
module Kind # :nodoc:
|
10
4
|
CreateCustomer = "create_customer"
|
@@ -18,27 +12,22 @@ module Braintree
|
|
18
12
|
Configuration.gateway.transparent_redirect.confirm(query_string)
|
19
13
|
end
|
20
14
|
|
21
|
-
# See http://www.braintreepayments.com/docs/ruby/credit_cards/create_tr
|
22
15
|
def self.create_credit_card_data(params)
|
23
16
|
Configuration.gateway.transparent_redirect.create_credit_card_data(params)
|
24
17
|
end
|
25
18
|
|
26
|
-
# See http://www.braintreepayments.com/docs/ruby/customers/create_tr
|
27
19
|
def self.create_customer_data(params)
|
28
20
|
Configuration.gateway.transparent_redirect.create_customer_data(params)
|
29
21
|
end
|
30
22
|
|
31
|
-
# See http://www.braintreepayments.com/docs/ruby/transactions/create_tr
|
32
23
|
def self.transaction_data(params)
|
33
24
|
Configuration.gateway.transparent_redirect.transaction_data(params)
|
34
25
|
end
|
35
26
|
|
36
|
-
# See http://www.braintreepayments.com/docs/ruby/credit_cards/update_tr
|
37
27
|
def self.update_credit_card_data(params)
|
38
28
|
Configuration.gateway.transparent_redirect.update_credit_card_data(params)
|
39
29
|
end
|
40
30
|
|
41
|
-
# See http://www.braintreepayments.com/docs/ruby/customers/update_tr
|
42
31
|
def self.update_customer_data(params)
|
43
32
|
Configuration.gateway.transparent_redirect.update_customer_data(params)
|
44
33
|
end
|
data/lib/braintree/version.rb
CHANGED
data/spec/httpsd.pid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
20677
|
@@ -194,7 +194,7 @@ describe Braintree::ClientToken do
|
|
194
194
|
raw_client_token = Braintree::ClientToken.generate(
|
195
195
|
:customer_id => customer_id,
|
196
196
|
:sepa_mandate_acceptance_location => "Hamburg, Germany",
|
197
|
-
:sepa_mandate_type => Braintree::
|
197
|
+
:sepa_mandate_type => Braintree::EuropeBankAccount::MandateType::Business
|
198
198
|
)
|
199
199
|
client_token = decode_client_token(raw_client_token)
|
200
200
|
|
@@ -145,7 +145,7 @@ class ClientApiHttp
|
|
145
145
|
post("/merchants/#{config.merchant_id}/client_api/v1/payment_methods/paypal_accounts", params)
|
146
146
|
end
|
147
147
|
|
148
|
-
def
|
148
|
+
def create_europe_bank_account_nonce(params)
|
149
149
|
foo = {
|
150
150
|
:authorization_fingerprint => @options[:authorization_fingerprint],
|
151
151
|
:shared_customer_identifier => "fake_identifier",
|
@@ -156,8 +156,7 @@ class ClientApiHttp
|
|
156
156
|
|
157
157
|
response = post("/merchants/#{config.merchant_id}/client_api/v1/sepa_mandates", foo)
|
158
158
|
|
159
|
-
mrn = JSON.parse(response.body)['sepaMandates'][0]['mandateReferenceNumber']
|
160
|
-
|
161
|
-
JSON.parse(accept_response.body)['sepaBankAccounts'][0]['nonce']
|
159
|
+
mrn = JSON.parse(response.body)['europeBankAccounts'][0]['sepaMandates'][0]['mandateReferenceNumber']
|
160
|
+
JSON.parse(response.body)['europeBankAccounts'][0]['nonce']
|
162
161
|
end
|
163
162
|
end
|
@@ -1091,7 +1091,7 @@ describe Braintree::CreditCard do
|
|
1091
1091
|
Braintree::CreditCard.create!(
|
1092
1092
|
:customer_id => customer.id,
|
1093
1093
|
:number => Braintree::Test::CreditCardNumbers::Visa,
|
1094
|
-
:expiration_date => "01/
|
1094
|
+
:expiration_date => "01/2015"
|
1095
1095
|
)
|
1096
1096
|
end
|
1097
1097
|
|