yandex-money-sdk 0.9.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 (43) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +24 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +13 -0
  5. data/Gemfile +11 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +263 -0
  8. data/Rakefile +7 -0
  9. data/lib/yandex_money/api.rb +261 -0
  10. data/lib/yandex_money/api/version.rb +5 -0
  11. data/spec/account_info_spec.rb +54 -0
  12. data/spec/auth_spec.rb +58 -0
  13. data/spec/cards_spec.rb +53 -0
  14. data/spec/fixtures/vcr_cassettes/accept_incoming_transfer_with_protection_code.yml +42 -0
  15. data/spec/fixtures/vcr_cassettes/accept_incoming_transfer_with_protection_code_with_wrong_code.yml +42 -0
  16. data/spec/fixtures/vcr_cassettes/get_account_info.yml +40 -0
  17. data/spec/fixtures/vcr_cassettes/get_instance_id_fail.yml +876 -0
  18. data/spec/fixtures/vcr_cassettes/get_instance_id_success.yml +874 -0
  19. data/spec/fixtures/vcr_cassettes/get_operation_details.yml +50 -0
  20. data/spec/fixtures/vcr_cassettes/get_operation_history.yml +187 -0
  21. data/spec/fixtures/vcr_cassettes/get_operation_history_with_params.yml +46 -0
  22. data/spec/fixtures/vcr_cassettes/get_token_from_authorization_code.yml +875 -0
  23. data/spec/fixtures/vcr_cassettes/get_wrong_operation_details.yml +40 -0
  24. data/spec/fixtures/vcr_cassettes/init_with_client_secret.yml +839 -0
  25. data/spec/fixtures/vcr_cassettes/init_without_client_secret.yml +835 -0
  26. data/spec/fixtures/vcr_cassettes/initialize_with_token.yml +911 -0
  27. data/spec/fixtures/vcr_cassettes/obtain_token_for_get_account_info.yml +877 -0
  28. data/spec/fixtures/vcr_cassettes/obtain_token_for_making_payments_to_an_account.yml +875 -0
  29. data/spec/fixtures/vcr_cassettes/obtain_token_for_payments_from_bank_cards_without_authorization.yml +839 -0
  30. data/spec/fixtures/vcr_cassettes/process_external_payment.yml +40 -0
  31. data/spec/fixtures/vcr_cassettes/process_payment_to_an_account_with_failure.yml +43 -0
  32. data/spec/fixtures/vcr_cassettes/reject_payment.yml +42 -0
  33. data/spec/fixtures/vcr_cassettes/reject_payment_fail.yml +42 -0
  34. data/spec/fixtures/vcr_cassettes/request_external_payment.yml +46 -0
  35. data/spec/fixtures/vcr_cassettes/request_payment_to_an_account_with_failure.yml +43 -0
  36. data/spec/fixtures/vcr_cassettes/success_process_payment_to_an_account.yml +42 -0
  37. data/spec/fixtures/vcr_cassettes/success_request_payment_to_an_account.yml +43 -0
  38. data/spec/fixtures/vcr_cassettes/token_with_client_secret.yml +874 -0
  39. data/spec/payments_spec.rb +96 -0
  40. data/spec/spec_helper.rb +17 -0
  41. data/spec/support/constants.rb +6 -0
  42. data/yandex-money-sdk.gemspec +30 -0
  43. metadata +230 -0
