razorruby 3.0.1

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 (171) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.editorconfig +12 -0
  4. data/.github/dependabot.yml +8 -0
  5. data/.github/workflows/ruby.yml +38 -0
  6. data/.gitignore +23 -0
  7. data/.rubocop.yml +22 -0
  8. data/.simplecov +3 -0
  9. data/CHANGELOG.md +168 -0
  10. data/Gemfile +4 -0
  11. data/LICENSE.txt +22 -0
  12. data/README.md +102 -0
  13. data/Rakefile +26 -0
  14. data/documents/Invoice.md +539 -0
  15. data/documents/addon.md +191 -0
  16. data/documents/card.md +610 -0
  17. data/documents/customer.md +163 -0
  18. data/documents/emandate.md +492 -0
  19. data/documents/fund.md +89 -0
  20. data/documents/items.md +208 -0
  21. data/documents/order.md +281 -0
  22. data/documents/papernach.md +738 -0
  23. data/documents/payment.md +826 -0
  24. data/documents/paymentLink.md +1063 -0
  25. data/documents/paymentVerification.md +79 -0
  26. data/documents/plan.md +184 -0
  27. data/documents/qrcode.md +439 -0
  28. data/documents/refund.md +325 -0
  29. data/documents/registerEmandate.md +452 -0
  30. data/documents/registerNach.md +653 -0
  31. data/documents/settlement.md +478 -0
  32. data/documents/subscriptions.md +752 -0
  33. data/documents/tokens.md +262 -0
  34. data/documents/transfers.md +781 -0
  35. data/documents/upi.md +545 -0
  36. data/documents/virtualAccount.md +591 -0
  37. data/lib/ca-bundle.crt +3988 -0
  38. data/lib/extensions/httparty/hash_conversions.rb +44 -0
  39. data/lib/razorpay/addon.rb +32 -0
  40. data/lib/razorpay/card.rb +17 -0
  41. data/lib/razorpay/collection.rb +6 -0
  42. data/lib/razorpay/constants.rb +6 -0
  43. data/lib/razorpay/customer.rb +42 -0
  44. data/lib/razorpay/entity.rb +46 -0
  45. data/lib/razorpay/errors/bad_request_error.rb +14 -0
  46. data/lib/razorpay/errors/gateway_error.rb +7 -0
  47. data/lib/razorpay/errors/razorpay_error.rb +11 -0
  48. data/lib/razorpay/errors/server_error.rb +7 -0
  49. data/lib/razorpay/errors.rb +4 -0
  50. data/lib/razorpay/fund_account.rb +19 -0
  51. data/lib/razorpay/invoice.rb +68 -0
  52. data/lib/razorpay/item.rb +34 -0
  53. data/lib/razorpay/order.rb +39 -0
  54. data/lib/razorpay/payment.rb +116 -0
  55. data/lib/razorpay/payment_link.rb +36 -0
  56. data/lib/razorpay/payment_method.rb +17 -0
  57. data/lib/razorpay/plan.rb +24 -0
  58. data/lib/razorpay/qr_code.rb +34 -0
  59. data/lib/razorpay/refund.rb +27 -0
  60. data/lib/razorpay/request.rb +119 -0
  61. data/lib/razorpay/settlement.rb +39 -0
  62. data/lib/razorpay/subscription.rb +60 -0
  63. data/lib/razorpay/subscription_registration.rb +16 -0
  64. data/lib/razorpay/transfer.rb +35 -0
  65. data/lib/razorpay/utility.rb +57 -0
  66. data/lib/razorpay/virtual_account.rb +49 -0
  67. data/lib/razorpay.rb +37 -0
  68. data/razorpay-ruby.gemspec +36 -0
  69. data/test/fixtures/addon_collection.json +60 -0
  70. data/test/fixtures/bad_request_error.json +7 -0
  71. data/test/fixtures/cancel_invoice.json +44 -0
  72. data/test/fixtures/cancel_subscription.json +20 -0
  73. data/test/fixtures/create_json_payment.json +13 -0
  74. data/test/fixtures/customer_collection.json +22 -0
  75. data/test/fixtures/delete_token.json +3 -0
  76. data/test/fixtures/downtimes_collection.json +21 -0
  77. data/test/fixtures/empty.json +2 -0
  78. data/test/fixtures/fake_addon.json +24 -0
  79. data/test/fixtures/fake_captured_payment.json +13 -0
  80. data/test/fixtures/fake_card.json +9 -0
  81. data/test/fixtures/fake_create_upi_payment.json +3 -0
  82. data/test/fixtures/fake_customer.json +8 -0
  83. data/test/fixtures/fake_customer_edited.json +8 -0
  84. data/test/fixtures/fake_direct_transfer.json +32 -0
  85. data/test/fixtures/fake_downtime.json +14 -0
  86. data/test/fixtures/fake_fund_account.json +18 -0
  87. data/test/fixtures/fake_instant_settlement.json +19 -0
  88. data/test/fixtures/fake_invoice.json +30 -0
  89. data/test/fixtures/fake_item.json +9 -0
  90. data/test/fixtures/fake_order.json +10 -0
  91. data/test/fixtures/fake_order_transfers.json +88 -0
  92. data/test/fixtures/fake_otp_generate.json +19 -0
  93. data/test/fixtures/fake_otp_resend.json +7 -0
  94. data/test/fixtures/fake_otp_submit.json +5 -0
  95. data/test/fixtures/fake_payment.json +14 -0
  96. data/test/fixtures/fake_payment_authorized_webhook.json +40 -0
  97. data/test/fixtures/fake_payment_bank_transfer.json +12 -0
  98. data/test/fixtures/fake_payment_link.json +40 -0
  99. data/test/fixtures/fake_pending_update.json +30 -0
  100. data/test/fixtures/fake_plan.json +26 -0
  101. data/test/fixtures/fake_qrcode.json +20 -0
  102. data/test/fixtures/fake_qrcode_close.json +22 -0
  103. data/test/fixtures/fake_recurring.json +5 -0
  104. data/test/fixtures/fake_refund.json +8 -0
  105. data/test/fixtures/fake_refunded_payment.json +14 -0
  106. data/test/fixtures/fake_settlement.json +11 -0
  107. data/test/fixtures/fake_settlement_on_demand.json +39 -0
  108. data/test/fixtures/fake_subscription.json +20 -0
  109. data/test/fixtures/fake_subscription_pause.json +19 -0
  110. data/test/fixtures/fake_subscription_registration.json +91 -0
  111. data/test/fixtures/fake_subscription_resume.json +19 -0
  112. data/test/fixtures/fake_token.json +31 -0
  113. data/test/fixtures/fake_transfer.json +18 -0
  114. data/test/fixtures/fake_transfer_reverse.json +15 -0
  115. data/test/fixtures/fake_update_payment.json +39 -0
  116. data/test/fixtures/fake_validate_vpa.json +5 -0
  117. data/test/fixtures/fake_virtual_account.json +21 -0
  118. data/test/fixtures/fake_virtual_account_allowed.json +46 -0
  119. data/test/fixtures/fake_virtual_account_closed.json +21 -0
  120. data/test/fixtures/fake_virtual_account_collection.json +48 -0
  121. data/test/fixtures/fake_virtual_account_receiver.json +46 -0
  122. data/test/fixtures/fund_collection.json +20 -0
  123. data/test/fixtures/hello_response.json +3 -0
  124. data/test/fixtures/invoice_collection.json +93 -0
  125. data/test/fixtures/issue_invoice.json +44 -0
  126. data/test/fixtures/item_collection.json +24 -0
  127. data/test/fixtures/order_collection.json +36 -0
  128. data/test/fixtures/order_payments.json +29 -0
  129. data/test/fixtures/payment_collection.json +32 -0
  130. data/test/fixtures/payment_collection_with_one_payment.json +19 -0
  131. data/test/fixtures/payment_link_collection.json +43 -0
  132. data/test/fixtures/payment_link_response.json +3 -0
  133. data/test/fixtures/payment_methods_collection.json +149 -0
  134. data/test/fixtures/plan_collection.json +32 -0
  135. data/test/fixtures/qrcode_collection.json +50 -0
  136. data/test/fixtures/qrcode_payments_collection.json +74 -0
  137. data/test/fixtures/refund_collection.json +30 -0
  138. data/test/fixtures/refund_collection_for_payment.json +22 -0
  139. data/test/fixtures/settlement_collection.json +26 -0
  140. data/test/fixtures/settlement_instant_collection.json +84 -0
  141. data/test/fixtures/settlement_report_collection.json +117 -0
  142. data/test/fixtures/subscription_collection.json +26 -0
  143. data/test/fixtures/success.json +3 -0
  144. data/test/fixtures/tokens_collection.json +36 -0
  145. data/test/fixtures/transfer_settlements_collection.json +38 -0
  146. data/test/fixtures/transfers_collection.json +41 -0
  147. data/test/fixtures/update_invoice.json +44 -0
  148. data/test/fixtures/welcome.json +3 -0
  149. data/test/razorpay/test_addon.rb +76 -0
  150. data/test/razorpay/test_card.rb +23 -0
  151. data/test/razorpay/test_customer.rb +69 -0
  152. data/test/razorpay/test_entity.rb +55 -0
  153. data/test/razorpay/test_fund_account.rb +42 -0
  154. data/test/razorpay/test_invoice.rb +143 -0
  155. data/test/razorpay/test_item.rb +66 -0
  156. data/test/razorpay/test_order.rb +71 -0
  157. data/test/razorpay/test_payment.rb +303 -0
  158. data/test/razorpay/test_payment_link.rb +83 -0
  159. data/test/razorpay/test_plan.rb +65 -0
  160. data/test/razorpay/test_qr_code.rb +63 -0
  161. data/test/razorpay/test_razorpay.rb +53 -0
  162. data/test/razorpay/test_refund.rb +56 -0
  163. data/test/razorpay/test_request.rb +15 -0
  164. data/test/razorpay/test_settlement.rb +76 -0
  165. data/test/razorpay/test_subscription.rb +190 -0
  166. data/test/razorpay/test_subscription_registration.rb +58 -0
  167. data/test/razorpay/test_transfer.rb +77 -0
  168. data/test/razorpay/test_utility.rb +84 -0
  169. data/test/razorpay/test_virtual_account.rb +135 -0
  170. data/test/test_helper.rb +54 -0
  171. metadata +400 -0
