stripe 1.58.0 → 2.0.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.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +4 -0
  3. data/.travis.yml +1 -2
  4. data/Gemfile +11 -12
  5. data/History.txt +8 -0
  6. data/README.md +44 -31
  7. data/Rakefile +1 -1
  8. data/VERSION +1 -1
  9. data/lib/stripe.rb +4 -344
  10. data/lib/stripe/account.rb +4 -4
  11. data/lib/stripe/api_operations/create.rb +2 -2
  12. data/lib/stripe/api_operations/delete.rb +2 -2
  13. data/lib/stripe/api_operations/list.rb +2 -2
  14. data/lib/stripe/api_operations/request.rb +9 -3
  15. data/lib/stripe/api_operations/save.rb +4 -6
  16. data/lib/stripe/api_resource.rb +2 -2
  17. data/lib/stripe/bank_account.rb +2 -2
  18. data/lib/stripe/bitcoin_receiver.rb +1 -1
  19. data/lib/stripe/charge.rb +12 -12
  20. data/lib/stripe/customer.rb +6 -6
  21. data/lib/stripe/dispute.rb +2 -3
  22. data/lib/stripe/errors.rb +20 -10
  23. data/lib/stripe/invoice.rb +4 -4
  24. data/lib/stripe/list_object.rb +2 -2
  25. data/lib/stripe/order.rb +4 -4
  26. data/lib/stripe/reversal.rb +1 -1
  27. data/lib/stripe/source.rb +2 -2
  28. data/lib/stripe/stripe_client.rb +396 -0
  29. data/lib/stripe/stripe_response.rb +48 -0
  30. data/lib/stripe/transfer.rb +2 -2
  31. data/lib/stripe/util.rb +6 -6
  32. data/lib/stripe/version.rb +1 -1
  33. data/spec/fixtures.json +0 -0
  34. data/spec/fixtures.yaml +0 -0
  35. data/spec/spec.json +0 -0
  36. data/spec/spec.yaml +0 -0
  37. data/stripe.gemspec +1 -1
  38. data/test/api_fixtures.rb +29 -0
  39. data/test/api_stub_helpers.rb +125 -0
  40. data/test/stripe/account_test.rb +153 -247
  41. data/test/stripe/alipay_account_test.rb +10 -2
  42. data/test/stripe/api_operations_test.rb +3 -3
  43. data/test/stripe/api_resource_test.rb +139 -499
  44. data/test/stripe/apple_pay_domain_test.rb +22 -23
  45. data/test/stripe/application_fee_refund_test.rb +22 -31
  46. data/test/stripe/application_fee_test.rb +6 -17
  47. data/test/stripe/balance_test.rb +3 -3
  48. data/test/stripe/bank_account_test.rb +31 -11
  49. data/test/stripe/bitcoin_receiver_test.rb +51 -42
  50. data/test/stripe/bitcoin_transaction_test.rb +11 -19
  51. data/test/stripe/charge_test.rb +39 -126
  52. data/test/stripe/country_spec_test.rb +7 -30
  53. data/test/stripe/coupon_test.rb +33 -17
  54. data/test/stripe/customer_card_test.rb +25 -46
  55. data/test/stripe/customer_test.rb +86 -81
  56. data/test/stripe/dispute_test.rb +27 -38
  57. data/test/stripe/errors_test.rb +2 -2
  58. data/test/stripe/file_upload_test.rb +32 -24
  59. data/test/stripe/invoice_item_test.rb +46 -10
  60. data/test/stripe/invoice_test.rb +48 -48
  61. data/test/stripe/list_object_test.rb +22 -31
  62. data/test/stripe/order_return_test.rb +11 -15
  63. data/test/stripe/order_test.rb +38 -51
  64. data/test/stripe/plan_test.rb +39 -18
  65. data/test/stripe/product_test.rb +29 -33
  66. data/test/stripe/recipient_card_test.rb +23 -40
  67. data/test/stripe/recipient_test.rb +39 -10
  68. data/test/stripe/refund_test.rb +20 -45
  69. data/test/stripe/reversal_test.rb +27 -31
  70. data/test/stripe/sku_test.rb +36 -19
  71. data/test/stripe/source_test.rb +26 -66
  72. data/test/stripe/stripe_client_test.rb +428 -0
  73. data/test/stripe/stripe_object_test.rb +6 -2
  74. data/test/stripe/stripe_response_test.rb +46 -0
  75. data/test/stripe/subscription_item_test.rb +37 -59
  76. data/test/stripe/subscription_test.rb +40 -176
  77. data/test/stripe/three_d_secure_test.rb +13 -12
  78. data/test/stripe/transfer_test.rb +36 -19
  79. data/test/stripe_test.rb +3 -36
  80. data/test/test_data.rb +5 -931
  81. data/test/test_helper.rb +21 -25
  82. metadata +22 -17
  83. data/test/stripe/charge_refund_test.rb +0 -67
  84. data/test/stripe/metadata_test.rb +0 -129