@@ -0,0 +1,96 @@
1
+ require "spec_helper"
2
+
3
+ describe "Payments from the Yandex.Money wallet" do
4
+ describe "make payment to an account" do
5
+ before :all do
6
+ VCR.use_cassette "obtain token for making payments to an account" do
7
+ @api = YandexMoney::Api.new(
8
+ client_id: CLIENT_ID,
9
+ redirect_uri: REDIRECT_URI,
10
+ scope: 'payment.to-account("410011285611534") incoming-transfers'
11
+ )
12
+ @api.code = "F0EF348A2AE89F87040E46618C029CB9D6EFC2BFC9254F959D9A629FDD3A4EB6DA067D6422D0E008D098802A0B612F583B72FA9E332C73D21E1F770CBCC6AAF81818859E79AA6018621504572A0B217B7F7456FEE5422AF85D7790C04D51779966700EF8E45B32B4342E411A3E185C3E58B72BBEAAE069D681BCC3D542B3CE1D"
13
+ @api.obtain_token
14
+ end
15
+ end
16
+
17
+ it "success request payment" do
18
+ VCR.use_cassette "success request payment to an account" do
19
+ server_response = @api.request_payment(
20
+ pattern_id: "p2p",
21
+ to: "410011285611534",
22
+ amount: "1.0",
23
+ comment: "test payment comment from yandex-money-ruby",
24
+ message: "test payment message from yandex-money-ruby",
25
+ label: "testPayment",
26
+ test_payment: "true",
27
+ test_result: "success"
28
+ )
29
+ expect(server_response.status).to eq "success"
30
+ end
31
+ end
32
+
33
+ it "raise exception without requered params when request payment" do
34
+ VCR.use_cassette "request payment to an account with failure" do
35
+ expect {
36
+ @api.request_payment(
37
+ pattern_id: "p2p",
38
+ to: "410011285611534",
39
+ test_payment: "true",
40
+ test_result: "success"
41
+ )
42
+ }.to raise_error "Illegal params"
43
+ end
44
+ end
45
+
46
+ it "success process payment" do
47
+ VCR.use_cassette "success process payment to an account" do
48
+ server_response = @api.process_payment(
49
+ request_id: "test-p2p",
50
+ test_payment: "true",
51
+ test_result: "success"
52
+ )
53
+ expect(server_response.status).to eq "success"
54
+ end
55
+ end
56
+
57
+ it "raise exception without requered params when process payment" do
58
+ VCR.use_cassette "process payment to an account with failure" do
59
+ expect {
60
+ @api.process_payment(
61
+ test_payment: "true",
62
+ test_result: "success"
63
+ )
64
+ }.to raise_error "Contract not found"
65
+ end
66
+ end
67
+
68
+ it "accept incoming transfer with protection code" do
69
+ VCR.use_cassette "accept incoming transfer with protection code" do
70
+ expect(@api.incoming_transfer_accept("463937708331015004", "0208")).to be true
71
+ end
72
+ end
73
+
74
+ it "raise exception with wrong protection code while accepting incoming transfer" do
75
+ VCR.use_cassette "accept incoming transfer with protection code with wrong code" do
76
+ expect {
77
+ @api.incoming_transfer_accept("463937921796020004", "6377")
78
+ }.to raise_error "Illegal param protection code, attemps available: 2"
79
+ end
80
+ end
81
+
82
+ it "can reject payment" do
83
+ VCR.use_cassette "reject payment" do
84
+ expect(@api.incoming_transfer_reject("463947376678019004")).to be true
85
+ end
86
+ end
87
+
88
+ it "raise exception when reject wrong payment" do
89
+ VCR.use_cassette "reject payment fail" do
90
+ expect {
91
+ @api.incoming_transfer_reject("")
92
+ }.to raise_error "Illegal param operation id"
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,17 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'bundler/setup'
5
+ Bundler.setup
6
+
7
+ require 'yandex_money/api'
8
+ require 'vcr'
9
+
10
+ VCR.configure do |c|
11
+ c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
12
+ c.hook_into :webmock
13
+ end
14
+
15
+ RSpec.configure do |config|
16
+ Dir["./spec/support/**/*.rb"].each {|f| require f}
17
+ end
@@ -0,0 +1,6 @@
1
+ # Shared constants for specs
2
+
3
+ CLIENT_ID = "84ED7836D6C0273670C2BA5616AFC9B810F56C10E1F272467E0C158B6232E0E8"
4
+ REDIRECT_URI = "http://drakmail.github.io/yandex-money-ruby"
5
+ INSTANCE_ID = "zRhKWeiQVphBSd6I/A8p28R4uRMx9QPPW1nviyTFkQf+a73JuX2jSD0gVEQhWtOH"
6
+ REQUEST_ID = "313230393739363039365f64643133633966326338353530303230663461616330303239373030646132616437393134623165"
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+
6
+ require 'yandex_money/api/version'
7
+
8
+ Gem::Specification.new do |spec|
9
+ spec.name = "yandex-money-sdk"
10
+ spec.description = "SDK for Yandex Money API"
11
+ spec.version = YandexMoney::Api::VERSION
12
+ spec.authors = ["Alexander Maslov"]
13
+ spec.email = ["drakmail@delta.pm"]
14
+ spec.summary = %q{Yandex money API for ruby.}
15
+ spec.homepage = "https://github.com/yandex-money/yandex-money-sdk-ruby"
16
+ spec.license = "MIT"
17
+
18
+ spec.files = `git ls-files -z`.split("\x0")
19
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_dependency "httparty", '~> 0.13', ">= 0.13.1"
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.6"
26
+ spec.add_development_dependency "rake", "~> 10.3", ">= 10.3.2"
27
+ spec.add_development_dependency "vcr", "~> 2.9", ">= 2.9.3"
28
+ spec.add_development_dependency "webmock", "~> 1.8", ">= 1.8.0"
29
+ spec.add_development_dependency "rspec", "~> 3.1", ">= 3.1.0"
30
+ end
metadata ADDED
@@ -0,0 +1,230 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yandex-money-sdk
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.0
5
+ platform: ruby
6
+ authors:
7
+ - Alexander Maslov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.13'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.13.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.13'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.13.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: bundler
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.6'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.6'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '10.3'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 10.3.2
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '10.3'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 10.3.2
67
+ - !ruby/object:Gem::Dependency
68
+ name: vcr
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '2.9'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 2.9.3
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '2.9'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 2.9.3
87
+ - !ruby/object:Gem::Dependency
88
+ name: webmock
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '1.8'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 1.8.0
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.8'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 1.8.0
107
+ - !ruby/object:Gem::Dependency
108
+ name: rspec
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '3.1'
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 3.1.0
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '3.1'
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 3.1.0
127
+ description: SDK for Yandex Money API
128
+ email:
129
+ - drakmail@delta.pm
130
+ executables: []
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - ".gitignore"
135
+ - ".rspec"
136
+ - ".travis.yml"
137
+ - Gemfile
138
+ - LICENSE.txt
139
+ - README.md
140
+ - Rakefile
141
+ - lib/yandex_money/api.rb
142
+ - lib/yandex_money/api/version.rb
143
+ - spec/account_info_spec.rb
144
+ - spec/auth_spec.rb
145
+ - spec/cards_spec.rb
146
+ - spec/fixtures/vcr_cassettes/accept_incoming_transfer_with_protection_code.yml
147
+ - spec/fixtures/vcr_cassettes/accept_incoming_transfer_with_protection_code_with_wrong_code.yml
148
+ - spec/fixtures/vcr_cassettes/get_account_info.yml
149
+ - spec/fixtures/vcr_cassettes/get_instance_id_fail.yml
150
+ - spec/fixtures/vcr_cassettes/get_instance_id_success.yml
151
+ - spec/fixtures/vcr_cassettes/get_operation_details.yml
152
+ - spec/fixtures/vcr_cassettes/get_operation_history.yml
153
+ - spec/fixtures/vcr_cassettes/get_operation_history_with_params.yml
154
+ - spec/fixtures/vcr_cassettes/get_token_from_authorization_code.yml
155
+ - spec/fixtures/vcr_cassettes/get_wrong_operation_details.yml
156
+ - spec/fixtures/vcr_cassettes/init_with_client_secret.yml
157
+ - spec/fixtures/vcr_cassettes/init_without_client_secret.yml
158
+ - spec/fixtures/vcr_cassettes/initialize_with_token.yml
159
+ - spec/fixtures/vcr_cassettes/obtain_token_for_get_account_info.yml
160
+ - spec/fixtures/vcr_cassettes/obtain_token_for_making_payments_to_an_account.yml
161
+ - spec/fixtures/vcr_cassettes/obtain_token_for_payments_from_bank_cards_without_authorization.yml
162
+ - spec/fixtures/vcr_cassettes/process_external_payment.yml
163
+ - spec/fixtures/vcr_cassettes/process_payment_to_an_account_with_failure.yml
164
+ - spec/fixtures/vcr_cassettes/reject_payment.yml
165
+ - spec/fixtures/vcr_cassettes/reject_payment_fail.yml
166
+ - spec/fixtures/vcr_cassettes/request_external_payment.yml
167
+ - spec/fixtures/vcr_cassettes/request_payment_to_an_account_with_failure.yml
168
+ - spec/fixtures/vcr_cassettes/success_process_payment_to_an_account.yml
169
+ - spec/fixtures/vcr_cassettes/success_request_payment_to_an_account.yml
170
+ - spec/fixtures/vcr_cassettes/token_with_client_secret.yml
171
+ - spec/payments_spec.rb
172
+ - spec/spec_helper.rb
173
+ - spec/support/constants.rb
174
+ - yandex-money-sdk.gemspec
175
+ homepage: https://github.com/yandex-money/yandex-money-sdk-ruby
176
+ licenses:
177
+ - MIT
178
+ metadata: {}
179
+ post_install_message:
180
+ rdoc_options: []
181
+ require_paths:
182
+ - lib
183
+ required_ruby_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ requirements: []
194
+ rubyforge_project:
195
+ rubygems_version: 2.2.2
196
+ signing_key:
197
+ specification_version: 4
198
+ summary: Yandex money API for ruby.
199
+ test_files:
200
+ - spec/account_info_spec.rb
201
+ - spec/auth_spec.rb
202
+ - spec/cards_spec.rb
203
+ - spec/fixtures/vcr_cassettes/accept_incoming_transfer_with_protection_code.yml
204
+ - spec/fixtures/vcr_cassettes/accept_incoming_transfer_with_protection_code_with_wrong_code.yml
205
+ - spec/fixtures/vcr_cassettes/get_account_info.yml
206
+ - spec/fixtures/vcr_cassettes/get_instance_id_fail.yml
207
+ - spec/fixtures/vcr_cassettes/get_instance_id_success.yml
208
+ - spec/fixtures/vcr_cassettes/get_operation_details.yml
209
+ - spec/fixtures/vcr_cassettes/get_operation_history.yml
210
+ - spec/fixtures/vcr_cassettes/get_operation_history_with_params.yml
211
+ - spec/fixtures/vcr_cassettes/get_token_from_authorization_code.yml
212
+ - spec/fixtures/vcr_cassettes/get_wrong_operation_details.yml
213
+ - spec/fixtures/vcr_cassettes/init_with_client_secret.yml
214
+ - spec/fixtures/vcr_cassettes/init_without_client_secret.yml
215
+ - spec/fixtures/vcr_cassettes/initialize_with_token.yml
216
+ - spec/fixtures/vcr_cassettes/obtain_token_for_get_account_info.yml
217
+ - spec/fixtures/vcr_cassettes/obtain_token_for_making_payments_to_an_account.yml
218
+ - spec/fixtures/vcr_cassettes/obtain_token_for_payments_from_bank_cards_without_authorization.yml
219
+ - spec/fixtures/vcr_cassettes/process_external_payment.yml
220
+ - spec/fixtures/vcr_cassettes/process_payment_to_an_account_with_failure.yml
221
+ - spec/fixtures/vcr_cassettes/reject_payment.yml
222
+ - spec/fixtures/vcr_cassettes/reject_payment_fail.yml
223
+ - spec/fixtures/vcr_cassettes/request_external_payment.yml
224
+ - spec/fixtures/vcr_cassettes/request_payment_to_an_account_with_failure.yml
225
+ - spec/fixtures/vcr_cassettes/success_process_payment_to_an_account.yml
226
+ - spec/fixtures/vcr_cassettes/success_request_payment_to_an_account.yml
227
+ - spec/fixtures/vcr_cassettes/token_with_client_secret.yml
228
+ - spec/payments_spec.rb
229
+ - spec/spec_helper.rb
230
+ - spec/support/constants.rb