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.
- checksums.yaml +7 -0
- data/.gitignore +24 -0
- data/.rspec +2 -0
- data/.travis.yml +13 -0
- data/Gemfile +11 -0
- data/LICENSE.txt +22 -0
- data/README.md +263 -0
- data/Rakefile +7 -0
- data/lib/yandex_money/api.rb +261 -0
- data/lib/yandex_money/api/version.rb +5 -0
- data/spec/account_info_spec.rb +54 -0
- data/spec/auth_spec.rb +58 -0
- data/spec/cards_spec.rb +53 -0
- data/spec/fixtures/vcr_cassettes/accept_incoming_transfer_with_protection_code.yml +42 -0
- data/spec/fixtures/vcr_cassettes/accept_incoming_transfer_with_protection_code_with_wrong_code.yml +42 -0
- data/spec/fixtures/vcr_cassettes/get_account_info.yml +40 -0
- data/spec/fixtures/vcr_cassettes/get_instance_id_fail.yml +876 -0
- data/spec/fixtures/vcr_cassettes/get_instance_id_success.yml +874 -0
- data/spec/fixtures/vcr_cassettes/get_operation_details.yml +50 -0
- data/spec/fixtures/vcr_cassettes/get_operation_history.yml +187 -0
- data/spec/fixtures/vcr_cassettes/get_operation_history_with_params.yml +46 -0
- data/spec/fixtures/vcr_cassettes/get_token_from_authorization_code.yml +875 -0
- data/spec/fixtures/vcr_cassettes/get_wrong_operation_details.yml +40 -0
- data/spec/fixtures/vcr_cassettes/init_with_client_secret.yml +839 -0
- data/spec/fixtures/vcr_cassettes/init_without_client_secret.yml +835 -0
- data/spec/fixtures/vcr_cassettes/initialize_with_token.yml +911 -0
- data/spec/fixtures/vcr_cassettes/obtain_token_for_get_account_info.yml +877 -0
- data/spec/fixtures/vcr_cassettes/obtain_token_for_making_payments_to_an_account.yml +875 -0
- data/spec/fixtures/vcr_cassettes/obtain_token_for_payments_from_bank_cards_without_authorization.yml +839 -0
- data/spec/fixtures/vcr_cassettes/process_external_payment.yml +40 -0
- data/spec/fixtures/vcr_cassettes/process_payment_to_an_account_with_failure.yml +43 -0
- data/spec/fixtures/vcr_cassettes/reject_payment.yml +42 -0
- data/spec/fixtures/vcr_cassettes/reject_payment_fail.yml +42 -0
- data/spec/fixtures/vcr_cassettes/request_external_payment.yml +46 -0
- data/spec/fixtures/vcr_cassettes/request_payment_to_an_account_with_failure.yml +43 -0
- data/spec/fixtures/vcr_cassettes/success_process_payment_to_an_account.yml +42 -0
- data/spec/fixtures/vcr_cassettes/success_request_payment_to_an_account.yml +43 -0
- data/spec/fixtures/vcr_cassettes/token_with_client_secret.yml +874 -0
- data/spec/payments_spec.rb +96 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/support/constants.rb +6 -0
- data/yandex-money-sdk.gemspec +30 -0
- 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
|
data/spec/spec_helper.rb
ADDED
@@ -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
|