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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +18 -1
  4. data/documents/customer.md +242 -0
  5. data/documents/dispute.md +301 -0
  6. data/documents/documents.md +65 -0
  7. data/documents/oauth_token.md +142 -0
  8. data/documents/order.md +71 -0
  9. data/documents/payment.md +253 -0
  10. data/documents/transfers.md +40 -0
  11. data/lib/razorpay/constants.rb +6 -1
  12. data/lib/razorpay/customer.rb +16 -0
  13. data/lib/razorpay/dispute.rb +26 -0
  14. data/lib/razorpay/document.rb +19 -0
  15. data/lib/razorpay/oauth_token.rb +109 -0
  16. data/lib/razorpay/order.rb +8 -0
  17. data/lib/razorpay/payload_validator.rb +93 -0
  18. data/lib/razorpay/payment.rb +4 -0
  19. data/lib/razorpay/request.rb +24 -7
  20. data/lib/razorpay/transfer.rb +4 -0
  21. data/lib/razorpay/utility.rb +24 -0
  22. data/lib/razorpay/validation_config.rb +11 -0
  23. data/lib/razorpay.rb +10 -1
  24. data/test/fixtures/dispute_collection.json +67 -0
  25. data/test/fixtures/dispute_error.json +10 -0
  26. data/test/fixtures/document_error.json +10 -0
  27. data/test/fixtures/error_customer.json +10 -0
  28. data/test/fixtures/error_eligibility.json +10 -0
  29. data/test/fixtures/error_eligibility_check.json +10 -0
  30. data/test/fixtures/fake_bank_account.json +9 -0
  31. data/test/fixtures/fake_dispute.json +29 -0
  32. data/test/fixtures/fake_document.json +9 -0
  33. data/test/fixtures/fake_eligiblity.json +79 -0
  34. data/test/fixtures/fake_fulfillment.json +10 -0
  35. data/test/fixtures/fake_oauth_token.json +8 -0
  36. data/test/fixtures/fake_payment_expanded_details.json +38 -0
  37. data/test/fixtures/fake_payment_expanded_details_card.json +50 -0
  38. data/test/fixtures/fake_revoke_token.json +3 -0
  39. data/test/fixtures/fake_rto.json +15 -0
  40. data/test/fixtures/order_error.json +10 -0
  41. data/test/fixtures/payment_error.json +10 -0
  42. data/test/fixtures/reversals_collection.json +22 -0
  43. data/test/fixtures/transfer_error.json +10 -0
  44. data/test/razorpay/test_customer.rb +105 -0
  45. data/test/razorpay/test_dispute.rb +98 -0
  46. data/test/razorpay/test_document.rb +27 -0
  47. data/test/razorpay/test_oauth_token.rb +105 -0
  48. data/test/razorpay/test_order.rb +43 -1
  49. data/test/razorpay/test_payload_validator.rb +61 -0
  50. data/test/razorpay/test_payment.rb +23 -1
  51. data/test/razorpay/test_razorpay.rb +17 -0
  52. data/test/razorpay/test_transfer.rb +17 -0
  53. data/test/razorpay/test_utility.rb +34 -0
  54. 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.1
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: 2023-12-19 00:00:00.000000000 Z
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.26
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