@@ -0,0 +1,84 @@
1
+ require 'test_helper'
2
+
3
+ module Razorpay
4
+ # Tests for Razorpay::Utility
5
+ class RazorpayUtilityTest < Minitest::Test
6
+ def setup
7
+ Razorpay.setup('key_id', 'key_secret')
8
+ end
9
+
10
+ def test_payment_signature_verification
11
+ payment_response = {
12
+ razorpay_order_id: 'fake_other_id',
13
+ razorpay_payment_id: 'fake_payment_id',
14
+ razorpay_signature: '965ee2de4c5c4e6f006fb0a5a1736d992e5d4d52f9fe10b98c9b97ee169ebe18'
15
+ }
16
+ Razorpay::Utility.verify_payment_signature(payment_response)
17
+
18
+ payment_response[:razorpay_signature] = '_dummy_signature' * 4
19
+ assert_raises(SecurityError) do
20
+ Razorpay::Utility.verify_payment_signature(payment_response)
21
+ end
22
+ end
23
+
24
+ def test_payment_link_signature_verification_exception
25
+
26
+ payment_response = {
27
+ payment_link_id: 'fake_razorpay_payment_link_id',
28
+ payment_link_reference_id: 'fake_reference_id',
29
+ payment_link_status: 'paid',
30
+ razorpay_payment_id: 'pay_IH3d0ara9bSsjQ',
31
+ razorpay_signature: 'b8a6acda585c9b74e9da393c7354c7e685e37e69d30ae654730f042e674e0283'
32
+ }
33
+
34
+ Razorpay::Utility.verify_payment_link_signature(payment_response)
35
+
36
+ payment_response[:razorpay_signature] = '_dummy_signature' * 4
37
+ assert_raises(SecurityError) do
38
+ Razorpay::Utility.verify_payment_link_signature(payment_response)
39
+ end
40
+ end
41
+
42
+ def test_payment_link_signature_verification
43
+
44
+ payment_response = {
45
+ payment_link_id: 'fake_razorpay_payment_link_id',
46
+ payment_link_reference_id: 'fake_reference_id',
47
+ payment_link_status: 'paid',
48
+ razorpay_payment_id: 'pay_IH3d0ara9bSsjQ',
49
+ razorpay_signature: 'b8a6acda585c9b74e9da393c7354c7e685e37e69d30ae654730f042e674e0283'
50
+ }
51
+
52
+ response = Razorpay::Utility.verify_payment_link_signature(payment_response)
53
+ assert(response)
54
+ end
55
+
56
+ def test_subscription_signature_verification
57
+ payment_response = {
58
+ razorpay_payment_id: 'fake_payment_id',
59
+ razorpay_subscription_id: 'fake_other_id',
60
+ razorpay_signature: '3dabcab8ca113e7994cf78c80f8d50974ddfb2d380029743f30a6d67934cd845'
61
+ }
62
+ # A different signature is expected here compared to the previous test,
63
+ # since the sorted order of the keys is different in this case
64
+ Razorpay::Utility.verify_payment_signature(payment_response)
65
+
66
+ payment_response[:razorpay_signature] = '_dummy_signature' * 4
67
+ assert_raises(SecurityError) do
68
+ Razorpay::Utility.verify_payment_signature(payment_response)
69
+ end
70
+ end
71
+
72
+ def test_webhook_signature_verification
73
+ webhook_body = fixture_file('fake_payment_authorized_webhook')
74
+ secret = 'chosen_webhook_secret'
75
+ signature = 'dda9ca344c56ccbd90167b1be0fd99dfa92fe2b827020f27e2a46024e31c7c99'
76
+ Razorpay::Utility.verify_webhook_signature(webhook_body, signature, secret)
77
+
78
+ signature = '_dummy_signature' * 4
79
+ assert_raises(SecurityError) do
80
+ Razorpay::Utility.verify_webhook_signature(webhook_body, signature, secret)
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,135 @@
1
+ require 'test_helper'
2
+
3
+ module Razorpay
4
+ # Tests for Razorpay::VirtualAccount
5
+ class RazorpayVirtualAccountTest < Minitest::Test
6
+ def setup
7
+ @virtual_account_id = 'va_4xbQrmEoA5WJ0G'
8
+ @payment_id = 'fake_payment_id'
9
+ @payer_id = "ba_J3gpYBXh92ZL5M"
10
+
11
+ @virtual_account_create_array = {
12
+ receiver_types: ['bank_account'],
13
+ description: 'First Virtual Account'
14
+ }
15
+
16
+ # Any request that ends with virtual_accounts/id
17
+ stub_get(%r{virtual_accounts/#{@virtual_account_id}$}, 'fake_virtual_account')
18
+ stub_get(/virtual_accounts$/, 'fake_virtual_account_collection')
19
+ end
20
+
21
+ def test_virtual_account_should_be_defined
22
+ refute_nil Razorpay::VirtualAccount
23
+ end
24
+
25
+ def test_virtual_account_should_be_created
26
+
27
+ para_attr = {
28
+ "type": "bank_account",
29
+ "bank_account": {
30
+ "ifsc": "RATN0VAAPIS",
31
+ "account_number": "2223330027558515"
32
+ }
33
+ }
34
+
35
+ stub_post(
36
+ /virtual_accounts$/,
37
+ 'fake_virtual_account',
38
+ para_attr.to_json
39
+ )
40
+
41
+ virtual_account = Razorpay::VirtualAccount.create para_attr.to_json
42
+ assert_equal 'First Virtual Account', virtual_account.description
43
+ assert_equal 'active', virtual_account.status
44
+ refute_empty virtual_account.receivers
45
+
46
+ receiver = virtual_account.receivers.first
47
+ assert_includes receiver.keys, 'account_number'
48
+ end
49
+
50
+ def test_close_virtual_account_class_method
51
+ stub_post(%r{virtual_accounts/#{@virtual_account_id}/close$}, 'fake_virtual_account_closed', {})
52
+ virtual_account = Razorpay::VirtualAccount.close(@virtual_account_id)
53
+ assert_instance_of Razorpay::VirtualAccount, virtual_account
54
+ assert_equal 'closed', virtual_account.status
55
+ end
56
+
57
+ def test_close_virtual_account
58
+ stub_post(%r{virtual_accounts/#{@virtual_account_id}/close$}, 'fake_virtual_account_closed', {})
59
+ virtual_account = Razorpay::VirtualAccount.close(@virtual_account_id)
60
+ assert_instance_of Razorpay::VirtualAccount, virtual_account
61
+ assert_equal 'closed', virtual_account.status
62
+ end
63
+
64
+ def test_fetch_all_virtual_accounts
65
+ virtual_accounts = Razorpay::VirtualAccount.all
66
+ assert_instance_of Razorpay::Collection, virtual_accounts
67
+ end
68
+
69
+ def test_fetch_specific_virtual_account
70
+ virtual_account = Razorpay::VirtualAccount.fetch(@virtual_account_id)
71
+ assert_instance_of Razorpay::VirtualAccount, virtual_account
72
+ assert_equal @virtual_account_id, virtual_account.id
73
+ end
74
+
75
+ def test_fetch_payment_bank_transfer
76
+ stub_get(%r{payments\/#{@payment_id}$}, 'fake_payment')
77
+ stub_get(%r{payments/#{@payment_id}/bank_transfer$}, 'fake_payment_bank_transfer')
78
+ bank_transfer = Razorpay::Payment.fetch(@payment_id).bank_transfer
79
+ assert_equal @virtual_account_id, bank_transfer.virtual_account_id
80
+ assert_equal 'fake_payment_id', bank_transfer.payment_id
81
+ end
82
+
83
+ def test_fetch_virtual_account_payments
84
+ stub_get(/payments$/, 'payment_collection')
85
+ payments = Razorpay::VirtualAccount.fetch(@virtual_account_id).payments
86
+ assert_instance_of Razorpay::Collection, payments, 'Payments should be an array'
87
+ assert !payments.items.empty?, 'Payments should be more than one'
88
+ end
89
+
90
+ def test_virtual_account_add_receivers
91
+
92
+ para_attr = {
93
+ "types": [
94
+ "vpa"
95
+ ],
96
+ "vpa": {
97
+ "descriptor": "gauravkumar"
98
+ }
99
+ }
100
+
101
+ stub_post(%r{virtual_accounts/#{@virtual_account_id}/receivers$},'fake_virtual_account_receiver',para_attr.to_json)
102
+
103
+ virtual_account = Razorpay::VirtualAccount.add_receiver(@virtual_account_id,para_attr.to_json)
104
+ assert_equal @virtual_account_id , virtual_account.id
105
+ assert_equal 'First Virtual Account', virtual_account.name
106
+ assert_equal 'active', virtual_account.status
107
+ refute_empty virtual_account.receivers
108
+ end
109
+
110
+ def test_virtual_account_allowed_payer
111
+
112
+ para_attr = {
113
+ "types": "bank_account",
114
+ "bank_account": {
115
+ "ifsc": "UTIB0000013",
116
+ "account_number": 914010012345679
117
+ }
118
+ }
119
+
120
+ stub_post(%r{virtual_accounts/#{@virtual_account_id}/allowed_payers$},'fake_virtual_account_allowed',para_attr.to_json)
121
+
122
+ virtual_account = Razorpay::VirtualAccount.allowed_payer(@virtual_account_id,para_attr.to_json)
123
+ assert_equal @virtual_account_id , virtual_account.id
124
+ assert_equal 'Gaurav Kumar', virtual_account.name
125
+ assert_equal 'active', virtual_account.status
126
+ refute_empty virtual_account.allowed_payers
127
+ end
128
+
129
+ def test_virtual_account_delete_payer
130
+ stub_delete(%r{virtual_accounts/#{@virtual_account_id}/allowed_payers/#{@payer_id}$},'empty')
131
+ virtual_account = Razorpay::VirtualAccount.delete_allowed_payer(@virtual_account_id,@payer_id)
132
+ assert_instance_of Razorpay::Entity, virtual_account
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,54 @@
1
+ require 'coveralls'
2
+ require 'simplecov'
3
+ require 'minitest/autorun'
4
+ require 'webmock/minitest'
5
+ require 'razorpay'
6
+ require 'simplecov-cobertura'
7
+
8
+ Coveralls.wear! if ENV['CI']
9
+ SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
10
+
11
+ def fixture_file(filename)
12
+ return '' if filename == ''
13
+
14
+ file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename + '.json')
15
+ File.read(file_path)
16
+ end
17
+
18
+ def stub_response(_url, filename, status = nil)
19
+ response = { body: fixture_file(filename) }
20
+ response[:status] = status unless status.nil?
21
+ response.merge!(headers: { 'Content-Type' => 'application/json' })
22
+ end
23
+
24
+ def stub_get(*args)
25
+ response = stub_response(*args)
26
+ url = args[0]
27
+ stub_request(:get, url).to_return(response)
28
+ end
29
+
30
+ def stub_delete(*args)
31
+ response = stub_response(*args)
32
+ url = args[0]
33
+ stub_request(:delete, url).to_return(response)
34
+ end
35
+
36
+ def stub_post(*args)
37
+ stub_request_with_body(:post, *args)
38
+ end
39
+
40
+ def stub_put(*args)
41
+ stub_request_with_body(:put, *args)
42
+ end
43
+
44
+ def stub_patch(*args)
45
+ stub_request_with_body(:patch, *args)
46
+ end
47
+
48
+ def stub_request_with_body(verb, *args)
49
+ # The last argument is the data
50
+ data = args.pop
51
+ response = stub_response(*args)
52
+ url = args[0]
53
+ stub_request(verb, url).with(body: data).to_return(response)
54
+ end
metadata ADDED
@@ -0,0 +1,400 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: razorruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Abhay Rana
8
+ - Harman Singh
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2023-04-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httparty
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '0.14'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '0.14'
28
+ - !ruby/object:Gem::Dependency
29
+ name: coveralls
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '0.8'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '0.8'
42
+ - !ruby/object:Gem::Dependency
43
+ name: minitest
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '5.11'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '5.11'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '12.0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '12.0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rubocop
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '0.49'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.49'
84
+ - !ruby/object:Gem::Dependency
85
+ name: webmock
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '3.0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '3.0'
98
+ description: Official ruby bindings for the Razorpay API
99
+ email:
100
+ - nemo@razorpay.com
101
+ - harman@razorpay.com
102
+ executables: []
103
+ extensions: []
104
+ extra_rdoc_files: []
105
+ files:
106
+ - ".DS_Store"
107
+ - ".editorconfig"
108
+ - ".github/dependabot.yml"
109
+ - ".github/workflows/ruby.yml"
110
+ - ".gitignore"
111
+ - ".rubocop.yml"
112
+ - ".simplecov"
113
+ - CHANGELOG.md
114
+ - Gemfile
115
+ - LICENSE.txt
116
+ - README.md
117
+ - Rakefile
118
+ - documents/Invoice.md
119
+ - documents/addon.md
120
+ - documents/card.md
121
+ - documents/customer.md
122
+ - documents/emandate.md
123
+ - documents/fund.md
124
+ - documents/items.md
125
+ - documents/order.md
126
+ - documents/papernach.md
127
+ - documents/payment.md
128
+ - documents/paymentLink.md
129
+ - documents/paymentVerification.md
130
+ - documents/plan.md
131
+ - documents/qrcode.md
132
+ - documents/refund.md
133
+ - documents/registerEmandate.md
134
+ - documents/registerNach.md
135
+ - documents/settlement.md
136
+ - documents/subscriptions.md
137
+ - documents/tokens.md
138
+ - documents/transfers.md
139
+ - documents/upi.md
140
+ - documents/virtualAccount.md
141
+ - lib/ca-bundle.crt
142
+ - lib/extensions/httparty/hash_conversions.rb
143
+ - lib/razorpay.rb
144
+ - lib/razorpay/addon.rb
145
+ - lib/razorpay/card.rb
146
+ - lib/razorpay/collection.rb
147
+ - lib/razorpay/constants.rb
148
+ - lib/razorpay/customer.rb
149
+ - lib/razorpay/entity.rb
150
+ - lib/razorpay/errors.rb
151
+ - lib/razorpay/errors/bad_request_error.rb
152
+ - lib/razorpay/errors/gateway_error.rb
153
+ - lib/razorpay/errors/razorpay_error.rb
154
+ - lib/razorpay/errors/server_error.rb
155
+ - lib/razorpay/fund_account.rb
156
+ - lib/razorpay/invoice.rb
157
+ - lib/razorpay/item.rb
158
+ - lib/razorpay/order.rb
159
+ - lib/razorpay/payment.rb
160
+ - lib/razorpay/payment_link.rb
161
+ - lib/razorpay/payment_method.rb
162
+ - lib/razorpay/plan.rb
163
+ - lib/razorpay/qr_code.rb
164
+ - lib/razorpay/refund.rb
165
+ - lib/razorpay/request.rb
166
+ - lib/razorpay/settlement.rb
167
+ - lib/razorpay/subscription.rb
168
+ - lib/razorpay/subscription_registration.rb
169
+ - lib/razorpay/transfer.rb
170
+ - lib/razorpay/utility.rb
171
+ - lib/razorpay/virtual_account.rb
172
+ - razorpay-ruby.gemspec
173
+ - test/fixtures/addon_collection.json
174
+ - test/fixtures/bad_request_error.json
175
+ - test/fixtures/cancel_invoice.json
176
+ - test/fixtures/cancel_subscription.json
177
+ - test/fixtures/create_json_payment.json
178
+ - test/fixtures/customer_collection.json
179
+ - test/fixtures/delete_token.json
180
+ - test/fixtures/downtimes_collection.json
181
+ - test/fixtures/empty.json
182
+ - test/fixtures/fake_addon.json
183
+ - test/fixtures/fake_captured_payment.json
184
+ - test/fixtures/fake_card.json
185
+ - test/fixtures/fake_create_upi_payment.json
186
+ - test/fixtures/fake_customer.json
187
+ - test/fixtures/fake_customer_edited.json
188
+ - test/fixtures/fake_direct_transfer.json
189
+ - test/fixtures/fake_downtime.json
190
+ - test/fixtures/fake_fund_account.json
191
+ - test/fixtures/fake_instant_settlement.json
192
+ - test/fixtures/fake_invoice.json
193
+ - test/fixtures/fake_item.json
194
+ - test/fixtures/fake_order.json
195
+ - test/fixtures/fake_order_transfers.json
196
+ - test/fixtures/fake_otp_generate.json
197
+ - test/fixtures/fake_otp_resend.json
198
+ - test/fixtures/fake_otp_submit.json
199
+ - test/fixtures/fake_payment.json
200
+ - test/fixtures/fake_payment_authorized_webhook.json
201
+ - test/fixtures/fake_payment_bank_transfer.json
202
+ - test/fixtures/fake_payment_link.json
203
+ - test/fixtures/fake_pending_update.json
204
+ - test/fixtures/fake_plan.json
205
+ - test/fixtures/fake_qrcode.json
206
+ - test/fixtures/fake_qrcode_close.json
207
+ - test/fixtures/fake_recurring.json
208
+ - test/fixtures/fake_refund.json
209
+ - test/fixtures/fake_refunded_payment.json
210
+ - test/fixtures/fake_settlement.json
211
+ - test/fixtures/fake_settlement_on_demand.json
212
+ - test/fixtures/fake_subscription.json
213
+ - test/fixtures/fake_subscription_pause.json
214
+ - test/fixtures/fake_subscription_registration.json
215
+ - test/fixtures/fake_subscription_resume.json
216
+ - test/fixtures/fake_token.json
217
+ - test/fixtures/fake_transfer.json
218
+ - test/fixtures/fake_transfer_reverse.json
219
+ - test/fixtures/fake_update_payment.json
220
+ - test/fixtures/fake_validate_vpa.json
221
+ - test/fixtures/fake_virtual_account.json
222
+ - test/fixtures/fake_virtual_account_allowed.json
223
+ - test/fixtures/fake_virtual_account_closed.json
224
+ - test/fixtures/fake_virtual_account_collection.json
225
+ - test/fixtures/fake_virtual_account_receiver.json
226
+ - test/fixtures/fund_collection.json
227
+ - test/fixtures/hello_response.json
228
+ - test/fixtures/invoice_collection.json
229
+ - test/fixtures/issue_invoice.json
230
+ - test/fixtures/item_collection.json
231
+ - test/fixtures/order_collection.json
232
+ - test/fixtures/order_payments.json
233
+ - test/fixtures/payment_collection.json
234
+ - test/fixtures/payment_collection_with_one_payment.json
235
+ - test/fixtures/payment_link_collection.json
236
+ - test/fixtures/payment_link_response.json
237
+ - test/fixtures/payment_methods_collection.json
238
+ - test/fixtures/plan_collection.json
239
+ - test/fixtures/qrcode_collection.json
240
+ - test/fixtures/qrcode_payments_collection.json
241
+ - test/fixtures/refund_collection.json
242
+ - test/fixtures/refund_collection_for_payment.json
243
+ - test/fixtures/settlement_collection.json
244
+ - test/fixtures/settlement_instant_collection.json
245
+ - test/fixtures/settlement_report_collection.json
246
+ - test/fixtures/subscription_collection.json
247
+ - test/fixtures/success.json
248
+ - test/fixtures/tokens_collection.json
249
+ - test/fixtures/transfer_settlements_collection.json
250
+ - test/fixtures/transfers_collection.json
251
+ - test/fixtures/update_invoice.json
252
+ - test/fixtures/welcome.json
253
+ - test/razorpay/test_addon.rb
254
+ - test/razorpay/test_card.rb
255
+ - test/razorpay/test_customer.rb
256
+ - test/razorpay/test_entity.rb
257
+ - test/razorpay/test_fund_account.rb
258
+ - test/razorpay/test_invoice.rb
259
+ - test/razorpay/test_item.rb
260
+ - test/razorpay/test_order.rb
261
+ - test/razorpay/test_payment.rb
262
+ - test/razorpay/test_payment_link.rb
263
+ - test/razorpay/test_plan.rb
264
+ - test/razorpay/test_qr_code.rb
265
+ - test/razorpay/test_razorpay.rb
266
+ - test/razorpay/test_refund.rb
267
+ - test/razorpay/test_request.rb
268
+ - test/razorpay/test_settlement.rb
269
+ - test/razorpay/test_subscription.rb
270
+ - test/razorpay/test_subscription_registration.rb
271
+ - test/razorpay/test_transfer.rb
272
+ - test/razorpay/test_utility.rb
273
+ - test/razorpay/test_virtual_account.rb
274
+ - test/test_helper.rb
275
+ homepage: https://razorpay.com/
276
+ licenses:
277
+ - MIT
278
+ metadata: {}
279
+ post_install_message:
280
+ rdoc_options: []
281
+ require_paths:
282
+ - lib
283
+ required_ruby_version: !ruby/object:Gem::Requirement
284
+ requirements:
285
+ - - ">="
286
+ - !ruby/object:Gem::Version
287
+ version: '0'
288
+ required_rubygems_version: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ requirements: []
294
+ rubygems_version: 3.0.3.1
295
+ signing_key:
296
+ specification_version: 4
297
+ summary: Razorpay's Ruby API
298
+ test_files:
299
+ - test/fixtures/addon_collection.json
300
+ - test/fixtures/bad_request_error.json
301
+ - test/fixtures/cancel_invoice.json
302
+ - test/fixtures/cancel_subscription.json
303
+ - test/fixtures/create_json_payment.json
304
+ - test/fixtures/customer_collection.json
305
+ - test/fixtures/delete_token.json
306
+ - test/fixtures/downtimes_collection.json
307
+ - test/fixtures/empty.json
308
+ - test/fixtures/fake_addon.json
309
+ - test/fixtures/fake_captured_payment.json
310
+ - test/fixtures/fake_card.json
311
+ - test/fixtures/fake_create_upi_payment.json
312
+ - test/fixtures/fake_customer.json
313
+ - test/fixtures/fake_customer_edited.json
314
+ - test/fixtures/fake_direct_transfer.json
315
+ - test/fixtures/fake_downtime.json
316
+ - test/fixtures/fake_fund_account.json
317
+ - test/fixtures/fake_instant_settlement.json
318
+ - test/fixtures/fake_invoice.json
319
+ - test/fixtures/fake_item.json
320
+ - test/fixtures/fake_order.json
321
+ - test/fixtures/fake_order_transfers.json
322
+ - test/fixtures/fake_otp_generate.json
323
+ - test/fixtures/fake_otp_resend.json
324
+ - test/fixtures/fake_otp_submit.json
325
+ - test/fixtures/fake_payment.json
326
+ - test/fixtures/fake_payment_authorized_webhook.json
327
+ - test/fixtures/fake_payment_bank_transfer.json
328
+ - test/fixtures/fake_payment_link.json
329
+ - test/fixtures/fake_pending_update.json
330
+ - test/fixtures/fake_plan.json
331
+ - test/fixtures/fake_qrcode.json
332
+ - test/fixtures/fake_qrcode_close.json
333
+ - test/fixtures/fake_recurring.json
334
+ - test/fixtures/fake_refund.json
335
+ - test/fixtures/fake_refunded_payment.json
336
+ - test/fixtures/fake_settlement.json
337
+ - test/fixtures/fake_settlement_on_demand.json
338
+ - test/fixtures/fake_subscription.json
339
+ - test/fixtures/fake_subscription_pause.json
340
+ - test/fixtures/fake_subscription_registration.json
341
+ - test/fixtures/fake_subscription_resume.json
342
+ - test/fixtures/fake_token.json
343
+ - test/fixtures/fake_transfer.json
344
+ - test/fixtures/fake_transfer_reverse.json
345
+ - test/fixtures/fake_update_payment.json
346
+ - test/fixtures/fake_validate_vpa.json
347
+ - test/fixtures/fake_virtual_account.json
348
+ - test/fixtures/fake_virtual_account_allowed.json
349
+ - test/fixtures/fake_virtual_account_closed.json
350
+ - test/fixtures/fake_virtual_account_collection.json
351
+ - test/fixtures/fake_virtual_account_receiver.json
352
+ - test/fixtures/fund_collection.json
353
+ - test/fixtures/hello_response.json
354
+ - test/fixtures/invoice_collection.json
355
+ - test/fixtures/issue_invoice.json
356
+ - test/fixtures/item_collection.json
357
+ - test/fixtures/order_collection.json
358
+ - test/fixtures/order_payments.json
359
+ - test/fixtures/payment_collection.json
360
+ - test/fixtures/payment_collection_with_one_payment.json
361
+ - test/fixtures/payment_link_collection.json
362
+ - test/fixtures/payment_link_response.json
363
+ - test/fixtures/payment_methods_collection.json
364
+ - test/fixtures/plan_collection.json
365
+ - test/fixtures/qrcode_collection.json
366
+ - test/fixtures/qrcode_payments_collection.json
367
+ - test/fixtures/refund_collection.json
368
+ - test/fixtures/refund_collection_for_payment.json
369
+ - test/fixtures/settlement_collection.json
370
+ - test/fixtures/settlement_instant_collection.json
371
+ - test/fixtures/settlement_report_collection.json
372
+ - test/fixtures/subscription_collection.json
373
+ - test/fixtures/success.json
374
+ - test/fixtures/tokens_collection.json
375
+ - test/fixtures/transfer_settlements_collection.json
376
+ - test/fixtures/transfers_collection.json
377
+ - test/fixtures/update_invoice.json
378
+ - test/fixtures/welcome.json
379
+ - test/razorpay/test_addon.rb
380
+ - test/razorpay/test_card.rb
381
+ - test/razorpay/test_customer.rb
382
+ - test/razorpay/test_entity.rb
383
+ - test/razorpay/test_fund_account.rb
384
+ - test/razorpay/test_invoice.rb
385
+ - test/razorpay/test_item.rb
386
+ - test/razorpay/test_order.rb
387
+ - test/razorpay/test_payment.rb
388
+ - test/razorpay/test_payment_link.rb
389
+ - test/razorpay/test_plan.rb
390
+ - test/razorpay/test_qr_code.rb
391
+ - test/razorpay/test_razorpay.rb
392
+ - test/razorpay/test_refund.rb
393
+ - test/razorpay/test_request.rb
394
+ - test/razorpay/test_settlement.rb
395
+ - test/razorpay/test_subscription.rb
396
+ - test/razorpay/test_subscription_registration.rb
397
+ - test/razorpay/test_transfer.rb
398
+ - test/razorpay/test_utility.rb
399
+ - test/razorpay/test_virtual_account.rb
400
+ - test/test_helper.rb