stripe 1.31.0 → 1.58.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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +5 -0
- data/.travis.yml +2 -12
- data/Gemfile +29 -4
- data/History.txt +168 -0
- data/README.md +134 -0
- data/Rakefile +10 -0
- data/VERSION +1 -1
- data/bin/stripe-console +12 -5
- data/lib/data/ca-certificates.crt +3868 -5114
- data/lib/stripe/account.rb +41 -21
- data/lib/stripe/alipay_account.rb +20 -0
- data/lib/stripe/api_operations/create.rb +1 -1
- data/lib/stripe/api_operations/delete.rb +1 -1
- data/lib/stripe/api_operations/list.rb +1 -2
- data/lib/stripe/api_operations/save.rb +87 -0
- data/lib/stripe/api_resource.rb +37 -4
- data/lib/stripe/apple_pay_domain.rb +12 -0
- data/lib/stripe/application_fee.rb +8 -8
- data/lib/stripe/application_fee_refund.rb +7 -3
- data/lib/stripe/balance_transaction.rb +1 -1
- data/lib/stripe/bank_account.rb +9 -5
- data/lib/stripe/bitcoin_receiver.rb +6 -6
- data/lib/stripe/bitcoin_transaction.rb +1 -1
- data/lib/stripe/card.rb +9 -5
- data/lib/stripe/charge.rb +30 -12
- data/lib/stripe/country_spec.rb +9 -0
- data/lib/stripe/coupon.rb +1 -1
- data/lib/stripe/customer.rb +6 -4
- data/lib/stripe/dispute.rb +2 -2
- data/lib/stripe/errors.rb +82 -0
- data/lib/stripe/file_upload.rb +1 -1
- data/lib/stripe/invoice.rb +3 -3
- data/lib/stripe/invoice_item.rb +1 -1
- data/lib/stripe/list_object.rb +7 -6
- data/lib/stripe/order.rb +10 -2
- data/lib/stripe/order_return.rb +9 -0
- data/lib/stripe/plan.rb +1 -1
- data/lib/stripe/product.rb +2 -10
- data/lib/stripe/recipient.rb +1 -1
- data/lib/stripe/refund.rb +1 -1
- data/lib/stripe/reversal.rb +7 -3
- data/lib/stripe/singleton_api_resource.rb +3 -3
- data/lib/stripe/sku.rb +2 -2
- data/lib/stripe/source.rb +11 -0
- data/lib/stripe/stripe_object.rb +167 -91
- data/lib/stripe/subscription.rb +15 -9
- data/lib/stripe/subscription_item.rb +12 -0
- data/lib/stripe/three_d_secure.rb +9 -0
- data/lib/stripe/transfer.rb +3 -4
- data/lib/stripe/util.rb +100 -28
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe.rb +283 -140
- data/stripe.gemspec +5 -18
- data/test/stripe/account_test.rb +55 -9
- data/test/stripe/alipay_account_test.rb +11 -0
- data/test/stripe/api_operations_test.rb +31 -0
- data/test/stripe/api_resource_test.rb +204 -10
- data/test/stripe/apple_pay_domain_test.rb +34 -0
- data/test/stripe/application_fee_test.rb +8 -5
- data/test/stripe/bitcoin_receiver_test.rb +2 -2
- data/test/stripe/charge_refund_test.rb +12 -0
- data/test/stripe/charge_test.rb +32 -4
- data/test/stripe/country_spec_test.rb +43 -0
- data/test/stripe/coupon_test.rb +9 -1
- data/test/stripe/customer_card_test.rb +2 -2
- data/test/stripe/customer_test.rb +24 -1
- data/test/stripe/dispute_test.rb +8 -0
- data/test/stripe/errors_test.rb +18 -0
- data/test/stripe/invoice_item_test.rb +19 -0
- data/test/stripe/invoice_test.rb +27 -1
- data/test/stripe/list_object_test.rb +36 -15
- data/test/stripe/order_return_test.rb +25 -0
- data/test/stripe/order_test.rb +21 -1
- data/test/stripe/plan_test.rb +31 -0
- data/test/stripe/product_test.rb +17 -7
- data/test/stripe/recipient_card_test.rb +2 -2
- data/test/stripe/recipient_test.rb +21 -0
- data/test/stripe/refund_test.rb +10 -1
- data/test/stripe/sku_test.rb +15 -6
- data/test/stripe/source_test.rb +83 -0
- data/test/stripe/stripe_object_test.rb +180 -11
- data/test/stripe/subscription_item_test.rb +76 -0
- data/test/stripe/subscription_test.rb +161 -37
- data/test/stripe/three_d_secure_test.rb +22 -0
- data/test/stripe/transfer_test.rb +8 -0
- data/test/stripe/util_test.rb +48 -16
- data/test/stripe_test.rb +58 -0
- data/test/test_data.rb +337 -27
- data/test/test_helper.rb +7 -3
- metadata +47 -133
- data/README.rdoc +0 -68
- data/gemfiles/default-with-activesupport.gemfile +0 -10
- data/gemfiles/json.gemfile +0 -12
- data/gemfiles/yajl.gemfile +0 -12
- data/lib/stripe/api_operations/update.rb +0 -58
- data/lib/stripe/errors/api_connection_error.rb +0 -4
- data/lib/stripe/errors/api_error.rb +0 -4
- data/lib/stripe/errors/authentication_error.rb +0 -4
- data/lib/stripe/errors/card_error.rb +0 -12
- data/lib/stripe/errors/invalid_request_error.rb +0 -11
- data/lib/stripe/errors/rate_limit_error.rb +0 -4
- data/lib/stripe/errors/stripe_error.rb +0 -26
data/test/test_data.rb
CHANGED
@@ -56,7 +56,7 @@ module Stripe
|
|
56
56
|
{
|
57
57
|
:data => [make_balance_transaction, make_balance_transaction, make_balance_transaction],
|
58
58
|
:object => "list",
|
59
|
-
:
|
59
|
+
:resource_url => "/v1/balance/history"
|
60
60
|
}
|
61
61
|
end
|
62
62
|
|
@@ -93,7 +93,7 @@ module Stripe
|
|
93
93
|
{
|
94
94
|
:data => [make_application_fee, make_application_fee, make_application_fee],
|
95
95
|
:object => 'list',
|
96
|
-
:
|
96
|
+
:resource_url => '/v1/application_fees'
|
97
97
|
}
|
98
98
|
end
|
99
99
|
|
@@ -101,7 +101,7 @@ module Stripe
|
|
101
101
|
{
|
102
102
|
:data => [make_application_fee_refund, make_application_fee_refund, make_application_fee_refund],
|
103
103
|
:object => 'list',
|
104
|
-
:
|
104
|
+
:resource_url => '/v1/application_fees/' + fee_id + '/refunds'
|
105
105
|
}
|
106
106
|
end
|
107
107
|
|
@@ -118,7 +118,7 @@ module Stripe
|
|
118
118
|
:created => 1304114758,
|
119
119
|
:sources => make_customer_card_array(id),
|
120
120
|
:metadata => {},
|
121
|
-
:subscriptions =>
|
121
|
+
:subscriptions => make_customer_subscription_array(id)
|
122
122
|
}.merge(params)
|
123
123
|
end
|
124
124
|
|
@@ -126,7 +126,7 @@ module Stripe
|
|
126
126
|
{
|
127
127
|
:data => [make_customer, make_customer, make_customer],
|
128
128
|
:object => 'list',
|
129
|
-
:
|
129
|
+
:resource_url => '/v1/customers'
|
130
130
|
}
|
131
131
|
end
|
132
132
|
|
@@ -152,7 +152,13 @@ module Stripe
|
|
152
152
|
:object => "charge",
|
153
153
|
:created => 1304114826,
|
154
154
|
:refunds => make_refund_array(id),
|
155
|
-
:metadata => {}
|
155
|
+
:metadata => {},
|
156
|
+
:outcome => {
|
157
|
+
type: 'authorized',
|
158
|
+
reason: nil,
|
159
|
+
seller_message: 'Payment complete.',
|
160
|
+
network_status: 'approved_by_network',
|
161
|
+
},
|
156
162
|
}.merge(params)
|
157
163
|
end
|
158
164
|
|
@@ -160,11 +166,10 @@ module Stripe
|
|
160
166
|
{
|
161
167
|
:data => [make_charge, make_charge, make_charge],
|
162
168
|
:object => 'list',
|
163
|
-
:
|
169
|
+
:resource_url => '/v1/charges'
|
164
170
|
}
|
165
171
|
end
|
166
172
|
|
167
|
-
|
168
173
|
def make_dispute(params={})
|
169
174
|
id = params[:id] || 'dp_test_dispute'
|
170
175
|
{
|
@@ -185,7 +190,7 @@ module Stripe
|
|
185
190
|
{
|
186
191
|
:data => [make_dispute, make_dispute, make_dispute],
|
187
192
|
:object => 'list',
|
188
|
-
:
|
193
|
+
:resource_url => '/v1/disputes'
|
189
194
|
}
|
190
195
|
end
|
191
196
|
|
@@ -193,7 +198,7 @@ module Stripe
|
|
193
198
|
{
|
194
199
|
:data => [make_card, make_card, make_card],
|
195
200
|
:object => 'list',
|
196
|
-
:
|
201
|
+
:resource_url => '/v1/recipients/' + recipient_id + '/cards'
|
197
202
|
}
|
198
203
|
end
|
199
204
|
|
@@ -201,7 +206,7 @@ module Stripe
|
|
201
206
|
{
|
202
207
|
:data => [make_card, make_card, make_card],
|
203
208
|
:object => 'list',
|
204
|
-
:
|
209
|
+
:resource_url => '/v1/customers/' + customer_id + '/sources'
|
205
210
|
}
|
206
211
|
end
|
207
212
|
|
@@ -236,7 +241,7 @@ module Stripe
|
|
236
241
|
:created => 1403047735,
|
237
242
|
:size => 4908,
|
238
243
|
:purpose => params[:purpose] || "dispute_evidence",
|
239
|
-
:
|
244
|
+
:resource_url => nil,
|
240
245
|
:type => nil,
|
241
246
|
}
|
242
247
|
end
|
@@ -245,7 +250,7 @@ module Stripe
|
|
245
250
|
{
|
246
251
|
:data => [make_file, make_file, make_file],
|
247
252
|
:object => 'list',
|
248
|
-
:
|
253
|
+
:resource_url => '/v1/files'
|
249
254
|
}
|
250
255
|
end
|
251
256
|
|
@@ -272,6 +277,24 @@ module Stripe
|
|
272
277
|
}.merge(params)
|
273
278
|
end
|
274
279
|
|
280
|
+
def make_subscription_item(params = {})
|
281
|
+
plan = params.delete(:plan) || 'gold'
|
282
|
+
{
|
283
|
+
:id => "si_test_subscription_item",
|
284
|
+
:object => "subscription_item",
|
285
|
+
:created => 1473875521,
|
286
|
+
:plan => {
|
287
|
+
:id => plan,
|
288
|
+
:object => "plan",
|
289
|
+
:amount => 1000,
|
290
|
+
:created => 1468349629,
|
291
|
+
:currency => "usd",
|
292
|
+
:interval => "month",
|
293
|
+
},
|
294
|
+
:quantity => 1
|
295
|
+
}.merge(params)
|
296
|
+
end
|
297
|
+
|
275
298
|
def make_refund(params = {})
|
276
299
|
{
|
277
300
|
:object => 'refund',
|
@@ -284,11 +307,27 @@ module Stripe
|
|
284
307
|
}.merge(params)
|
285
308
|
end
|
286
309
|
|
287
|
-
def make_subscription_array
|
310
|
+
def make_subscription_array
|
311
|
+
{
|
312
|
+
:data => [make_subscription, make_subscription, make_subscription],
|
313
|
+
:object => 'list',
|
314
|
+
:resource_url => '/v1/subscriptions'
|
315
|
+
}
|
316
|
+
end
|
317
|
+
|
318
|
+
def make_subscription_item_array
|
319
|
+
{
|
320
|
+
:data => [make_subscription_item, make_subscription_item, make_subscription_item],
|
321
|
+
:object => 'list',
|
322
|
+
:resource_url => '/v1/subscription_items'
|
323
|
+
}
|
324
|
+
end
|
325
|
+
|
326
|
+
def make_customer_subscription_array(customer_id)
|
288
327
|
{
|
289
328
|
:data => [make_subscription, make_subscription, make_subscription],
|
290
329
|
:object => 'list',
|
291
|
-
:
|
330
|
+
:resource_url => '/v1/customers/' + customer_id + '/subscriptions'
|
292
331
|
}
|
293
332
|
end
|
294
333
|
|
@@ -298,7 +337,7 @@ module Stripe
|
|
298
337
|
{
|
299
338
|
:data => [make_refund(p), make_refund(p), make_refund(p)],
|
300
339
|
:object => 'list',
|
301
|
-
:
|
340
|
+
:resource_url => charge ? "/v1/charges/#{charge}/refunds" : '/v1/refunds'
|
302
341
|
}
|
303
342
|
end
|
304
343
|
|
@@ -306,11 +345,11 @@ module Stripe
|
|
306
345
|
{
|
307
346
|
:data => [make_reversal, make_reversal, make_reversal],
|
308
347
|
:object => 'list',
|
309
|
-
:
|
348
|
+
:resource_url => '/v1/transfers/' + transfer_id + '/reversals'
|
310
349
|
}
|
311
350
|
end
|
312
351
|
|
313
|
-
def make_invoice
|
352
|
+
def make_invoice(params={})
|
314
353
|
{
|
315
354
|
:id => 'in_test_invoice',
|
316
355
|
:object => 'invoice',
|
@@ -348,7 +387,7 @@ module Stripe
|
|
348
387
|
:discount => nil,
|
349
388
|
:ending_balance => nil,
|
350
389
|
:next_payment_attempt => 1349825350,
|
351
|
-
}
|
390
|
+
}.merge(params)
|
352
391
|
end
|
353
392
|
|
354
393
|
def make_paid_invoice
|
@@ -363,11 +402,22 @@ module Stripe
|
|
363
402
|
})
|
364
403
|
end
|
365
404
|
|
405
|
+
def make_invoice_item(params={})
|
406
|
+
{
|
407
|
+
id: "ii_test_invoice_item",
|
408
|
+
object: "invoiceitem",
|
409
|
+
date: 1466982411,
|
410
|
+
invoice: "in_test_invoice",
|
411
|
+
livemode: false,
|
412
|
+
metadata: {},
|
413
|
+
}.merge(params)
|
414
|
+
end
|
415
|
+
|
366
416
|
def make_invoice_customer_array
|
367
417
|
{
|
368
418
|
:data => [make_invoice],
|
369
419
|
:object => 'list',
|
370
|
-
:
|
420
|
+
:resource_url => '/v1/invoices?customer=test_customer'
|
371
421
|
}
|
372
422
|
end
|
373
423
|
|
@@ -397,7 +447,7 @@ module Stripe
|
|
397
447
|
{
|
398
448
|
:data => [make_recipient, make_recipient, make_recipient],
|
399
449
|
:object => 'list',
|
400
|
-
:
|
450
|
+
:resource_url => '/v1/recipients'
|
401
451
|
}
|
402
452
|
end
|
403
453
|
|
@@ -428,7 +478,7 @@ module Stripe
|
|
428
478
|
{
|
429
479
|
:data => [make_transfer, make_transfer, make_transfer],
|
430
480
|
:object => 'list',
|
431
|
-
:
|
481
|
+
:resource_url => '/v1/transfers'
|
432
482
|
}
|
433
483
|
end
|
434
484
|
|
@@ -458,6 +508,7 @@ module Stripe
|
|
458
508
|
:description => 'some details',
|
459
509
|
:metadata => {},
|
460
510
|
:object => 'bitcoin_receiver',
|
511
|
+
:customer => nil,
|
461
512
|
:transactions => make_bitcoin_transaction_array
|
462
513
|
}.merge(params)
|
463
514
|
end
|
@@ -466,7 +517,7 @@ module Stripe
|
|
466
517
|
{
|
467
518
|
:data => [make_bitcoin_receiver, make_bitcoin_receiver, make_bitcoin_receiver],
|
468
519
|
:object => 'list',
|
469
|
-
:
|
520
|
+
:resource_url => '/v1/bitcoin/receivers'
|
470
521
|
}
|
471
522
|
end
|
472
523
|
|
@@ -485,7 +536,7 @@ module Stripe
|
|
485
536
|
{
|
486
537
|
:data => [make_bitcoin_transaction, make_bitcoin_transaction, make_bitcoin_transaction],
|
487
538
|
:object => 'list',
|
488
|
-
:
|
539
|
+
:resource_url => "/v1/bitcoin/receivers/btcrcv_test_receiver/transactions"
|
489
540
|
}
|
490
541
|
end
|
491
542
|
|
@@ -567,7 +618,7 @@ module Stripe
|
|
567
618
|
def make_product_array
|
568
619
|
{
|
569
620
|
:object => "list",
|
570
|
-
:
|
621
|
+
:resource_url => "/v1/products",
|
571
622
|
:data => [
|
572
623
|
make_product,
|
573
624
|
make_product,
|
@@ -602,7 +653,7 @@ module Stripe
|
|
602
653
|
def make_sku_array(product_id, params={})
|
603
654
|
{
|
604
655
|
:object => "list",
|
605
|
-
:
|
656
|
+
:resource_url => "/v1/skus",
|
606
657
|
:data => [
|
607
658
|
make_sku(:product => product_id),
|
608
659
|
make_sku(:product => product_id),
|
@@ -656,7 +707,7 @@ module Stripe
|
|
656
707
|
def make_order_array(params={})
|
657
708
|
{
|
658
709
|
:object => "list",
|
659
|
-
:
|
710
|
+
:resource_url => "/v1/orders",
|
660
711
|
:data => [
|
661
712
|
make_order,
|
662
713
|
make_order,
|
@@ -671,5 +722,264 @@ module Stripe
|
|
671
722
|
:charge => make_charge,
|
672
723
|
}).merge(params)
|
673
724
|
end
|
725
|
+
|
726
|
+
def make_partially_returned_order(params={})
|
727
|
+
make_paid_order.merge({
|
728
|
+
:returns => make_order_return_array,
|
729
|
+
}).merge(params)
|
730
|
+
end
|
731
|
+
|
732
|
+
def make_order_return(params={})
|
733
|
+
{
|
734
|
+
:id => "orret_18CI1jDAu10Yox5R5kGPgbLN",
|
735
|
+
:object => "order_return",
|
736
|
+
:amount => 1220,
|
737
|
+
:created => 1463529303,
|
738
|
+
:currency => "usd",
|
739
|
+
:items => [
|
740
|
+
{
|
741
|
+
:object => "order_item",
|
742
|
+
:amount => 200,
|
743
|
+
:currency => "usd",
|
744
|
+
:description => "Just a SKU",
|
745
|
+
:parent => "sku_80NAUPJ9dpYtck",
|
746
|
+
:quantity => 2,
|
747
|
+
:type => "sku"
|
748
|
+
},
|
749
|
+
{
|
750
|
+
:object => "order_item",
|
751
|
+
:amount => 20,
|
752
|
+
:currency => "usd",
|
753
|
+
:description => "Fair enough",
|
754
|
+
:parent => nil,
|
755
|
+
:quantity => nil,
|
756
|
+
:type => "tax"
|
757
|
+
},
|
758
|
+
],
|
759
|
+
:livemode => false,
|
760
|
+
:order => "or_189jaGDAu10Yox5R0F6LoH6K",
|
761
|
+
:refund => nil,
|
762
|
+
}.merge(params)
|
763
|
+
end
|
764
|
+
|
765
|
+
def make_order_return_array
|
766
|
+
{
|
767
|
+
:object => "list",
|
768
|
+
:resource_url => "/v1/order_returns",
|
769
|
+
:data => [
|
770
|
+
make_order_return,
|
771
|
+
make_order_return,
|
772
|
+
make_order_return,
|
773
|
+
]
|
774
|
+
}
|
775
|
+
end
|
776
|
+
|
777
|
+
def country_spec_array
|
778
|
+
{
|
779
|
+
:object => "list",
|
780
|
+
:resource_url => "/v1/country_specs",
|
781
|
+
:data => [
|
782
|
+
make_country_spec,
|
783
|
+
make_country_spec,
|
784
|
+
make_country_spec,
|
785
|
+
]
|
786
|
+
}
|
787
|
+
end
|
788
|
+
|
789
|
+
def make_country_spec(params={})
|
790
|
+
{
|
791
|
+
:id => "US",
|
792
|
+
:object => "country_spec",
|
793
|
+
:supported_bank_account_currencies => {
|
794
|
+
:usd => ["US"]
|
795
|
+
},
|
796
|
+
:supported_payment_currencies => [
|
797
|
+
"usd", "aed", "afn", "all"
|
798
|
+
],
|
799
|
+
:supported_payment_methods => [
|
800
|
+
"alipay",
|
801
|
+
"card",
|
802
|
+
"stripe"
|
803
|
+
],
|
804
|
+
:verification_fields =>
|
805
|
+
{
|
806
|
+
:individual => {
|
807
|
+
:minimum => [
|
808
|
+
"external_account",
|
809
|
+
"legal_entity.address.city",
|
810
|
+
"tos_acceptance.date",
|
811
|
+
"tos_acceptance.ip"
|
812
|
+
],
|
813
|
+
:additional => [
|
814
|
+
"legal_entity.personal_id_number",
|
815
|
+
"legal_entity.verification.document"
|
816
|
+
]
|
817
|
+
},
|
818
|
+
:company => {
|
819
|
+
:minimum => [
|
820
|
+
"external_account",
|
821
|
+
"legal_entity.address.city",
|
822
|
+
"legal_entity.address.line1",
|
823
|
+
"tos_acceptance.ip"
|
824
|
+
],
|
825
|
+
:additional => [
|
826
|
+
"legal_entity.personal_id_number",
|
827
|
+
"legal_entity.verification.document"
|
828
|
+
]
|
829
|
+
}
|
830
|
+
}
|
831
|
+
}.merge(params)
|
832
|
+
end
|
833
|
+
|
834
|
+
def make_plan(params={})
|
835
|
+
{
|
836
|
+
id: "silver",
|
837
|
+
object: "plan",
|
838
|
+
amount: 1000,
|
839
|
+
created: 1463962497,
|
840
|
+
currency: "usd",
|
841
|
+
interval: "year",
|
842
|
+
interval_count: 1,
|
843
|
+
livemode: false,
|
844
|
+
metadata: {},
|
845
|
+
name: "Silver",
|
846
|
+
statement_descriptor: nil,
|
847
|
+
trial_period_days: nil,
|
848
|
+
}.merge(params)
|
849
|
+
end
|
850
|
+
|
851
|
+
def make_plan_array
|
852
|
+
{
|
853
|
+
:object => "list",
|
854
|
+
:resource_url => "/v1/plans",
|
855
|
+
:data => [
|
856
|
+
make_plan,
|
857
|
+
make_plan,
|
858
|
+
make_plan,
|
859
|
+
]
|
860
|
+
}
|
861
|
+
end
|
862
|
+
|
863
|
+
def make_three_d_secure(params={})
|
864
|
+
{
|
865
|
+
:id => 'tdsrc_test',
|
866
|
+
:object => 'three_d_secure',
|
867
|
+
:amount => 1500,
|
868
|
+
:authenticate => true,
|
869
|
+
:card => make_card,
|
870
|
+
:created => 1456908210,
|
871
|
+
:currency => 'usd',
|
872
|
+
:livemode => false,
|
873
|
+
:redirect_url => nil,
|
874
|
+
:status => 'succeeded',
|
875
|
+
}.merge(params)
|
876
|
+
end
|
877
|
+
|
878
|
+
def make_apple_pay_domain(params={})
|
879
|
+
{
|
880
|
+
:id => "apwc_test_domain",
|
881
|
+
:object => "apple_pay_domain",
|
882
|
+
:domain_name => "test.com",
|
883
|
+
:livemode => false
|
884
|
+
}.merge(params)
|
885
|
+
end
|
886
|
+
|
887
|
+
def make_apple_pay_domain_array
|
888
|
+
{
|
889
|
+
:object => "list",
|
890
|
+
:resource_url => "/v1/apple_pay/domains",
|
891
|
+
:data => [
|
892
|
+
make_apple_pay_domain,
|
893
|
+
make_apple_pay_domain,
|
894
|
+
make_apple_pay_domain
|
895
|
+
]
|
896
|
+
}
|
897
|
+
end
|
898
|
+
|
899
|
+
def make_source_card(params={})
|
900
|
+
id = params[:id] || 'src_test_card'
|
901
|
+
{
|
902
|
+
:id => id,
|
903
|
+
:object => 'source',
|
904
|
+
:type => 'card',
|
905
|
+
:amount => nil,
|
906
|
+
:card => {
|
907
|
+
:address_line1_check => nil,
|
908
|
+
:address_zip_check => nil,
|
909
|
+
:brand => 'Visa',
|
910
|
+
:country => 'US',
|
911
|
+
:cvc_check => 'unchecked',
|
912
|
+
:description => nil,
|
913
|
+
:dynamic_last4 => nil,
|
914
|
+
:exp_month => 1,
|
915
|
+
:exp_year => 2020,
|
916
|
+
:fingerprint => 'NrVafqTONZfbLkQK',
|
917
|
+
:funding => 'credit',
|
918
|
+
:google_reference => nil,
|
919
|
+
:iin => nil,
|
920
|
+
:issuer => nil,
|
921
|
+
:last4 => '4242',
|
922
|
+
:three_d_secure => 'optional',
|
923
|
+
:tokenization_method => 'nil',
|
924
|
+
},
|
925
|
+
:client_secret => 'src_client_secret_test',
|
926
|
+
:created => 1484841032,
|
927
|
+
:currency => nil,
|
928
|
+
:flow => 'none',
|
929
|
+
:livemode => false,
|
930
|
+
:metadata => {},
|
931
|
+
:owner => {
|
932
|
+
:address => nil,
|
933
|
+
:email => nil,
|
934
|
+
:name => nil,
|
935
|
+
:phone => nil,
|
936
|
+
:verified_address => nil,
|
937
|
+
:verified_email => nil,
|
938
|
+
:verified_name => nil,
|
939
|
+
:verified_phone => nil,
|
940
|
+
},
|
941
|
+
:status => 'chargeable',
|
942
|
+
:usage => 'reusable',
|
943
|
+
}.merge(params)
|
944
|
+
end
|
945
|
+
|
946
|
+
def make_source_ach_debit(params={})
|
947
|
+
id = params[:id] || 'src_test_ach_debit'
|
948
|
+
{
|
949
|
+
:id => id,
|
950
|
+
:object => 'source',
|
951
|
+
:type => 'ach_debit',
|
952
|
+
:ach_debit => {
|
953
|
+
:country => 'US',
|
954
|
+
:fingerprint => 'yY5BWKwnW98uydOa',
|
955
|
+
:last4 => '6789',
|
956
|
+
:routing_number => '110000000',
|
957
|
+
:type => 'individual',
|
958
|
+
},
|
959
|
+
:amount => nil,
|
960
|
+
:client_secret => 'src_client_secret_test',
|
961
|
+
:created => 1484842122,
|
962
|
+
:currency => 'usd',
|
963
|
+
:flow => 'verification',
|
964
|
+
:livemode => false,
|
965
|
+
:metadata => {},
|
966
|
+
:owner => {
|
967
|
+
:address => nil,
|
968
|
+
:email => nil,
|
969
|
+
:name => 'Jenny Rosen',
|
970
|
+
:phone => nil,
|
971
|
+
:verified_address => nil,
|
972
|
+
:verified_email => nil,
|
973
|
+
:verified_name => nil,
|
974
|
+
:verified_phone => nil,
|
975
|
+
},
|
976
|
+
:status => 'pending',
|
977
|
+
:usage => 'reusable',
|
978
|
+
:verification => {
|
979
|
+
:attempts_remaining => 10,
|
980
|
+
:status => 'pending',
|
981
|
+
},
|
982
|
+
}.merge(params)
|
983
|
+
end
|
674
984
|
end
|
675
985
|
end
|
data/test/test_helper.rb
CHANGED
@@ -2,7 +2,7 @@ require 'stripe'
|
|
2
2
|
require 'test/unit'
|
3
3
|
require 'mocha/setup'
|
4
4
|
require 'stringio'
|
5
|
-
require 'shoulda'
|
5
|
+
require 'shoulda/context'
|
6
6
|
require File.expand_path('../test_data', __FILE__)
|
7
7
|
|
8
8
|
# monkeypatch request methods
|
@@ -13,6 +13,10 @@ module Stripe
|
|
13
13
|
@mock_rest_client = mock_client
|
14
14
|
end
|
15
15
|
|
16
|
+
class << self
|
17
|
+
remove_method :execute_request
|
18
|
+
end
|
19
|
+
|
16
20
|
def self.execute_request(opts)
|
17
21
|
get_params = (opts[:headers] || {})[:params]
|
18
22
|
post_params = opts[:payload]
|
@@ -31,11 +35,11 @@ class Test::Unit::TestCase
|
|
31
35
|
setup do
|
32
36
|
@mock = mock
|
33
37
|
Stripe.mock_rest_client = @mock
|
34
|
-
Stripe.api_key="foo"
|
38
|
+
Stripe.api_key = "foo"
|
35
39
|
end
|
36
40
|
|
37
41
|
teardown do
|
38
42
|
Stripe.mock_rest_client = nil
|
39
|
-
Stripe.api_key=nil
|
43
|
+
Stripe.api_key = nil
|
40
44
|
end
|
41
45
|
end
|