stripe 1.18.0 → 1.30.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +11 -1
- data/History.txt +98 -0
- data/README.rdoc +19 -10
- data/VERSION +1 -1
- data/lib/stripe/account.rb +46 -4
- data/lib/stripe/api_operations/create.rb +3 -10
- data/lib/stripe/api_operations/delete.rb +4 -4
- data/lib/stripe/api_operations/list.rb +17 -9
- data/lib/stripe/api_operations/request.rb +41 -0
- data/lib/stripe/api_operations/update.rb +41 -40
- data/lib/stripe/api_resource.rb +7 -4
- data/lib/stripe/application_fee.rb +3 -4
- data/lib/stripe/application_fee_refund.rb +1 -1
- data/lib/stripe/balance_transaction.rb +1 -1
- data/lib/stripe/bank_account.rb +19 -0
- data/lib/stripe/bitcoin_receiver.rb +12 -2
- data/lib/stripe/bitcoin_transaction.rb +5 -0
- data/lib/stripe/card.rb +6 -4
- data/lib/stripe/charge.rb +14 -22
- data/lib/stripe/coupon.rb +2 -2
- data/lib/stripe/customer.rb +24 -26
- data/lib/stripe/dispute.rb +16 -0
- data/lib/stripe/errors/card_error.rb +3 -2
- data/lib/stripe/errors/invalid_request_error.rb +3 -2
- data/lib/stripe/errors/rate_limit_error.rb +4 -0
- data/lib/stripe/errors/stripe_error.rb +8 -2
- data/lib/stripe/event.rb +1 -1
- data/lib/stripe/file_upload.rb +12 -22
- data/lib/stripe/invoice.rb +8 -8
- data/lib/stripe/invoice_item.rb +2 -2
- data/lib/stripe/list_object.rb +77 -13
- data/lib/stripe/order.rb +19 -0
- data/lib/stripe/plan.rb +2 -2
- data/lib/stripe/product.rb +16 -0
- data/lib/stripe/recipient.rb +2 -2
- data/lib/stripe/refund.rb +2 -9
- data/lib/stripe/reversal.rb +14 -0
- data/lib/stripe/singleton_api_resource.rb +2 -2
- data/lib/stripe/sku.rb +8 -0
- data/lib/stripe/stripe_object.rb +232 -46
- data/lib/stripe/subscription.rb +3 -3
- data/lib/stripe/token.rb +1 -1
- data/lib/stripe/transfer.rb +3 -3
- data/lib/stripe/util.rb +64 -21
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe.rb +102 -67
- data/stripe.gemspec +0 -2
- data/test/stripe/account_test.rb +135 -6
- data/test/stripe/api_resource_test.rb +326 -42
- data/test/stripe/application_fee_refund_test.rb +6 -6
- data/test/stripe/application_fee_test.rb +3 -3
- data/test/stripe/balance_test.rb +11 -0
- data/test/stripe/bitcoin_receiver_test.rb +30 -7
- data/test/stripe/bitcoin_transaction_test.rb +29 -0
- data/test/stripe/charge_refund_test.rb +55 -0
- data/test/stripe/charge_test.rb +32 -13
- data/test/stripe/coupon_test.rb +3 -3
- data/test/stripe/customer_card_test.rb +20 -14
- data/test/stripe/customer_test.rb +15 -15
- data/test/stripe/dispute_test.rb +45 -0
- data/test/stripe/file_upload_test.rb +17 -6
- data/test/stripe/invoice_test.rb +18 -4
- data/test/stripe/list_object_test.rb +126 -2
- data/test/stripe/metadata_test.rb +28 -13
- data/test/stripe/order_test.rb +52 -0
- data/test/stripe/product_test.rb +41 -0
- data/test/stripe/recipient_card_test.rb +9 -9
- data/test/stripe/refund_test.rb +23 -15
- data/test/stripe/reversal_test.rb +47 -0
- data/test/stripe/sku_test.rb +24 -0
- data/test/stripe/stripe_object_test.rb +67 -6
- data/test/stripe/subscription_test.rb +13 -13
- data/test/stripe/transfer_test.rb +4 -4
- data/test/stripe/util_test.rb +45 -29
- data/test/stripe_test.rb +16 -0
- data/test/test_data.rb +273 -66
- metadata +47 -76
- data/lib/stripe/certificate_blacklist.rb +0 -55
- data/test/stripe/certificate_blacklist_test.rb +0 -18
data/test/test_data.rb
CHANGED
@@ -1,17 +1,30 @@
|
|
1
1
|
module Stripe
|
2
2
|
module TestData
|
3
|
-
def
|
3
|
+
def make_response(body, code=200)
|
4
4
|
# When an exception is raised, restclient clobbers method_missing. Hence we
|
5
5
|
# can't just use the stubs interface.
|
6
6
|
body = JSON.generate(body) if !(body.kind_of? String)
|
7
7
|
m = mock
|
8
|
-
m.instance_variable_set('@stripe_values', {
|
8
|
+
m.instance_variable_set('@stripe_values', {
|
9
|
+
:body => body,
|
10
|
+
:code => code,
|
11
|
+
:headers => {},
|
12
|
+
})
|
9
13
|
def m.body; @stripe_values[:body]; end
|
10
14
|
def m.code; @stripe_values[:code]; end
|
15
|
+
def m.headers; @stripe_values[:headers]; end
|
11
16
|
m
|
12
17
|
end
|
13
18
|
|
14
|
-
def
|
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={})
|
15
28
|
{
|
16
29
|
:pending => [
|
17
30
|
{:amount => 12345, :currency => "usd"}
|
@@ -24,7 +37,7 @@ module Stripe
|
|
24
37
|
}.merge(params)
|
25
38
|
end
|
26
39
|
|
27
|
-
def
|
40
|
+
def make_balance_transaction(params={})
|
28
41
|
{
|
29
42
|
:amount => 100,
|
30
43
|
:net => 41,
|
@@ -39,15 +52,15 @@ module Stripe
|
|
39
52
|
}.merge(params)
|
40
53
|
end
|
41
54
|
|
42
|
-
def
|
55
|
+
def make_balance_transaction_array
|
43
56
|
{
|
44
|
-
:data => [
|
57
|
+
:data => [make_balance_transaction, make_balance_transaction, make_balance_transaction],
|
45
58
|
:object => "list",
|
46
59
|
:url => "/v1/balance/history"
|
47
60
|
}
|
48
61
|
end
|
49
62
|
|
50
|
-
def
|
63
|
+
def make_application_fee(params={})
|
51
64
|
id = params[:id] || 'fee_test_fee'
|
52
65
|
{
|
53
66
|
:refunded => false,
|
@@ -59,12 +72,12 @@ module Stripe
|
|
59
72
|
:livemode => false,
|
60
73
|
:currency => "usd",
|
61
74
|
:object => "application_fee",
|
62
|
-
:refunds =>
|
75
|
+
:refunds => make_application_fee_refund_array(id),
|
63
76
|
:created => 1304114826
|
64
77
|
}.merge(params)
|
65
78
|
end
|
66
79
|
|
67
|
-
def
|
80
|
+
def make_application_fee_refund(params = {})
|
68
81
|
{
|
69
82
|
:object => 'fee_refund',
|
70
83
|
:amount => 30,
|
@@ -76,23 +89,23 @@ module Stripe
|
|
76
89
|
}.merge(params)
|
77
90
|
end
|
78
91
|
|
79
|
-
def
|
92
|
+
def make_application_fee_array
|
80
93
|
{
|
81
|
-
:data => [
|
94
|
+
:data => [make_application_fee, make_application_fee, make_application_fee],
|
82
95
|
:object => 'list',
|
83
96
|
:url => '/v1/application_fees'
|
84
97
|
}
|
85
98
|
end
|
86
99
|
|
87
|
-
def
|
100
|
+
def make_application_fee_refund_array(fee_id)
|
88
101
|
{
|
89
|
-
:data => [
|
102
|
+
:data => [make_application_fee_refund, make_application_fee_refund, make_application_fee_refund],
|
90
103
|
:object => 'list',
|
91
104
|
:url => '/v1/application_fees/' + fee_id + '/refunds'
|
92
105
|
}
|
93
106
|
end
|
94
107
|
|
95
|
-
def
|
108
|
+
def make_customer(params={})
|
96
109
|
id = params[:id] || 'c_test_customer'
|
97
110
|
{
|
98
111
|
:subscription_history => [],
|
@@ -103,21 +116,21 @@ module Stripe
|
|
103
116
|
:id => id,
|
104
117
|
:default_card => "cc_test_card",
|
105
118
|
:created => 1304114758,
|
106
|
-
:
|
119
|
+
:sources => make_customer_card_array(id),
|
107
120
|
:metadata => {},
|
108
|
-
:subscriptions =>
|
121
|
+
:subscriptions => make_subscription_array(id)
|
109
122
|
}.merge(params)
|
110
123
|
end
|
111
124
|
|
112
|
-
def
|
125
|
+
def make_customer_array
|
113
126
|
{
|
114
|
-
:data => [
|
127
|
+
:data => [make_customer, make_customer, make_customer],
|
115
128
|
:object => 'list',
|
116
129
|
:url => '/v1/customers'
|
117
130
|
}
|
118
131
|
end
|
119
132
|
|
120
|
-
def
|
133
|
+
def make_charge(params={})
|
121
134
|
id = params[:id] || 'ch_test_charge'
|
122
135
|
{
|
123
136
|
:refunded => false,
|
@@ -138,28 +151,61 @@ module Stripe
|
|
138
151
|
:currency => "usd",
|
139
152
|
:object => "charge",
|
140
153
|
:created => 1304114826,
|
141
|
-
:refunds =>
|
154
|
+
:refunds => make_refund_array(id),
|
142
155
|
:metadata => {}
|
143
156
|
}.merge(params)
|
144
157
|
end
|
145
158
|
|
146
|
-
def
|
159
|
+
def make_charge_array
|
147
160
|
{
|
148
|
-
:data => [
|
161
|
+
:data => [make_charge, make_charge, make_charge],
|
149
162
|
:object => 'list',
|
150
163
|
:url => '/v1/charges'
|
151
164
|
}
|
152
165
|
end
|
153
166
|
|
154
|
-
|
167
|
+
|
168
|
+
def make_dispute(params={})
|
169
|
+
id = params[:id] || 'dp_test_dispute'
|
170
|
+
{
|
171
|
+
:id => id,
|
172
|
+
:charge => "ch_test_charge",
|
173
|
+
:amount => 500,
|
174
|
+
:created => 1304114758,
|
175
|
+
:status => 'needs_response',
|
176
|
+
:livemode => false,
|
177
|
+
:currency => 'usd',
|
178
|
+
:object => 'dispute',
|
179
|
+
:reason => 'fraudulent',
|
180
|
+
:evidence => {},
|
181
|
+
}.merge(params)
|
182
|
+
end
|
183
|
+
|
184
|
+
def make_dispute_array
|
185
|
+
{
|
186
|
+
:data => [make_dispute, make_dispute, make_dispute],
|
187
|
+
:object => 'list',
|
188
|
+
:url => '/v1/disputes'
|
189
|
+
}
|
190
|
+
end
|
191
|
+
|
192
|
+
def make_recipient_card_array(recipient_id)
|
193
|
+
{
|
194
|
+
:data => [make_card, make_card, make_card],
|
195
|
+
:object => 'list',
|
196
|
+
:url => '/v1/recipients/' + recipient_id + '/cards'
|
197
|
+
}
|
198
|
+
end
|
199
|
+
|
200
|
+
def make_customer_card_array(customer_id)
|
155
201
|
{
|
156
|
-
:data => [
|
202
|
+
:data => [make_card, make_card, make_card],
|
157
203
|
:object => 'list',
|
158
|
-
:url => '/v1/customers/' + customer_id + '/
|
204
|
+
:url => '/v1/customers/' + customer_id + '/sources'
|
159
205
|
}
|
160
206
|
end
|
161
207
|
|
162
|
-
def
|
208
|
+
def make_card(params={})
|
163
209
|
{
|
164
210
|
:type => "Visa",
|
165
211
|
:last4 => "4242",
|
@@ -172,7 +218,7 @@ module Stripe
|
|
172
218
|
}.merge(params)
|
173
219
|
end
|
174
220
|
|
175
|
-
def
|
221
|
+
def make_coupon(params={})
|
176
222
|
{
|
177
223
|
:duration => 'repeating',
|
178
224
|
:duration_in_months => 3,
|
@@ -183,7 +229,7 @@ module Stripe
|
|
183
229
|
}.merge(params)
|
184
230
|
end
|
185
231
|
|
186
|
-
def
|
232
|
+
def make_file(params={})
|
187
233
|
{
|
188
234
|
:object => "file_upload",
|
189
235
|
:id => "fil_test_file",
|
@@ -195,16 +241,16 @@ module Stripe
|
|
195
241
|
}
|
196
242
|
end
|
197
243
|
|
198
|
-
def
|
244
|
+
def make_file_array
|
199
245
|
{
|
200
|
-
:data => [
|
246
|
+
:data => [make_file, make_file, make_file],
|
201
247
|
:object => 'list',
|
202
248
|
:url => '/v1/files'
|
203
249
|
}
|
204
250
|
end
|
205
251
|
|
206
252
|
#FIXME nested overrides would be better than hardcoding plan_id
|
207
|
-
def
|
253
|
+
def make_subscription(params = {})
|
208
254
|
plan = params.delete(:plan) || 'gold'
|
209
255
|
{
|
210
256
|
:current_period_end => 1308681468,
|
@@ -226,7 +272,7 @@ module Stripe
|
|
226
272
|
}.merge(params)
|
227
273
|
end
|
228
274
|
|
229
|
-
def
|
275
|
+
def make_refund(params = {})
|
230
276
|
{
|
231
277
|
:object => 'refund',
|
232
278
|
:amount => 30,
|
@@ -238,24 +284,33 @@ module Stripe
|
|
238
284
|
}.merge(params)
|
239
285
|
end
|
240
286
|
|
241
|
-
def
|
287
|
+
def make_subscription_array(customer_id)
|
242
288
|
{
|
243
|
-
:data => [
|
289
|
+
:data => [make_subscription, make_subscription, make_subscription],
|
244
290
|
:object => 'list',
|
245
291
|
:url => '/v1/customers/' + customer_id + '/subscriptions'
|
246
292
|
}
|
247
293
|
end
|
248
294
|
|
249
|
-
def
|
295
|
+
def make_refund_array(charge=nil)
|
296
|
+
p = charge ? {:charge => charge} : {}
|
297
|
+
|
250
298
|
{
|
251
|
-
:data => [
|
299
|
+
:data => [make_refund(p), make_refund(p), make_refund(p)],
|
252
300
|
:object => 'list',
|
253
|
-
:url =>
|
301
|
+
:url => charge ? "/v1/charges/#{charge}/refunds" : '/v1/refunds'
|
254
302
|
}
|
255
303
|
end
|
256
304
|
|
305
|
+
def make_reversal_array(transfer_id)
|
306
|
+
{
|
307
|
+
:data => [make_reversal, make_reversal, make_reversal],
|
308
|
+
:object => 'list',
|
309
|
+
:url => '/v1/transfers/' + transfer_id + '/reversals'
|
310
|
+
}
|
311
|
+
end
|
257
312
|
|
258
|
-
def
|
313
|
+
def make_invoice
|
259
314
|
{
|
260
315
|
:id => 'in_test_invoice',
|
261
316
|
:object => 'invoice',
|
@@ -268,10 +323,11 @@ module Stripe
|
|
268
323
|
:customer => 'c_test_customer',
|
269
324
|
:date => 1349738950,
|
270
325
|
:lines => {
|
271
|
-
|
326
|
+
:object => 'list',
|
327
|
+
:data => [
|
272
328
|
{
|
273
329
|
:id => 'ii_test_invoice_item',
|
274
|
-
:object => '',
|
330
|
+
:object => 'invoiceitem',
|
275
331
|
:livemode => false,
|
276
332
|
:amount => 1000,
|
277
333
|
:currency => 'usd',
|
@@ -291,12 +347,12 @@ module Stripe
|
|
291
347
|
:charge => nil,
|
292
348
|
:discount => nil,
|
293
349
|
:ending_balance => nil,
|
294
|
-
:
|
350
|
+
:next_payment_attempt => 1349825350,
|
295
351
|
}
|
296
352
|
end
|
297
353
|
|
298
|
-
def
|
299
|
-
|
354
|
+
def make_paid_invoice
|
355
|
+
make_invoice.merge({
|
300
356
|
:attempt_count => 1,
|
301
357
|
:attempted => true,
|
302
358
|
:closed => true,
|
@@ -307,15 +363,15 @@ module Stripe
|
|
307
363
|
})
|
308
364
|
end
|
309
365
|
|
310
|
-
def
|
366
|
+
def make_invoice_customer_array
|
311
367
|
{
|
312
|
-
:data => [
|
368
|
+
:data => [make_invoice],
|
313
369
|
:object => 'list',
|
314
370
|
:url => '/v1/invoices?customer=test_customer'
|
315
371
|
}
|
316
372
|
end
|
317
373
|
|
318
|
-
def
|
374
|
+
def make_recipient(params={})
|
319
375
|
id = params[:id] || 'rp_test_recipient'
|
320
376
|
{
|
321
377
|
:name => "Stripe User",
|
@@ -323,7 +379,7 @@ module Stripe
|
|
323
379
|
:livemode => false,
|
324
380
|
:object => "recipient",
|
325
381
|
:id => "rp_test_recipient",
|
326
|
-
:cards =>
|
382
|
+
:cards => make_recipient_card_array(id),
|
327
383
|
:default_card => "debit_test_card",
|
328
384
|
:active_account => {
|
329
385
|
:last4 => "6789",
|
@@ -337,15 +393,15 @@ module Stripe
|
|
337
393
|
}.merge(params)
|
338
394
|
end
|
339
395
|
|
340
|
-
def
|
396
|
+
def make_recipient_array
|
341
397
|
{
|
342
|
-
:data => [
|
398
|
+
:data => [make_recipient, make_recipient, make_recipient],
|
343
399
|
:object => 'list',
|
344
400
|
:url => '/v1/recipients'
|
345
401
|
}
|
346
402
|
end
|
347
403
|
|
348
|
-
def
|
404
|
+
def make_transfer(params={})
|
349
405
|
{
|
350
406
|
:status => 'pending',
|
351
407
|
:amount => 100,
|
@@ -359,6 +415,7 @@ module Stripe
|
|
359
415
|
:fee => 0,
|
360
416
|
:fee_details => [],
|
361
417
|
:id => "tr_test_transfer",
|
418
|
+
:reversals => make_reversal_array('tr_test_transfer'),
|
362
419
|
:livemode => false,
|
363
420
|
:currency => "usd",
|
364
421
|
:object => "transfer",
|
@@ -367,21 +424,33 @@ module Stripe
|
|
367
424
|
}.merge(params)
|
368
425
|
end
|
369
426
|
|
370
|
-
def
|
427
|
+
def make_transfer_array
|
371
428
|
{
|
372
|
-
:data => [
|
429
|
+
:data => [make_transfer, make_transfer, make_transfer],
|
373
430
|
:object => 'list',
|
374
431
|
:url => '/v1/transfers'
|
375
432
|
}
|
376
433
|
end
|
377
434
|
|
378
|
-
def
|
379
|
-
|
435
|
+
def make_canceled_transfer
|
436
|
+
make_transfer.merge({
|
380
437
|
:status => 'canceled'
|
381
438
|
})
|
382
439
|
end
|
383
440
|
|
384
|
-
def
|
441
|
+
def make_reversal(params={})
|
442
|
+
{
|
443
|
+
:object => 'transfer_reversal',
|
444
|
+
:amount => 30,
|
445
|
+
:currency => "usd",
|
446
|
+
:created => 1308595038,
|
447
|
+
:id => "ref_test_reversal",
|
448
|
+
:transfer => "tr_test_transfer",
|
449
|
+
:metadata => {}
|
450
|
+
}.merge(params)
|
451
|
+
end
|
452
|
+
|
453
|
+
def make_bitcoin_receiver(params={})
|
385
454
|
{
|
386
455
|
:id => 'btcrcv_test_receiver',
|
387
456
|
:amount => 100,
|
@@ -389,19 +458,19 @@ module Stripe
|
|
389
458
|
:description => 'some details',
|
390
459
|
:metadata => {},
|
391
460
|
:object => 'bitcoin_receiver',
|
392
|
-
:transactions =>
|
461
|
+
:transactions => make_bitcoin_transaction_array
|
393
462
|
}.merge(params)
|
394
463
|
end
|
395
464
|
|
396
|
-
def
|
465
|
+
def make_bitcoin_receiver_array
|
397
466
|
{
|
398
|
-
:data => [
|
467
|
+
:data => [make_bitcoin_receiver, make_bitcoin_receiver, make_bitcoin_receiver],
|
399
468
|
:object => 'list',
|
400
469
|
:url => '/v1/bitcoin/receivers'
|
401
470
|
}
|
402
471
|
end
|
403
472
|
|
404
|
-
def
|
473
|
+
def make_bitcoin_transaction(params={})
|
405
474
|
{
|
406
475
|
:id => 'btctxn_test_transaction',
|
407
476
|
:object => 'bitcoin_transaction',
|
@@ -412,15 +481,15 @@ module Stripe
|
|
412
481
|
}.merge(params)
|
413
482
|
end
|
414
483
|
|
415
|
-
def
|
484
|
+
def make_bitcoin_transaction_array
|
416
485
|
{
|
417
|
-
:data => [
|
486
|
+
:data => [make_bitcoin_transaction, make_bitcoin_transaction, make_bitcoin_transaction],
|
418
487
|
:object => 'list',
|
419
488
|
:url => "/v1/bitcoin/receivers/btcrcv_test_receiver/transactions"
|
420
489
|
}
|
421
490
|
end
|
422
491
|
|
423
|
-
def
|
492
|
+
def make_invalid_api_key_error
|
424
493
|
{
|
425
494
|
:error => {
|
426
495
|
:type => "invalid_request_error",
|
@@ -429,7 +498,7 @@ module Stripe
|
|
429
498
|
}
|
430
499
|
end
|
431
500
|
|
432
|
-
def
|
501
|
+
def make_invalid_exp_year_error
|
433
502
|
{
|
434
503
|
:error => {
|
435
504
|
:code => "invalid_expiry_year",
|
@@ -440,7 +509,7 @@ module Stripe
|
|
440
509
|
}
|
441
510
|
end
|
442
511
|
|
443
|
-
def
|
512
|
+
def make_missing_id_error
|
444
513
|
{
|
445
514
|
:error => {
|
446
515
|
:param => "id",
|
@@ -450,7 +519,16 @@ module Stripe
|
|
450
519
|
}
|
451
520
|
end
|
452
521
|
|
453
|
-
def
|
522
|
+
def make_rate_limit_error
|
523
|
+
{
|
524
|
+
:error => {
|
525
|
+
:type => "invalid_request_error",
|
526
|
+
:message => "Too many requests in a period of time."
|
527
|
+
}
|
528
|
+
}
|
529
|
+
end
|
530
|
+
|
531
|
+
def make_api_error
|
454
532
|
{
|
455
533
|
:error => {
|
456
534
|
:type => "api_error"
|
@@ -458,11 +536,140 @@ module Stripe
|
|
458
536
|
}
|
459
537
|
end
|
460
538
|
|
461
|
-
def
|
539
|
+
def make_delete_discount_response
|
462
540
|
{
|
463
541
|
:deleted => true,
|
464
542
|
:id => "di_test_coupon"
|
465
543
|
}
|
466
544
|
end
|
545
|
+
|
546
|
+
def make_product(params={})
|
547
|
+
{
|
548
|
+
:id => "pr_test_product",
|
549
|
+
:created => 1441992477,
|
550
|
+
:updated => 1441992477,
|
551
|
+
:object => "product",
|
552
|
+
:livemode => false,
|
553
|
+
:name => "Test Product",
|
554
|
+
:caption => "Comfy comfu",
|
555
|
+
:description => "Testing",
|
556
|
+
:active => true,
|
557
|
+
:attributes => [],
|
558
|
+
:shippable => true,
|
559
|
+
:metadata => {},
|
560
|
+
:url => "http://example.com/product",
|
561
|
+
:package_dimensions => nil,
|
562
|
+
:images => [],
|
563
|
+
:skus => make_sku_array("pr_test_product")
|
564
|
+
}.merge(params)
|
565
|
+
end
|
566
|
+
|
567
|
+
def make_product_array
|
568
|
+
{
|
569
|
+
:object => "list",
|
570
|
+
:url => "/v1/products",
|
571
|
+
:data => [
|
572
|
+
make_product,
|
573
|
+
make_product,
|
574
|
+
make_product,
|
575
|
+
],
|
576
|
+
}
|
577
|
+
end
|
578
|
+
|
579
|
+
def make_sku(params={})
|
580
|
+
{
|
581
|
+
:id => "12345",
|
582
|
+
:created => 1441992494,
|
583
|
+
:updated => 1441992494,
|
584
|
+
:object => "sku",
|
585
|
+
:livemode => false,
|
586
|
+
:product => "pr_test_product",
|
587
|
+
:image => nil,
|
588
|
+
:active => true,
|
589
|
+
:price => 999,
|
590
|
+
:currency => "usd",
|
591
|
+
:inventory => {
|
592
|
+
:type => "infinite",
|
593
|
+
:quantity => nil,
|
594
|
+
:value => nil,
|
595
|
+
},
|
596
|
+
:attributes => {},
|
597
|
+
:metadata => {},
|
598
|
+
:package_dimensions => nil,
|
599
|
+
}.merge(params)
|
600
|
+
end
|
601
|
+
|
602
|
+
def make_sku_array(product_id, params={})
|
603
|
+
{
|
604
|
+
:object => "list",
|
605
|
+
:url => "/v1/skus",
|
606
|
+
:data => [
|
607
|
+
make_sku(:product => product_id),
|
608
|
+
make_sku(:product => product_id),
|
609
|
+
make_sku(:product => product_id),
|
610
|
+
]
|
611
|
+
}
|
612
|
+
end
|
613
|
+
|
614
|
+
def make_order(params={})
|
615
|
+
{
|
616
|
+
:id => "or_16kg0uDAu10Yox5RReNVCthv",
|
617
|
+
:created => 1442171988,
|
618
|
+
:updated => nil,
|
619
|
+
:object => "order",
|
620
|
+
:livemode => false,
|
621
|
+
:status => "created",
|
622
|
+
:metadata => {},
|
623
|
+
:customer => nil,
|
624
|
+
:shipping => {
|
625
|
+
:name => "Jenny Rosen",
|
626
|
+
:address => {
|
627
|
+
:line1 => "1234 Main street",
|
628
|
+
:line2 => nil,
|
629
|
+
:city => "Anytown",
|
630
|
+
:state => nil,
|
631
|
+
:postal_code => "123456",
|
632
|
+
:country => "US"
|
633
|
+
},
|
634
|
+
:phone => nil,
|
635
|
+
},
|
636
|
+
:email => nil,
|
637
|
+
:items => [
|
638
|
+
{
|
639
|
+
:parent => "sk_16bHXrDAu10Yox5RU2007dpU",
|
640
|
+
:object => "order_item",
|
641
|
+
:type => "sku",
|
642
|
+
:description => "T-shirt",
|
643
|
+
:amount => 1500,
|
644
|
+
:currency => "usd",
|
645
|
+
:quantity => nil,
|
646
|
+
}
|
647
|
+
],
|
648
|
+
:shipping_methods => nil,
|
649
|
+
:selected_shipping_method => nil,
|
650
|
+
:amount => 1500,
|
651
|
+
:currency => "usd",
|
652
|
+
:charge => nil,
|
653
|
+
}.merge(params)
|
654
|
+
end
|
655
|
+
|
656
|
+
def make_order_array(params={})
|
657
|
+
{
|
658
|
+
:object => "list",
|
659
|
+
:url => "/v1/orders",
|
660
|
+
:data => [
|
661
|
+
make_order,
|
662
|
+
make_order,
|
663
|
+
make_order,
|
664
|
+
]
|
665
|
+
}
|
666
|
+
end
|
667
|
+
|
668
|
+
def make_paid_order(params={})
|
669
|
+
make_order.merge({
|
670
|
+
:status => "paid",
|
671
|
+
:charge => make_charge,
|
672
|
+
}).merge(params)
|
673
|
+
end
|
467
674
|
end
|
468
675
|
end
|