@@ -34,41 +34,8 @@ class StripeTest < Test::Unit::TestCase
34
34
  end
35
35
  end
36
36
 
37
- should "makes requests with the Stripe-Account header" do
38
- response = make_account(
39
- charges_enabled: false,
40
- details_submitted: false,
41
- email: "test+bindings@stripe.com"
42
- )
43
- Stripe.stripe_account = 'acct_1234'
44
-
45
- Stripe.expects(:execute_request).with(
46
- has_entry(:headers, has_entry('Stripe-Account', 'acct_1234')),
47
- ).returns(make_response(response))
48
-
49
- Stripe.request(:post, '/v1/account', 'sk_live12334566')
50
- end
51
-
52
- context "#get_uname" do
53
- should "run without failure" do
54
- # Don't actually check the result because we try a variety of different
55
- # strategies that will have different results depending on where this
56
- # test and running. We're mostly making sure that no exception is thrown.
57
- _ = Stripe.get_uname
58
- end
59
- end
60
-
61
- context "#get_uname_from_system" do
62
- should "run without failure" do
63
- # as above, just verify that an exception is not thrown
64
- _ = Stripe.get_uname_from_system
65
- end
66
- end
67
-
68
- context "#get_uname_from_system_ver" do
69
- should "run without failure" do
70
- # as above, just verify that an exception is not thrown
71
- _ = Stripe.get_uname_from_system_ver
72
- end
37
+ should "have default open and read timeouts" do
38
+ assert_equal Stripe.open_timeout, 30
39
+ assert_equal Stripe.read_timeout, 80
73
40
  end
74
41
  end
@@ -1,542 +1,11 @@
1
1
  module Stripe
2
2
  module TestData
