razorpay 3.2.1 → 3.2.3
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/CHANGELOG.md +17 -0
- data/README.md +18 -1
- data/documents/customer.md +242 -0
- data/documents/dispute.md +301 -0
- data/documents/documents.md +65 -0
- data/documents/oauth_token.md +142 -0
- data/documents/order.md +71 -0
- data/documents/payment.md +253 -0
- data/documents/transfers.md +40 -0
- data/lib/razorpay/constants.rb +6 -1
- data/lib/razorpay/customer.rb +16 -0
- data/lib/razorpay/dispute.rb +26 -0
- data/lib/razorpay/document.rb +19 -0
- data/lib/razorpay/oauth_token.rb +109 -0
- data/lib/razorpay/order.rb +8 -0
- data/lib/razorpay/payload_validator.rb +93 -0
- data/lib/razorpay/payment.rb +4 -0
- data/lib/razorpay/request.rb +24 -7
- data/lib/razorpay/transfer.rb +4 -0
- data/lib/razorpay/utility.rb +24 -0
- data/lib/razorpay/validation_config.rb +11 -0
- data/lib/razorpay.rb +10 -1
- data/test/fixtures/dispute_collection.json +67 -0
- data/test/fixtures/dispute_error.json +10 -0
- data/test/fixtures/document_error.json +10 -0
- data/test/fixtures/error_customer.json +10 -0
- data/test/fixtures/error_eligibility.json +10 -0
- data/test/fixtures/error_eligibility_check.json +10 -0
- data/test/fixtures/fake_bank_account.json +9 -0
- data/test/fixtures/fake_dispute.json +29 -0
- data/test/fixtures/fake_document.json +9 -0
- data/test/fixtures/fake_eligiblity.json +79 -0
- data/test/fixtures/fake_fulfillment.json +10 -0
- data/test/fixtures/fake_oauth_token.json +8 -0
- data/test/fixtures/fake_payment_expanded_details.json +38 -0
- data/test/fixtures/fake_payment_expanded_details_card.json +50 -0
- data/test/fixtures/fake_revoke_token.json +3 -0
- data/test/fixtures/fake_rto.json +15 -0
- data/test/fixtures/order_error.json +10 -0
- data/test/fixtures/payment_error.json +10 -0
- data/test/fixtures/reversals_collection.json +22 -0
- data/test/fixtures/transfer_error.json +10 -0
- data/test/razorpay/test_customer.rb +105 -0
- data/test/razorpay/test_dispute.rb +98 -0
- data/test/razorpay/test_document.rb +27 -0
- data/test/razorpay/test_oauth_token.rb +105 -0
- data/test/razorpay/test_order.rb +43 -1
- data/test/razorpay/test_payload_validator.rb +61 -0
- data/test/razorpay/test_payment.rb +23 -1
- data/test/razorpay/test_razorpay.rb +17 -0
- data/test/razorpay/test_transfer.rb +17 -0
- data/test/razorpay/test_utility.rb +34 -0
- metadata +59 -3
@@ -49,5 +49,22 @@ module Razorpay
|
|
49
49
|
headers: headers,
|
50
50
|
times: 1
|
51
51
|
end
|
52
|
+
|
53
|
+
def test_oauth_setup
|
54
|
+
Razorpay.setup_with_oauth('access_token')
|
55
|
+
assert_equal 'access_token', Razorpay.access_token
|
56
|
+
end
|
57
|
+
|
58
|
+
# # We mock this request
|
59
|
+
def test_auth_header_and_user_agent_for_oauth
|
60
|
+
stub_get(/$/, 'hello_response')
|
61
|
+
Razorpay.setup_with_oauth('access_token')
|
62
|
+
Razorpay::Request.new('dummy').make_test_request
|
63
|
+
user_agent = "Razorpay-Ruby/#{Razorpay::VERSION}; Ruby/#{RUBY_VERSION}"
|
64
|
+
headers = { 'User-Agent' => user_agent, 'Authorization' => 'Bearer access_token' }
|
65
|
+
assert_requested :get, 'https://api.razorpay.com/',
|
66
|
+
headers: headers,
|
67
|
+
times: 1
|
68
|
+
end
|
52
69
|
end
|
53
70
|
end
|
@@ -73,5 +73,22 @@ module Razorpay
|
|
73
73
|
assert_equal transfer.id, @transfer_id , 'Transfer transfer_id is accessible'
|
74
74
|
refute transfer.on_hold
|
75
75
|
end
|
76
|
+
|
77
|
+
def test_fetch_reversals
|
78
|
+
stub_get(%r{/transfers/#{@transfer_id}/reversals$}, 'reversals_collection')
|
79
|
+
transfer = Razorpay::Transfer.reversals(@transfer_id)
|
80
|
+
assert_instance_of Razorpay::Collection, transfer , 'Transfer should be an array'
|
81
|
+
refute_empty transfer.items , 'Transfer should be more than one'
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_fetch_reversals_exception
|
85
|
+
stub_get(%r{/transfers/#{@transfer_id}/reversals$}, 'transfer_error')
|
86
|
+
assert_raises(Razorpay::Error) do
|
87
|
+
transfer = Razorpay::Transfer.reversals(@transfer_id)
|
88
|
+
if transfer.error
|
89
|
+
raise Razorpay::Error.new, transfer.error['code']
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
76
93
|
end
|
77
94
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
require 'json'
|
2
3
|
|
3
4
|
module Razorpay
|
4
5
|
# Tests for Razorpay::Utility
|
@@ -80,5 +81,38 @@ module Razorpay
|
|
80
81
|
Razorpay::Utility.verify_webhook_signature(webhook_body, signature, secret)
|
81
82
|
end
|
82
83
|
end
|
84
|
+
|
85
|
+
def test_generate_onboarding_signature
|
86
|
+
secret = "EnLs21M47BllR3X8PSFtjtbd"
|
87
|
+
timestamp = Time.now.to_i
|
88
|
+
body = {
|
89
|
+
submerchant_id: 'NSgKfYIR2f9v2y',
|
90
|
+
timestamp: timestamp
|
91
|
+
}
|
92
|
+
encryptedData = Razorpay::Utility.generate_onboarding_signature(body, secret)
|
93
|
+
json_data = decrypt(encryptedData, secret)
|
94
|
+
body = JSON.parse(json_data)
|
95
|
+
assert_equal 'NSgKfYIR2f9v2y', body['submerchant_id'], 'Submerchant IDs do not match'
|
96
|
+
assert_equal timestamp, body['timestamp'], 'Timestamps do not match'
|
97
|
+
end
|
98
|
+
|
99
|
+
def decrypt(data, secret)
|
100
|
+
combined_encrypted_data = [data].pack("H*")
|
101
|
+
|
102
|
+
iv = secret[0, 12]
|
103
|
+
key = secret[0, 16]
|
104
|
+
tag = combined_encrypted_data[-16..]
|
105
|
+
|
106
|
+
encrypted_data = combined_encrypted_data[0...-16]
|
107
|
+
|
108
|
+
cipher = OpenSSL::Cipher.new('aes-128-gcm')
|
109
|
+
cipher.decrypt
|
110
|
+
cipher.key = key
|
111
|
+
cipher.iv = iv
|
112
|
+
cipher.auth_tag = tag
|
113
|
+
cipher.auth_data = ""
|
114
|
+
|
115
|
+
cipher.update(encrypted_data) + cipher.final
|
116
|
+
end
|
83
117
|
end
|
84
118
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: razorpay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abhay Rana
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-05-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -135,9 +135,12 @@ files:
|
|
135
135
|
- documents/addon.md
|
136
136
|
- documents/card.md
|
137
137
|
- documents/customer.md
|
138
|
+
- documents/dispute.md
|
139
|
+
- documents/documents.md
|
138
140
|
- documents/emandate.md
|
139
141
|
- documents/fund.md
|
140
142
|
- documents/items.md
|
143
|
+
- documents/oauth_token.md
|
141
144
|
- documents/order.md
|
142
145
|
- documents/papernach.md
|
143
146
|
- documents/payment.md
|
@@ -166,6 +169,8 @@ files:
|
|
166
169
|
- lib/razorpay/collection.rb
|
167
170
|
- lib/razorpay/constants.rb
|
168
171
|
- lib/razorpay/customer.rb
|
172
|
+
- lib/razorpay/dispute.rb
|
173
|
+
- lib/razorpay/document.rb
|
169
174
|
- lib/razorpay/entity.rb
|
170
175
|
- lib/razorpay/errors.rb
|
171
176
|
- lib/razorpay/errors/bad_request_error.rb
|
@@ -176,7 +181,9 @@ files:
|
|
176
181
|
- lib/razorpay/iin.rb
|
177
182
|
- lib/razorpay/invoice.rb
|
178
183
|
- lib/razorpay/item.rb
|
184
|
+
- lib/razorpay/oauth_token.rb
|
179
185
|
- lib/razorpay/order.rb
|
186
|
+
- lib/razorpay/payload_validator.rb
|
180
187
|
- lib/razorpay/payment.rb
|
181
188
|
- lib/razorpay/payment_link.rb
|
182
189
|
- lib/razorpay/payment_method.rb
|
@@ -192,6 +199,7 @@ files:
|
|
192
199
|
- lib/razorpay/token.rb
|
193
200
|
- lib/razorpay/transfer.rb
|
194
201
|
- lib/razorpay/utility.rb
|
202
|
+
- lib/razorpay/validation_config.rb
|
195
203
|
- lib/razorpay/virtual_account.rb
|
196
204
|
- lib/razorpay/webhook.rb
|
197
205
|
- razorpay-ruby.gemspec
|
@@ -202,10 +210,17 @@ files:
|
|
202
210
|
- test/fixtures/create_json_payment.json
|
203
211
|
- test/fixtures/customer_collection.json
|
204
212
|
- test/fixtures/delete_token.json
|
213
|
+
- test/fixtures/dispute_collection.json
|
214
|
+
- test/fixtures/dispute_error.json
|
215
|
+
- test/fixtures/document_error.json
|
205
216
|
- test/fixtures/downtimes_collection.json
|
206
217
|
- test/fixtures/empty.json
|
218
|
+
- test/fixtures/error_customer.json
|
219
|
+
- test/fixtures/error_eligibility.json
|
220
|
+
- test/fixtures/error_eligibility_check.json
|
207
221
|
- test/fixtures/fake_account.json
|
208
222
|
- test/fixtures/fake_addon.json
|
223
|
+
- test/fixtures/fake_bank_account.json
|
209
224
|
- test/fixtures/fake_captured_payment.json
|
210
225
|
- test/fixtures/fake_card.json
|
211
226
|
- test/fixtures/fake_card_reference.json
|
@@ -213,12 +228,17 @@ files:
|
|
213
228
|
- test/fixtures/fake_customer.json
|
214
229
|
- test/fixtures/fake_customer_edited.json
|
215
230
|
- test/fixtures/fake_direct_transfer.json
|
231
|
+
- test/fixtures/fake_dispute.json
|
232
|
+
- test/fixtures/fake_document.json
|
216
233
|
- test/fixtures/fake_downtime.json
|
234
|
+
- test/fixtures/fake_eligiblity.json
|
235
|
+
- test/fixtures/fake_fulfillment.json
|
217
236
|
- test/fixtures/fake_fund_account.json
|
218
237
|
- test/fixtures/fake_iin_token.json
|
219
238
|
- test/fixtures/fake_instant_settlement.json
|
220
239
|
- test/fixtures/fake_invoice.json
|
221
240
|
- test/fixtures/fake_item.json
|
241
|
+
- test/fixtures/fake_oauth_token.json
|
222
242
|
- test/fixtures/fake_order.json
|
223
243
|
- test/fixtures/fake_order_transfers.json
|
224
244
|
- test/fixtures/fake_otp_generate.json
|
@@ -227,6 +247,8 @@ files:
|
|
227
247
|
- test/fixtures/fake_payment.json
|
228
248
|
- test/fixtures/fake_payment_authorized_webhook.json
|
229
249
|
- test/fixtures/fake_payment_bank_transfer.json
|
250
|
+
- test/fixtures/fake_payment_expanded_details.json
|
251
|
+
- test/fixtures/fake_payment_expanded_details_card.json
|
230
252
|
- test/fixtures/fake_payment_link.json
|
231
253
|
- test/fixtures/fake_pending_update.json
|
232
254
|
- test/fixtures/fake_plan.json
|
@@ -236,6 +258,8 @@ files:
|
|
236
258
|
- test/fixtures/fake_recurring.json
|
237
259
|
- test/fixtures/fake_refund.json
|
238
260
|
- test/fixtures/fake_refunded_payment.json
|
261
|
+
- test/fixtures/fake_revoke_token.json
|
262
|
+
- test/fixtures/fake_rto.json
|
239
263
|
- test/fixtures/fake_settlement.json
|
240
264
|
- test/fixtures/fake_settlement_on_demand.json
|
241
265
|
- test/fixtures/fake_stakeholder.json
|
@@ -263,9 +287,11 @@ files:
|
|
263
287
|
- test/fixtures/issue_invoice.json
|
264
288
|
- test/fixtures/item_collection.json
|
265
289
|
- test/fixtures/order_collection.json
|
290
|
+
- test/fixtures/order_error.json
|
266
291
|
- test/fixtures/order_payments.json
|
267
292
|
- test/fixtures/payment_collection.json
|
268
293
|
- test/fixtures/payment_collection_with_one_payment.json
|
294
|
+
- test/fixtures/payment_error.json
|
269
295
|
- test/fixtures/payment_link_collection.json
|
270
296
|
- test/fixtures/payment_link_response.json
|
271
297
|
- test/fixtures/payment_methods_collection.json
|
@@ -274,6 +300,7 @@ files:
|
|
274
300
|
- test/fixtures/qrcode_payments_collection.json
|
275
301
|
- test/fixtures/refund_collection.json
|
276
302
|
- test/fixtures/refund_collection_for_payment.json
|
303
|
+
- test/fixtures/reversals_collection.json
|
277
304
|
- test/fixtures/settlement_collection.json
|
278
305
|
- test/fixtures/settlement_instant_collection.json
|
279
306
|
- test/fixtures/settlement_report_collection.json
|
@@ -281,6 +308,7 @@ files:
|
|
281
308
|
- test/fixtures/subscription_collection.json
|
282
309
|
- test/fixtures/success.json
|
283
310
|
- test/fixtures/tokens_collection.json
|
311
|
+
- test/fixtures/transfer_error.json
|
284
312
|
- test/fixtures/transfer_settlements_collection.json
|
285
313
|
- test/fixtures/transfers_collection.json
|
286
314
|
- test/fixtures/update_invoice.json
|
@@ -291,12 +319,16 @@ files:
|
|
291
319
|
- test/razorpay/test_addon.rb
|
292
320
|
- test/razorpay/test_card.rb
|
293
321
|
- test/razorpay/test_customer.rb
|
322
|
+
- test/razorpay/test_dispute.rb
|
323
|
+
- test/razorpay/test_document.rb
|
294
324
|
- test/razorpay/test_entity.rb
|
295
325
|
- test/razorpay/test_fund_account.rb
|
296
326
|
- test/razorpay/test_iin.rb
|
297
327
|
- test/razorpay/test_invoice.rb
|
298
328
|
- test/razorpay/test_item.rb
|
329
|
+
- test/razorpay/test_oauth_token.rb
|
299
330
|
- test/razorpay/test_order.rb
|
331
|
+
- test/razorpay/test_payload_validator.rb
|
300
332
|
- test/razorpay/test_payment.rb
|
301
333
|
- test/razorpay/test_payment_link.rb
|
302
334
|
- test/razorpay/test_plan.rb
|
@@ -334,7 +366,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
334
366
|
- !ruby/object:Gem::Version
|
335
367
|
version: '0'
|
336
368
|
requirements: []
|
337
|
-
rubygems_version: 3.3.
|
369
|
+
rubygems_version: 3.3.27
|
338
370
|
signing_key:
|
339
371
|
specification_version: 4
|
340
372
|
summary: Razorpay's Ruby API
|
@@ -346,10 +378,17 @@ test_files:
|
|
346
378
|
- test/fixtures/create_json_payment.json
|
347
379
|
- test/fixtures/customer_collection.json
|
348
380
|
- test/fixtures/delete_token.json
|
381
|
+
- test/fixtures/dispute_collection.json
|
382
|
+
- test/fixtures/dispute_error.json
|
383
|
+
- test/fixtures/document_error.json
|
349
384
|
- test/fixtures/downtimes_collection.json
|
350
385
|
- test/fixtures/empty.json
|
386
|
+
- test/fixtures/error_customer.json
|
387
|
+
- test/fixtures/error_eligibility.json
|
388
|
+
- test/fixtures/error_eligibility_check.json
|
351
389
|
- test/fixtures/fake_account.json
|
352
390
|
- test/fixtures/fake_addon.json
|
391
|
+
- test/fixtures/fake_bank_account.json
|
353
392
|
- test/fixtures/fake_captured_payment.json
|
354
393
|
- test/fixtures/fake_card.json
|
355
394
|
- test/fixtures/fake_card_reference.json
|
@@ -357,12 +396,17 @@ test_files:
|
|
357
396
|
- test/fixtures/fake_customer.json
|
358
397
|
- test/fixtures/fake_customer_edited.json
|
359
398
|
- test/fixtures/fake_direct_transfer.json
|
399
|
+
- test/fixtures/fake_dispute.json
|
400
|
+
- test/fixtures/fake_document.json
|
360
401
|
- test/fixtures/fake_downtime.json
|
402
|
+
- test/fixtures/fake_eligiblity.json
|
403
|
+
- test/fixtures/fake_fulfillment.json
|
361
404
|
- test/fixtures/fake_fund_account.json
|
362
405
|
- test/fixtures/fake_iin_token.json
|
363
406
|
- test/fixtures/fake_instant_settlement.json
|
364
407
|
- test/fixtures/fake_invoice.json
|
365
408
|
- test/fixtures/fake_item.json
|
409
|
+
- test/fixtures/fake_oauth_token.json
|
366
410
|
- test/fixtures/fake_order.json
|
367
411
|
- test/fixtures/fake_order_transfers.json
|
368
412
|
- test/fixtures/fake_otp_generate.json
|
@@ -371,6 +415,8 @@ test_files:
|
|
371
415
|
- test/fixtures/fake_payment.json
|
372
416
|
- test/fixtures/fake_payment_authorized_webhook.json
|
373
417
|
- test/fixtures/fake_payment_bank_transfer.json
|
418
|
+
- test/fixtures/fake_payment_expanded_details.json
|
419
|
+
- test/fixtures/fake_payment_expanded_details_card.json
|
374
420
|
- test/fixtures/fake_payment_link.json
|
375
421
|
- test/fixtures/fake_pending_update.json
|
376
422
|
- test/fixtures/fake_plan.json
|
@@ -380,6 +426,8 @@ test_files:
|
|
380
426
|
- test/fixtures/fake_recurring.json
|
381
427
|
- test/fixtures/fake_refund.json
|
382
428
|
- test/fixtures/fake_refunded_payment.json
|
429
|
+
- test/fixtures/fake_revoke_token.json
|
430
|
+
- test/fixtures/fake_rto.json
|
383
431
|
- test/fixtures/fake_settlement.json
|
384
432
|
- test/fixtures/fake_settlement_on_demand.json
|
385
433
|
- test/fixtures/fake_stakeholder.json
|
@@ -407,9 +455,11 @@ test_files:
|
|
407
455
|
- test/fixtures/issue_invoice.json
|
408
456
|
- test/fixtures/item_collection.json
|
409
457
|
- test/fixtures/order_collection.json
|
458
|
+
- test/fixtures/order_error.json
|
410
459
|
- test/fixtures/order_payments.json
|
411
460
|
- test/fixtures/payment_collection.json
|
412
461
|
- test/fixtures/payment_collection_with_one_payment.json
|
462
|
+
- test/fixtures/payment_error.json
|
413
463
|
- test/fixtures/payment_link_collection.json
|
414
464
|
- test/fixtures/payment_link_response.json
|
415
465
|
- test/fixtures/payment_methods_collection.json
|
@@ -418,6 +468,7 @@ test_files:
|
|
418
468
|
- test/fixtures/qrcode_payments_collection.json
|
419
469
|
- test/fixtures/refund_collection.json
|
420
470
|
- test/fixtures/refund_collection_for_payment.json
|
471
|
+
- test/fixtures/reversals_collection.json
|
421
472
|
- test/fixtures/settlement_collection.json
|
422
473
|
- test/fixtures/settlement_instant_collection.json
|
423
474
|
- test/fixtures/settlement_report_collection.json
|
@@ -425,6 +476,7 @@ test_files:
|
|
425
476
|
- test/fixtures/subscription_collection.json
|
426
477
|
- test/fixtures/success.json
|
427
478
|
- test/fixtures/tokens_collection.json
|
479
|
+
- test/fixtures/transfer_error.json
|
428
480
|
- test/fixtures/transfer_settlements_collection.json
|
429
481
|
- test/fixtures/transfers_collection.json
|
430
482
|
- test/fixtures/update_invoice.json
|
@@ -435,12 +487,16 @@ test_files:
|
|
435
487
|
- test/razorpay/test_addon.rb
|
436
488
|
- test/razorpay/test_card.rb
|
437
489
|
- test/razorpay/test_customer.rb
|
490
|
+
- test/razorpay/test_dispute.rb
|
491
|
+
- test/razorpay/test_document.rb
|
438
492
|
- test/razorpay/test_entity.rb
|
439
493
|
- test/razorpay/test_fund_account.rb
|
440
494
|
- test/razorpay/test_iin.rb
|
441
495
|
- test/razorpay/test_invoice.rb
|
442
496
|
- test/razorpay/test_item.rb
|
497
|
+
- test/razorpay/test_oauth_token.rb
|
443
498
|
- test/razorpay/test_order.rb
|
499
|
+
- test/razorpay/test_payload_validator.rb
|
444
500
|
- test/razorpay/test_payment.rb
|
445
501
|
- test/razorpay/test_payment_link.rb
|
446
502
|
- test/razorpay/test_plan.rb
|