3
- def make_response(body, code=200)
4
- # When an exception is raised, restclient clobbers method_missing. Hence we
5
- # can't just use the stubs interface.
6
- body = JSON.generate(body) if !(body.kind_of? String)
7
- m = mock
8
- m.instance_variable_set('@stripe_values', {
9
- :body => body,
10
- :code => code,
11
- :headers => {},
12
- })
13
- def m.body; @stripe_values[:body]; end
14
- def m.code; @stripe_values[:code]; end
15
- def m.headers; @stripe_values[:headers]; end
16
- m
17
- end
18
-
19
- def make_account(params={})
20
- {
21
- :charges_enabled => false,
22
- :details_submitted => false,
23
- :email => "test+bindings@stripe.com",
24
- }.merge(params)
25
- end
26
-
27
- def make_balance(params={})
28
- {
29
- :pending => [
30
- {:amount => 12345, :currency => "usd"}
31
- ],
32
- :available => [
33
- {:amount => 6789, :currency => "usd"}
34
- ],
35
- :livemode => false,
36
- :object => "balance"
37
- }.merge(params)
38
- end
39
-
40
- def make_balance_transaction(params={})
41
- {
42
- :amount => 100,
43
- :net => 41,
44
- :currency => "usd",
45
- :type => "charge",
46
- :created => 1371945005,
47
- :available_on => 1372549805,
48
- :status => "pending",
49
- :description => "A test balance transaction",
50
- :fee => 59,
51
- :object => "balance_transaction"
52
- }.merge(params)
53
- end
54
-
55
- def make_balance_transaction_array
56
- {
57
- :data => [make_balance_transaction, make_balance_transaction, make_balance_transaction],
58
- :object => "list",
59
- :resource_url => "/v1/balance/history"
60
- }
61
- end
62
-
63
- def make_application_fee(params={})
64
- id = params[:id] || 'fee_test_fee'
65
- {
66
- :refunded => false,
67
- :amount => 100,
68
- :application => "ca_test_application",
69
- :user => "acct_test_user",
70
- :charge => "ch_test_charge",
71
- :id => id,
72
- :livemode => false,
73
- :currency => "usd",
74
- :object => "application_fee",
75
- :refunds => make_application_fee_refund_array(id),
76
- :created => 1304114826
77
- }.merge(params)
78
- end
79
-
80
- def make_application_fee_refund(params = {})
81
- {
82
- :object => 'fee_refund',
83
- :amount => 30,
84
- :currency => "usd",
85
- :created => 1308595038,
86
- :id => "ref_test_app_fee_refund",
87
- :fee => "ca_test_application",
88
- :metadata => {}
89
- }.merge(params)
90
- end
91
-
92
- def make_application_fee_array
93
- {
94
- :data => [make_application_fee, make_application_fee, make_application_fee],
95
- :object => 'list',
96
- :resource_url => '/v1/application_fees'
97
- }
98
- end
99
-
100
- def make_application_fee_refund_array(fee_id)
101
- {
102
- :data => [make_application_fee_refund, make_application_fee_refund, make_application_fee_refund],
103
- :object => 'list',
104
- :resource_url => '/v1/application_fees/' + fee_id + '/refunds'
105
- }
106
- end
107
-
108
- def make_customer(params={})
109
- id = params[:id] || 'c_test_customer'
110
- {
111
- :subscription_history => [],
112
- :bills => [],
113
- :charges => [],
114
- :livemode => false,
115
- :object => "customer",
116
- :id => id,
117
- :default_card => "cc_test_card",
118
- :created => 1304114758,
119
- :sources => make_customer_card_array(id),
120
- :metadata => {},
121
- :subscriptions => make_customer_subscription_array(id)
122
- }.merge(params)
123
- end
124
-
125
- def make_customer_array
126
- {
127
- :data => [make_customer, make_customer, make_customer],
128
- :object => 'list',
129
- :resource_url => '/v1/customers'
130
- }
131
- end
132
-
133
- def make_charge(params={})
134
- id = params[:id] || 'ch_test_charge'
135
- {
136
- :refunded => false,
137
- :paid => true,
138
- :amount => 100,
139
- :card => {
140
- :type => "Visa",
141
- :last4 => "4242",
142
- :exp_month => 11,
143
- :country => "US",
144
- :exp_year => 2012,
145
- :id => "cc_test_card",
146
- :object => "card"
147
- },
148
- :id => id,
149
- :reason => "execute_charge",
150
- :livemode => false,
151
- :currency => "usd",
152
- :object => "charge",
153
- :created => 1304114826,
154
- :refunds => make_refund_array(id),
155
- :metadata => {},
156
- :outcome => {
157
- type: 'authorized',
158
- reason: nil,
159
- seller_message: 'Payment complete.',
160
- network_status: 'approved_by_network',
161
- },
162
- }.merge(params)
163
- end
164
-
165
- def make_charge_array
166
- {
167
- :data => [make_charge, make_charge, make_charge],
168
- :object => 'list',
169
- :resource_url => '/v1/charges'
170
- }
171
- end
172
-
173
- def make_dispute(params={})
174
- id = params[:id] || 'dp_test_dispute'
175
- {
176
- :id => id,
177
- :charge => "ch_test_charge",
178
- :amount => 500,
179
- :created => 1304114758,
180
- :status => 'needs_response',
181
- :livemode => false,
182
- :currency => 'usd',
183
- :object => 'dispute',
184
- :reason => 'fraudulent',
185
- :evidence => {},
186
- }.merge(params)
187
- end
188
-
189
- def make_dispute_array
190
- {
191
- :data => [make_dispute, make_dispute, make_dispute],
192
- :object => 'list',
193
- :resource_url => '/v1/disputes'
194
- }
195
- end
196
-
197
- def make_recipient_card_array(recipient_id)
198
- {
199
- :data => [make_card, make_card, make_card],
200
- :object => 'list',
201
- :resource_url => '/v1/recipients/' + recipient_id + '/cards'
202
- }
203
- end
204
-
205
- def make_customer_card_array(customer_id)
206
- {
207
- :data => [make_card, make_card, make_card],
208
- :object => 'list',
209
- :resource_url => '/v1/customers/' + customer_id + '/sources'
210
- }
211
- end
212
-
213
- def make_card(params={})
214
- {
215
- :type => "Visa",
216
- :last4 => "4242",
217
- :exp_month => 11,
218
- :country => "US",
219
- :exp_year => 2012,
220
- :id => "cc_test_card",
221
- :customer => 'c_test_customer',
222
- :object => "card"
223
- }.merge(params)
224
- end
225
-
226
- def make_coupon(params={})
227
- {
228
- :duration => 'repeating',
229
- :duration_in_months => 3,
230
- :percent_off => 25,
231
- :id => "co_test_coupon",
232
- :object => "coupon",
233
- :metadata => {},
234
- }.merge(params)
235
- end
236
-
237
- def make_file(params={})
238
- {
239
- :object => "file_upload",
240
- :id => "fil_test_file",
241
- :created => 1403047735,
242
- :size => 4908,
243
- :purpose => params[:purpose] || "dispute_evidence",
244
- :resource_url => nil,
245
- :type => nil,
246
- }
247
- end
248
-
249
- def make_file_array
250
- {
251
- :data => [make_file, make_file, make_file],
252
- :object => 'list',
253
- :resource_url => '/v1/files'
254
- }
255
- end
256
-
257
- #FIXME nested overrides would be better than hardcoding plan_id
258
- def make_subscription(params = {})
259
- plan = params.delete(:plan) || 'gold'
260
- {
261
- :current_period_end => 1308681468,
262
- :status => "trialing",
263
- :plan => {
264
- :interval => "month",
265
- :amount => 7500,
266
- :trial_period_days => 30,
267
- :object => "plan",
268
- :identifier => plan
269
- },
270
- :current_period_start => 1308595038,
271
- :start => 1308595038,
272
- :object => "subscription",
273
- :trial_start => 1308595038,
274
- :trial_end => 1308681468,
275
- :customer => "c_test_customer",
276
- :id => 's_test_subscription'
277
- }.merge(params)
278
- end
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
-
298
- def make_refund(params = {})
299
- {
300
- :object => 'refund',
301
- :amount => 30,
302
- :currency => "usd",
303
- :created => 1308595038,
304
- :id => "ref_test_refund",
305
- :charge => "ch_test_charge",
306
- :metadata => {}
307
- }.merge(params)
308
- end
309
-
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)
327
- {
328
- :data => [make_subscription, make_subscription, make_subscription],
329
- :object => 'list',
330
- :resource_url => '/v1/customers/' + customer_id + '/subscriptions'
331
- }
332
- end
333
-
334
- def make_refund_array(charge=nil)
335
- p = charge ? {:charge => charge} : {}
336
-
337
- {
338
- :data => [make_refund(p), make_refund(p), make_refund(p)],
339
- :object => 'list',
340
- :resource_url => charge ? "/v1/charges/#{charge}/refunds" : '/v1/refunds'
341
- }
342
- end
343
-
344
- def make_reversal_array(transfer_id)
345
- {
346
- :data => [make_reversal, make_reversal, make_reversal],
347
- :object => 'list',
348
- :resource_url => '/v1/transfers/' + transfer_id + '/reversals'
349
- }
350
- end
351
-
352
- def make_invoice(params={})
353
- {
354
- :id => 'in_test_invoice',
355
- :object => 'invoice',
356
- :livemode => false,
357
- :amount_due => 1000,
358
- :attempt_count => 0,
359
- :attempted => false,
360
- :closed => false,
361
- :currency => 'usd',
362
- :customer => 'c_test_customer',
363
- :date => 1349738950,
364
- :lines => {
365
- :object => 'list',
366
- :data => [
367
- {
368
- :id => 'ii_test_invoice_item',
369
- :object => 'invoiceitem',
370
- :livemode => false,
371
- :amount => 1000,
372
- :currency => 'usd',
373
- :customer => 'c_test_customer',
374
- :date => 1349738950,
375
- :description => "A Test Invoice Item",
376
- :invoice => 'in_test_invoice'
377
- },
378
- ],
379
- },
380
- :paid => false,
381
- :period_end => 1349738950,
382
- :period_start => 1349738950,
383
- :starting_balance => 0,
384
- :subtotal => 1000,
385
- :total => 1000,
386
- :charge => nil,
387
- :discount => nil,
388
- :ending_balance => nil,
389
- :next_payment_attempt => 1349825350,
390
- }.merge(params)
391
- end
392
-
393
- def make_paid_invoice
394
- make_invoice.merge({
395
- :attempt_count => 1,
396
- :attempted => true,
397
- :closed => true,
398
- :paid => true,
399
- :charge => 'ch_test_charge',
400
- :ending_balance => 0,
401
- :next_payment_attempt => nil,
402
- })
403
- end
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
-
416
- def make_invoice_customer_array
417
- {
418
- :data => [make_invoice],
419
- :object => 'list',
420
- :resource_url => '/v1/invoices?customer=test_customer'
421
- }
422
- end
423
-
424
- def make_recipient(params={})
425
- id = params[:id] || 'rp_test_recipient'
426
- {
427
- :name => "Stripe User",
428
- :type => "individual",
429
- :livemode => false,
430
- :object => "recipient",
431
- :id => "rp_test_recipient",
432
- :cards => make_recipient_card_array(id),
433
- :default_card => "debit_test_card",
434
- :active_account => {
435
- :last4 => "6789",
436
- :bank_name => "STRIPE TEST BANK",
437
- :country => "US",
438
- :object => "bank_account"
439
- },
440
- :created => 1304114758,
441
- :verified => true,
442
- :metadata => {}
443
- }.merge(params)
444
- end
445
-
446
- def make_recipient_array
447
- {
448
- :data => [make_recipient, make_recipient, make_recipient],
449
- :object => 'list',
450
- :resource_url => '/v1/recipients'
451
- }
452
- end
453
-
454
- def make_transfer(params={})
455
- {
456
- :status => 'pending',
457
- :amount => 100,
458
- :account => {
459
- :object => 'bank_account',
460
- :country => 'US',
461
- :bank_name => 'STRIPE TEST BANK',
462
- :last4 => '6789'
463
- },
464
- :recipient => 'test_recipient',
465
- :fee => 0,
466
- :fee_details => [],
467
- :id => "tr_test_transfer",
468
- :reversals => make_reversal_array('tr_test_transfer'),
469
- :livemode => false,
470
- :currency => "usd",
471
- :object => "transfer",
472
- :date => 1304114826,
473
- :metadata => {}
474
- }.merge(params)
475
- end
476
-
477
- def make_transfer_array
478
- {
479
- :data => [make_transfer, make_transfer, make_transfer],
480
- :object => 'list',
481
- :resource_url => '/v1/transfers'
482
- }
483
- end
484
-
485
- def make_canceled_transfer
486
- make_transfer.merge({
487
- :status => 'canceled'
488
- })
489
- end
490
-
491
- def make_reversal(params={})
492
- {
493
- :object => 'transfer_reversal',
494
- :amount => 30,
495
- :currency => "usd",
496
- :created => 1308595038,
497
- :id => "ref_test_reversal",
498
- :transfer => "tr_test_transfer",
499
- :metadata => {}
500
- }.merge(params)
501
- end
502
-
503
- def make_bitcoin_receiver(params={})
3
+ def make_error(type, message)
504
4
  {
505
- :id => 'btcrcv_test_receiver',
506
- :amount => 100,
507
- :currency => 'usd',
508
- :description => 'some details',
509
- :metadata => {},
510
- :object => 'bitcoin_receiver',
511
- :customer => nil,
512
- :transactions => make_bitcoin_transaction_array
513
- }.merge(params)
514
- end
515
-
516
- def make_bitcoin_receiver_array
517
- {
518
- :data => [make_bitcoin_receiver, make_bitcoin_receiver, make_bitcoin_receiver],
519
- :object => 'list',
520
- :resource_url => '/v1/bitcoin/receivers'
521
- }
522
- end
523
-
524
- def make_bitcoin_transaction(params={})
525
- {
526
- :id => 'btctxn_test_transaction',
527
- :object => 'bitcoin_transaction',
528
- :amount => 100,
529
- :currency => 'usd',
530
- :bitcoin_amount => 90,
531
- :receiver => 'btcrcv_test_receiver'
532
- }.merge(params)
533
- end
534
-
535
- def make_bitcoin_transaction_array
536
- {
537
- :data => [make_bitcoin_transaction, make_bitcoin_transaction, make_bitcoin_transaction],
538
- :object => 'list',
539
- :resource_url => "/v1/bitcoin/receivers/btcrcv_test_receiver/transactions"
5
+ :error => {
6
+ :type => type,
7
+ :message => message,
8
+ }
540
9
  }
541
10
  end
542
11
 
@@ -586,400 +55,5 @@ module Stripe
586
55
  }
587
56
  }
588
57
  end
589
-
590
- def make_delete_discount_response
591
- {
592
- :deleted => true,
593
- :id => "di_test_coupon"
594
- }
595
- end
596
-
597
- def make_product(params={})
598
- {
599
- :id => "pr_test_product",
600
- :created => 1441992477,
601
- :updated => 1441992477,
602
- :object => "product",
603
- :livemode => false,
604
- :name => "Test Product",
605
- :caption => "Comfy comfu",
606
- :description => "Testing",
607
- :active => true,
608
- :attributes => [],
609
- :shippable => true,
610
- :metadata => {},
611
- :url => "http://example.com/product",
612
- :package_dimensions => nil,
613
- :images => [],
614
- :skus => make_sku_array("pr_test_product")
615
- }.merge(params)
616
- end
617
-
618
- def make_product_array
619
- {
620
- :object => "list",
621
- :resource_url => "/v1/products",
622
- :data => [
623
- make_product,
624
- make_product,
625
- make_product,
626
- ],
627
- }
628
- end
629
-
630
- def make_sku(params={})
631
- {
632
- :id => "12345",
633
- :created => 1441992494,
634
- :updated => 1441992494,
635
- :object => "sku",
636
- :livemode => false,
637
- :product => "pr_test_product",
638
- :image => nil,
639
- :active => true,
640
- :price => 999,
641
- :currency => "usd",
642
- :inventory => {
643
- :type => "infinite",
644
- :quantity => nil,
645
- :value => nil,
646
- },
647
- :attributes => {},
648
- :metadata => {},
649
- :package_dimensions => nil,
650
- }.merge(params)
651
- end
652
-
653
- def make_sku_array(product_id, params={})
654
- {
655
- :object => "list",
656
- :resource_url => "/v1/skus",
657
- :data => [
658
- make_sku(:product => product_id),
659
- make_sku(:product => product_id),
660
- make_sku(:product => product_id),
661
- ]
662
- }
663
- end
664
-
665
- def make_order(params={})
666
- {
667
- :id => "or_16kg0uDAu10Yox5RReNVCthv",
668
- :created => 1442171988,
669
- :updated => nil,
670
- :object => "order",
671
- :livemode => false,
672
- :status => "created",
673
- :metadata => {},
674
- :customer => nil,
675
- :shipping => {
676
- :name => "Jenny Rosen",
677
- :address => {
678
- :line1 => "1234 Main street",
679
- :line2 => nil,
680
- :city => "Anytown",
681
- :state => nil,
682
- :postal_code => "123456",
683
- :country => "US"
684
- },
685
- :phone => nil,
686
- },
687
- :email => nil,
688
- :items => [
689
- {
690
- :parent => "sk_16bHXrDAu10Yox5RU2007dpU",
691
- :object => "order_item",
692
- :type => "sku",
693
- :description => "T-shirt",
694
- :amount => 1500,
695
- :currency => "usd",
696
- :quantity => nil,
697
- }
698
- ],
699
- :shipping_methods => nil,
700
- :selected_shipping_method => nil,
701
- :amount => 1500,
702
- :currency => "usd",
703
- :charge => nil,
704
- }.merge(params)
705
- end
706
-
707
- def make_order_array(params={})
708
- {
709
- :object => "list",
710
- :resource_url => "/v1/orders",
711
- :data => [
712
- make_order,
713
- make_order,
714
- make_order,
715
- ]
716
- }
717
- end
718
-
719
- def make_paid_order(params={})
720
- make_order.merge({
721
- :status => "paid",
722
- :charge => make_charge,
723
- }).merge(params)
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
984
58
  end
985
59
  end