yandex-money-client 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +25 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +8 -0
  5. data/.yardopts +1 -0
  6. data/CHANGELOG.md +43 -0
  7. data/Gemfile +11 -0
  8. data/LICENSE.txt +22 -0
  9. data/README.md +159 -0
  10. data/Rakefile +7 -0
  11. data/lib/yandex_money/api.rb +10 -0
  12. data/lib/yandex_money/api/version.rb +5 -0
  13. data/lib/yandex_money/client.rb +56 -0
  14. data/lib/yandex_money/config.rb +26 -0
  15. data/lib/yandex_money/exceptions.rb +71 -0
  16. data/lib/yandex_money/external_payment.rb +81 -0
  17. data/lib/yandex_money/wallet.rb +215 -0
  18. data/spec/account_info_spec.rb +64 -0
  19. data/spec/auth_spec.rb +35 -0
  20. data/spec/cards_spec.rb +55 -0
  21. data/spec/config_spec.rb +50 -0
  22. data/spec/exceptions_spec.rb +55 -0
  23. data/spec/fixtures/vcr_cassettes/accept_incoming_transfer_with_protection_code.yml +40 -0
  24. data/spec/fixtures/vcr_cassettes/accept_incoming_transfer_with_protection_code_with_wrong_code.yml +40 -0
  25. data/spec/fixtures/vcr_cassettes/get_account_info.yml +40 -0
  26. data/spec/fixtures/vcr_cassettes/get_instance_id_fail.yml +38 -0
  27. data/spec/fixtures/vcr_cassettes/get_instance_id_success.yml +38 -0
  28. data/spec/fixtures/vcr_cassettes/get_operation_details.yml +233 -0
  29. data/spec/fixtures/vcr_cassettes/get_operation_history.yml +186 -0
  30. data/spec/fixtures/vcr_cassettes/get_operation_history_with_params.yml +46 -0
  31. data/spec/fixtures/vcr_cassettes/get_token_from_authorization_code.yml +48 -0
  32. data/spec/fixtures/vcr_cassettes/get_wrong_operation_details.yml +40 -0
  33. data/spec/fixtures/vcr_cassettes/init_without_client_secret.yml +843 -0
  34. data/spec/fixtures/vcr_cassettes/initialize_with_token.yml +40 -0
  35. data/spec/fixtures/vcr_cassettes/insufficient_scope_error.yml +40 -0
  36. data/spec/fixtures/vcr_cassettes/invalid_request_error.yml +40 -0
  37. data/spec/fixtures/vcr_cassettes/process_external_payment.yml +114 -0
  38. data/spec/fixtures/vcr_cassettes/process_payment_to_an_account_with_failure.yml +41 -0
  39. data/spec/fixtures/vcr_cassettes/reject_payment.yml +40 -0
  40. data/spec/fixtures/vcr_cassettes/reject_payment_fail.yml +40 -0
  41. data/spec/fixtures/vcr_cassettes/request_external_payment.yml +79 -0
  42. data/spec/fixtures/vcr_cassettes/request_payment_to_an_account_with_failure.yml +41 -0
  43. data/spec/fixtures/vcr_cassettes/success_process_payment_to_an_account.yml +40 -0
  44. data/spec/fixtures/vcr_cassettes/success_request_payment_to_an_account.yml +41 -0
  45. data/spec/fixtures/vcr_cassettes/unauthorized_error.yml +41 -0
  46. data/spec/fixtures/vcr_cassettes/unauthorized_exception.yml +41 -0
  47. data/spec/logger_spec.rb +1 -0
  48. data/spec/payments_spec.rb +80 -0
  49. data/spec/spec_helper.rb +27 -0
  50. data/spec/support/constants.example.rb +13 -0
  51. data/yandex-money-client.gemspec +31 -0
  52. metadata +269 -0
@@ -0,0 +1,50 @@
1
+ require "spec_helper"
2
+
3
+ describe "YandexMoney config" do
4
+ after :all do
5
+ YandexMoney.reset_config
6
+ end
7
+
8
+ let(:default_money_url) { "https://money.yandex.ru" }
9
+ let(:default_sp_money_url) { "https://sp-money.yandex.ru" }
10
+
11
+ it "should have methods: config, configure, reset_config" do
12
+ yandex = class_double("YandexMoney")
13
+ expect(yandex).to receive_messages([:config, :configure, :reset_config])
14
+ yandex.config & yandex.configure & yandex.reset_config
15
+ end
16
+
17
+ it "should yield block in configure" do
18
+ expect {|b| YandexMoney.configure(&b)}.to yield_control
19
+ end
20
+
21
+ it "should return a YandexMoney::Config instance" do
22
+ expect(YandexMoney.config).to be_a_kind_of(YandexMoney::Config)
23
+ end
24
+
25
+ it "should reset_config" do
26
+ YandexMoney.configure { |c| c.money_url = "http://example1.com" }
27
+ YandexMoney.reset_config
28
+ expect(YandexMoney.config.money_url).to eq(default_money_url)
29
+ end
30
+
31
+ it "should have correct defaults" do
32
+ expect(YandexMoney.config.money_url).to eq(default_money_url)
33
+ expect(YandexMoney.config.sp_money_url).to eq(default_sp_money_url)
34
+ end
35
+
36
+ it "can write config url directly" do
37
+ YandexMoney.config.money_url = "http://example3.com"
38
+ expect(YandexMoney.config.money_url).to eq "http://example3.com"
39
+ end
40
+
41
+ it "should correct configure hosts addresses" do
42
+ YandexMoney.configure do |config|
43
+ config.money_url = "http://example1.com"
44
+ config.sp_money_url = "http://example2.com"
45
+ end
46
+ expect(YandexMoney.config.money_url).to eq "http://example1.com"
47
+ expect(YandexMoney.config.sp_money_url).to eq "http://example2.com"
48
+ end
49
+
50
+ end
@@ -0,0 +1,55 @@
1
+ require "spec_helper"
2
+
3
+ describe "Exceptions for Yandex.Money" do
4
+ describe "exceptions for wallet" do
5
+
6
+ it "should raise invalid request error" do
7
+ VCR.use_cassette "invalid request error" do
8
+ @api = YandexMoney::Wallet.new("WRONG TOKEN")
9
+ expect {
10
+ @api.request_payment(nil)
11
+ }.to raise_error YandexMoney::InvalidRequestError
12
+ end
13
+ end
14
+
15
+ it "should raise unauthorized error" do
16
+ VCR.use_cassette "unauthorized error" do
17
+ @api = YandexMoney::Wallet.new("41001565326286.AEF04DD8614B6C66AF082793D71FF624C92989E7F98D1EE377C3707BC54DE72E0DDC8EAB79470803254178F40F4712F6EBD8C5E1FDA01D041A5C4A110C8E1940DE0928FF45F4E49500EA79D8F21D2D5C7A79CCCA142AE216C69D7B6DC6378FE9CB87769E9EB37DAC22A67BD8A33CADB6F18C4C2C22D28434914970575109FDB3")
18
+ expect {
19
+ @api.request_payment(nil)
20
+ }.to raise_error YandexMoney::UnauthorizedError
21
+ end
22
+ end
23
+
24
+ it "should raise insufficient scope error" do
25
+ VCR.use_cassette "insufficient scope error" do
26
+ @api = YandexMoney::Wallet.new(ACCESS_TOKEN)
27
+ expect {
28
+ @api.request_payment(
29
+ pattern_id: "p2p",
30
+ to: "example@example.com",
31
+ amount: 5
32
+ )
33
+ }.to raise_error YandexMoney::InsufficientScopeError
34
+ end
35
+ end
36
+
37
+ end
38
+
39
+ describe "exceptions for external payment" do
40
+ # it "should raise invalid request error" do
41
+ # VCR.use_cassette "invalid request error external payment" do
42
+ # end
43
+ # end
44
+
45
+ # it "should raise unauthorized error" do
46
+ # VCR.use_cassette "unauthorized error external payment" do
47
+ # end
48
+ # end
49
+
50
+ # it "should raise insufficient scope error" do
51
+ # VCR.use_cassette "insufficient scope error external payment" do
52
+ # end
53
+ # end
54
+ end
55
+ end
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://money.yandex.ru/api/incoming-transfer-accept
6
+ body:
7
+ encoding: UTF-8
8
+ string: operation_id=463937708331015004&protection_code=0208
9
+ headers:
10
+ Authorization:
11
+ - Bearer <ACCESS_TOKEN>
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx
21
+ Date:
22
+ - Mon, 10 Nov 2014 19:24:28 GMT
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Length:
26
+ - '20'
27
+ Connection:
28
+ - keep-alive
29
+ Keep-Alive:
30
+ - timeout=120
31
+ Vary:
32
+ - Accept-Encoding
33
+ Cache-Control:
34
+ - no-cache
35
+ body:
36
+ encoding: UTF-8
37
+ string: '{"status":"success"}'
38
+ http_version:
39
+ recorded_at: Mon, 10 Nov 2014 19:24:30 GMT
40
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://money.yandex.ru/api/incoming-transfer-accept
6
+ body:
7
+ encoding: UTF-8
8
+ string: operation_id=463937921796020004&protection_code=WRONG
9
+ headers:
10
+ Authorization:
11
+ - Bearer <ACCESS_TOKEN>
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx
21
+ Date:
22
+ - Fri, 21 Nov 2014 07:16:29 GMT
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Length:
26
+ - '20'
27
+ Connection:
28
+ - keep-alive
29
+ Keep-Alive:
30
+ - timeout=120
31
+ Vary:
32
+ - Accept-Encoding
33
+ Cache-Control:
34
+ - no-cache
35
+ body:
36
+ encoding: UTF-8
37
+ string: '{"status":"success"}'
38
+ http_version:
39
+ recorded_at: Fri, 21 Nov 2014 07:16:31 GMT
40
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://money.yandex.ru/api/account-info
6
+ body:
7
+ encoding: UTF-8
8
+ string: recurse_over_arrays=true
9
+ headers:
10
+ Authorization:
11
+ - Bearer <ACCESS_TOKEN>
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx
21
+ Date:
22
+ - Mon, 10 Nov 2014 19:24:25 GMT
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Length:
26
+ - '281'
27
+ Connection:
28
+ - keep-alive
29
+ Keep-Alive:
30
+ - timeout=120
31
+ Vary:
32
+ - Accept-Encoding
33
+ Cache-Control:
34
+ - no-cache
35
+ body:
36
+ encoding: UTF-8
37
+ string: '{"account":"<WALLET_NUMBER>","balance":6.88,"currency":"643","avatar":{"ts":"2012-05-02T17:22:59.000+04:00","url":"https://avatars.yandex.net/get-yamoney-profile/yamoney-profile-56809635-2/normal?1335964979000"},"account_type":"personal","identified":false,"account_status":"named"}'
38
+ http_version:
39
+ recorded_at: Mon, 10 Nov 2014 19:24:27 GMT
40
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,38 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://money.yandex.ru/api/instance-id
6
+ body:
7
+ encoding: UTF-8
8
+ string: client_id=
9
+ headers:
10
+ Content-Type:
11
+ - application/x-www-form-urlencoded
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - nginx
19
+ Date:
20
+ - Mon, 10 Nov 2014 19:24:27 GMT
21
+ Content-Type:
22
+ - application/json;charset=UTF-8
23
+ Content-Length:
24
+ - '54'
25
+ Connection:
26
+ - keep-alive
27
+ Keep-Alive:
28
+ - timeout=120
29
+ Vary:
30
+ - Accept-Encoding
31
+ Cache-Control:
32
+ - no-cache
33
+ body:
34
+ encoding: UTF-8
35
+ string: '{"status":"refused","error":"illegal_param_client_id"}'
36
+ http_version:
37
+ recorded_at: Mon, 10 Nov 2014 19:24:29 GMT
38
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,38 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://money.yandex.ru/api/instance-id
6
+ body:
7
+ encoding: UTF-8
8
+ string: client_id=<CLIENT_ID>
9
+ headers:
10
+ Content-Type:
11
+ - application/x-www-form-urlencoded
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - nginx
19
+ Date:
20
+ - Mon, 10 Nov 2014 19:24:27 GMT
21
+ Content-Type:
22
+ - application/json;charset=UTF-8
23
+ Content-Length:
24
+ - '101'
25
+ Connection:
26
+ - keep-alive
27
+ Keep-Alive:
28
+ - timeout=120
29
+ Vary:
30
+ - Accept-Encoding
31
+ Cache-Control:
32
+ - no-cache
33
+ body:
34
+ encoding: UTF-8
35
+ string: '{"status":"success","instance_id":"PCDJvk7tJBR0VxIBwtq+Eh+mAMrs+ftItQZ/i03aIKaXq8BWYU/FBviAO0z3KUOG"}'
36
+ http_version:
37
+ recorded_at: Mon, 10 Nov 2014 19:24:29 GMT
38
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,233 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://money.yandex.ru/api/operation-history
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer <ACCESS_TOKEN>
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx
21
+ Date:
22
+ - Mon, 10 Nov 2014 19:24:26 GMT
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Length:
26
+ - '6545'
27
+ Connection:
28
+ - keep-alive
29
+ Keep-Alive:
30
+ - timeout=120
31
+ Vary:
32
+ - Accept-Encoding
33
+ Cache-Control:
34
+ - no-cache
35
+ body:
36
+ encoding: ASCII-8BIT
37
+ string: !binary |-
38
+ eyJuZXh0X3JlY29yZCI6IjMwIiwib3BlcmF0aW9ucyI6W3sicGF0dGVybl9p
39
+ ZCI6IjMzNyIsIm9wZXJhdGlvbl9pZCI6IjQ2NTkzOTQyMzYzNzExMDAxOCIs
40
+ InRpdGxlIjoi0JzQtdCz0LDQpNC+0L0gKNCg0L7RgdGB0LjRjyk6ICs3OTIx
41
+ ICoqKiAwMDUyIiwiYW1vdW50IjoyLjAwLCJkaXJlY3Rpb24iOiJvdXQiLCJk
42
+ YXRldGltZSI6IjIwMTQtMTAtMDZUMTk6Mzc6MjNaIiwic3RhdHVzIjoic3Vj
43
+ Y2VzcyIsInR5cGUiOiJwYXltZW50LXNob3AifSx7InBhdHRlcm5faWQiOiJw
44
+ MnAiLCJvcGVyYXRpb25faWQiOiI0NjU5MzgzMzQ5ODgxMTAwMTQiLCJ0aXRs
45
+ ZSI6ItCf0LXRgNC10LLQvtC0INC90LAg0YHRh9C10YIgNDEwMDExMTYxNjE2
46
+ ODc3IiwiYW1vdW50IjowLjAzLCJkaXJlY3Rpb24iOiJvdXQiLCJkYXRldGlt
47
+ ZSI6IjIwMTQtMTAtMDZUMTk6MTk6MDBaIiwibGFiZWwiOiJ0ZXN0UGF5bWVu
48
+ dCIsInN0YXR1cyI6InN1Y2Nlc3MiLCJ0eXBlIjoib3V0Z29pbmctdHJhbnNm
49
+ ZXIifSx7InBhdHRlcm5faWQiOiJwMnAiLCJvcGVyYXRpb25faWQiOiI5Mjc5
50
+ MjA3NjUxOTAwNDYwMDkiLCJ0aXRsZSI6ItCf0LXRgNC10LLQvtC0INC+0YIg
51
+ NDEwMDExMjg1NjExNTM0IiwiYW1vdW50IjoxLjAwLCJkaXJlY3Rpb24iOiJp
52
+ biIsImRhdGV0aW1lIjoiMjAxNC0wOS0xM1QyMTo1MzowMloiLCJsYWJlbCI6
53
+ InRlc3RQYXltZW50Iiwic3RhdHVzIjoic3VjY2VzcyIsInR5cGUiOiJpbmNv
54
+ bWluZy10cmFuc2ZlciJ9LHsicGF0dGVybl9pZCI6InAycCIsIm9wZXJhdGlv
55
+ bl9pZCI6IjQ2Mzk0NzM3NjY3ODAxOTAwNCIsInRpdGxlIjoi0J/QtdGA0LXQ
56
+ stC+0LQg0L7RgiA0MTAwMTEyODU2MTE1MzQiLCJhbW91bnQiOjAuOTksImRp
57
+ cmVjdGlvbiI6ImluIiwiZGF0ZXRpbWUiOiIyMDE0LTA5LTEzVDE4OjE2OjE2
58
+ WiIsInN0YXR1cyI6InJlZnVzZWQiLCJ0eXBlIjoiaW5jb21pbmctdHJhbnNm
59
+ ZXItcHJvdGVjdGVkIn0seyJwYXR0ZXJuX2lkIjoicDJwIiwib3BlcmF0aW9u
60
+ X2lkIjoiNDYzOTQ3MzMxODA0MTEwMDIwIiwidGl0bGUiOiLQn9C10YDQtdCy
61
+ 0L7QtCDQvdCwINGB0YfQtdGCIDQxMDAxMTI4NTYxMTUzNCIsImFtb3VudCI6
62
+ MS4wMSwiZGlyZWN0aW9uIjoib3V0IiwiZGF0ZXRpbWUiOiIyMDE0LTA5LTEz
63
+ VDE4OjE1OjM5WiIsInN0YXR1cyI6InN1Y2Nlc3MiLCJ0eXBlIjoib3V0Z29p
64
+ bmctdHJhbnNmZXIifSx7InBhdHRlcm5faWQiOiJwMnAiLCJvcGVyYXRpb25f
65
+ aWQiOiI5Mjc4OTQ2MTA0MDIwMTIwMDkiLCJ0aXRsZSI6ItCf0LXRgNC10LLQ
66
+ vtC0INC+0YIgNDEwMDExMjg1NjExNTM0IiwiYW1vdW50IjowLjk5LCJkaXJl
67
+ Y3Rpb24iOiJpbiIsImRhdGV0aW1lIjoiMjAxNC0wOS0xM1QxODoxNTowNVoi
68
+ LCJzdGF0dXMiOiJzdWNjZXNzIiwidHlwZSI6ImluY29taW5nLXRyYW5zZmVy
69
+ In0seyJwYXR0ZXJuX2lkIjoicDJwIiwib3BlcmF0aW9uX2lkIjoiNDYzOTQ3
70
+ MjQyMjc0MTEwMDE4IiwidGl0bGUiOiLQn9C10YDQtdCy0L7QtCDQvdCwINGB
71
+ 0YfQtdGCIDQxMDAxMTI4NTYxMTUzNCIsImFtb3VudCI6MS4wMSwiZGlyZWN0
72
+ aW9uIjoib3V0IiwiZGF0ZXRpbWUiOiIyMDE0LTA5LTEzVDE4OjE0OjE4WiIs
73
+ InN0YXR1cyI6InN1Y2Nlc3MiLCJ0eXBlIjoib3V0Z29pbmctdHJhbnNmZXIi
74
+ fSx7InBhdHRlcm5faWQiOiJwMnAiLCJvcGVyYXRpb25faWQiOiI0NjM5Mzc5
75
+ MjE3OTYwMjAwMDQiLCJ0aXRsZSI6ItCf0LXRgNC10LLQvtC0INC+0YIgNDEw
76
+ MDExMjg1NjExNTM0IiwiYW1vdW50IjowLjk5LCJkaXJlY3Rpb24iOiJpbiIs
77
+ ImRhdGV0aW1lIjoiMjAxNC0wOS0xM1QxNTozODo0MVoiLCJzdGF0dXMiOiJz
78
+ dWNjZXNzIiwidHlwZSI6ImluY29taW5nLXRyYW5zZmVyLXByb3RlY3RlZCJ9
79
+ LHsicGF0dGVybl9pZCI6InAycCIsIm9wZXJhdGlvbl9pZCI6IjxPUEVSQVRJ
80
+ T05fSUQ+IiwidGl0bGUiOiLQn9C10YDQtdCy0L7QtCDQvdCwINGB0YfQtdGC
81
+ IDQxMDAxMTI4NTYxMTUzNCIsImFtb3VudCI6MS4wMSwiZGlyZWN0aW9uIjoi
82
+ b3V0IiwiZGF0ZXRpbWUiOiIyMDE0LTA5LTEzVDE1OjM3OjUwWiIsInN0YXR1
83
+ cyI6InN1Y2Nlc3MiLCJ0eXBlIjoib3V0Z29pbmctdHJhbnNmZXIifSx7InBh
84
+ dHRlcm5faWQiOiJwMnAiLCJvcGVyYXRpb25faWQiOiI0NjM5Mzc3MDgzMzEw
85
+ MTUwMDQiLCJ0aXRsZSI6ItCf0LXRgNC10LLQvtC0INC+0YIgNDEwMDExMjg1
86
+ NjExNTM0IiwiYW1vdW50IjowLjk5LCJkaXJlY3Rpb24iOiJpbiIsImRhdGV0
87
+ aW1lIjoiMjAxNC0wOS0xM1QxNTozNTowOFoiLCJzdGF0dXMiOiJzdWNjZXNz
88
+ IiwidHlwZSI6ImluY29taW5nLXRyYW5zZmVyLXByb3RlY3RlZCJ9LHsicGF0
89
+ dGVybl9pZCI6InAycCIsIm9wZXJhdGlvbl9pZCI6IjQ2MzkzNzU1ODk0MTEx
90
+ MDAxMiIsInRpdGxlIjoidGVzdCIsImFtb3VudCI6MS4wMSwiZGlyZWN0aW9u
91
+ Ijoib3V0IiwiZGF0ZXRpbWUiOiIyMDE0LTA5LTEzVDE1OjMyOjQ1WiIsInN0
92
+ YXR1cyI6InN1Y2Nlc3MiLCJ0eXBlIjoib3V0Z29pbmctdHJhbnNmZXIifSx7
93
+ InBhdHRlcm5faWQiOiIzMDg5Iiwib3BlcmF0aW9uX2lkIjoiNDYyNzg1MDc5
94
+ NjAyMDgwMDIwIiwidGl0bGUiOiJZb3RhOiDQmNC90YLQtdGA0L3QtdGCIiwi
95
+ YW1vdW50Ijo0MC4wMCwiZGlyZWN0aW9uIjoib3V0IiwiZGF0ZXRpbWUiOiIy
96
+ MDE0LTA4LTMxVDA3OjI0OjQ5WiIsInN0YXR1cyI6InN1Y2Nlc3MiLCJ0eXBl
97
+ IjoicGF5bWVudC1zaG9wIn0seyJvcGVyYXRpb25faWQiOiI0NjI0NDk5OTIx
98
+ MTYwMjgwMDgiLCJ0aXRsZSI6ItCS0L7Qt9Cy0YDQsNGCINGB0YDQtdC00YHR
99
+ gtCyINC+0YI6IiwiYW1vdW50IjoxLjAwLCJkaXJlY3Rpb24iOiJpbiIsImRh
100
+ dGV0aW1lIjoiMjAxNC0wOC0yN1QxMDoxOTo1MloiLCJzdGF0dXMiOiJzdWNj
101
+ ZXNzIiwidHlwZSI6ImRlcG9zaXRpb24ifSx7Im9wZXJhdGlvbl9pZCI6IjQ2
102
+ MjQ0OTg5MjE0ODMyMDAwNCIsInRpdGxlIjoi0JzQsNCz0LDQt9C40L0gXCJJ
103
+ REVOQVwiIFNIT1AiLCJhbW91bnQiOjEuMDAsImRpcmVjdGlvbiI6Im91dCIs
104
+ ImRhdGV0aW1lIjoiMjAxNC0wOC0yN1QxMDoxODoxMloiLCJzdGF0dXMiOiJz
105
+ dWNjZXNzIiwidHlwZSI6InBheW1lbnQtc2hvcCJ9LHsicGF0dGVybl9pZCI6
106
+ InAycCIsIm9wZXJhdGlvbl9pZCI6IjkyNDczNDY1MzcwODAyNDAwOSIsInRp
107
+ dGxlIjoi0J/QtdGA0LXQstC+0LQg0L7RgiA0MTAwMTg3NzM0ODcyMyIsImFt
108
+ b3VudCI6NC45OCwiZGlyZWN0aW9uIjoiaW4iLCJkYXRldGltZSI6IjIwMTQt
109
+ MDgtMjZUMTE6MjI6MDZaIiwic3RhdHVzIjoic3VjY2VzcyIsInR5cGUiOiJp
110
+ bmNvbWluZy10cmFuc2ZlciJ9LHsicGF0dGVybl9pZCI6InAycCIsIm9wZXJh
111
+ dGlvbl9pZCI6IjkyNDczNDIyOTA1MjA3NjAyNSIsInRpdGxlIjoi0J/QtdGA
112
+ 0LXQstC+0LQg0L7RgiA0MTAwMTE3MDk3MDM2OTciLCJhbW91bnQiOjIuNTAs
113
+ ImRpcmVjdGlvbiI6ImluIiwiZGF0ZXRpbWUiOiIyMDE0LTA4LTI2VDExOjE4
114
+ OjM0WiIsInN0YXR1cyI6InN1Y2Nlc3MiLCJ0eXBlIjoiaW5jb21pbmctdHJh
115
+ bnNmZXIifSx7InBhdHRlcm5faWQiOiJwMnAiLCJvcGVyYXRpb25faWQiOiI5
116
+ MjQ3MzM1MDg1NzgwNTYwMjUiLCJ0aXRsZSI6ItCf0LXRgNC10LLQvtC0INC+
117
+ 0YIgNDEwMDEyMDE2OTI2NTIyIiwiYW1vdW50IjoyNS4wMCwiZGlyZWN0aW9u
118
+ IjoiaW4iLCJkYXRldGltZSI6IjIwMTQtMDgtMjZUMTE6MTI6MzRaIiwic3Rh
119
+ dHVzIjoic3VjY2VzcyIsInR5cGUiOiJpbmNvbWluZy10cmFuc2ZlciJ9LHsi
120
+ cGF0dGVybl9pZCI6IjYxMDIiLCJvcGVyYXRpb25faWQiOiI0NjE3NTk4NTU4
121
+ NzQxMTAwMDUiLCJ0aXRsZSI6ItCe0LrQtdCw0L0g0JHQsNC90LogKNCX0JDQ
122
+ nikiLCJhbW91bnQiOjgwLjAwLCJkaXJlY3Rpb24iOiJvdXQiLCJkYXRldGlt
123
+ ZSI6IjIwMTQtMDgtMTlUMTA6Mzc6NDRaIiwic3RhdHVzIjoic3VjY2VzcyIs
124
+ InR5cGUiOiJwYXltZW50LXNob3AifSx7InBhdHRlcm5faWQiOiI2Njg2Iiwi
125
+ b3BlcmF0aW9uX2lkIjoiNDYxNTAxNzAwNTA2MDQwMDA1IiwidGl0bGUiOiLQ
126
+ n9C10YDQtdCy0L7QtCDQvdCwINC60LDRgNGC0YMiLCJhbW91bnQiOjE2OS41
127
+ MCwiZGlyZWN0aW9uIjoib3V0IiwiZGF0ZXRpbWUiOiIyMDE0LTA4LTE2VDEw
128
+ OjU1OjEwWiIsInN0YXR1cyI6InN1Y2Nlc3MiLCJ0eXBlIjoicGF5bWVudC1z
129
+ aG9wIn0seyJvcGVyYXRpb25faWQiOiI0NjE1MDE2NzIzODgwNDkwMTIiLCJ0
130
+ aXRsZSI6ItCR0LDQvdC6INCi0LjQvdGM0LrQvtGE0YQg0JrRgNC10LTQuNGC
131
+ 0L3Ri9C1INCh0LjRgdGC0LXQvNGLLCDQv9C+0L/QvtC70L3QtdC90LjQtSIs
132
+ ImFtb3VudCI6MTAwLjAwLCJkaXJlY3Rpb24iOiJpbiIsImRhdGV0aW1lIjoi
133
+ MjAxNC0wOC0xNlQxMDo1NDozMloiLCJzdGF0dXMiOiJzdWNjZXNzIiwidHlw
134
+ ZSI6ImRlcG9zaXRpb24ifSx7Im9wZXJhdGlvbl9pZCI6IjQ2MTUwMTI2OTU3
135
+ ODAzMjAxMiIsInRpdGxlIjoi0JHQsNC90Log0KLQuNC90YzQutC+0YTRhCDQ
136
+ mtGA0LXQtNC40YLQvdGL0LUg0KHQuNGB0YLQtdC80YssINC/0L7Qv9C+0LvQ
137
+ vdC10L3QuNC1IiwiYW1vdW50IjoxNDcuMDAsImRpcmVjdGlvbiI6ImluIiwi
138
+ ZGF0ZXRpbWUiOiIyMDE0LTA4LTE2VDEwOjQ3OjQ5WiIsInN0YXR1cyI6InN1
139
+ Y2Nlc3MiLCJ0eXBlIjoiZGVwb3NpdGlvbiJ9LHsicGF0dGVybl9pZCI6IjE5
140
+ NDAiLCJvcGVyYXRpb25faWQiOiI0NjE0NTUzMTkzMzYxMTAwMTUiLCJ0aXRs
141
+ ZSI6ItCY0L3RgtC10YDQvdC10YIt0L7RhNC40YEg0JjQtyDRgNGD0Log0LIg
142
+ 0YDRg9C60LgiLCJhbW91bnQiOjU3LjAwLCJkaXJlY3Rpb24iOiJvdXQiLCJk
143
+ YXRldGltZSI6IjIwMTQtMDgtMTVUMjI6MDI6MDlaIiwic3RhdHVzIjoic3Vj
144
+ Y2VzcyIsInR5cGUiOiJwYXltZW50LXNob3AifSx7Im9wZXJhdGlvbl9pZCI6
145
+ IjQ2MTQ1NTIzNjY0NDAyODAwOCIsInRpdGxlIjoi0J/QvtC/0L7Qu9C90LXQ
146
+ vdC40LUg0YfQtdGA0LXQtyBST0NLRVRCQU5LIENSIiwiYW1vdW50Ijo2MC4w
147
+ MCwiZGlyZWN0aW9uIjoiaW4iLCJkYXRldGltZSI6IjIwMTQtMDgtMTVUMjI6
148
+ MDA6MzZaIiwic3RhdHVzIjoic3VjY2VzcyIsInR5cGUiOiJkZXBvc2l0aW9u
149
+ In0seyJwYXR0ZXJuX2lkIjoicDJwIiwib3BlcmF0aW9uX2lkIjoiNDYxMzY2
150
+ MjM5MjY2MTEwMDA1IiwidGl0bGUiOiLQn9C10YDQtdCy0L7QtCDQvdCwINGB
151
+ 0YfQtdGCIDQxMDAxMjAxNjkyNjUyMiIsImFtb3VudCI6MTAwLjUwLCJkaXJl
152
+ Y3Rpb24iOiJvdXQiLCJkYXRldGltZSI6IjIwMTQtMDgtMTRUMjE6MTc6MjVa
153
+ Iiwic3RhdHVzIjoic3VjY2VzcyIsInR5cGUiOiJvdXRnb2luZy10cmFuc2Zl
154
+ ciJ9LHsib3BlcmF0aW9uX2lkIjoiNDYxMzY2MTk0OTIyMDE3MDEyIiwidGl0
155
+ bGUiOiLQn9C10YDQtdCy0L7QtCDRgSDQsdCw0L3QutC+0LLRgdC60L7QuSDQ
156
+ utCw0YDRgtGLIiwiYW1vdW50Ijo0OS4wMCwiZGlyZWN0aW9uIjoiaW4iLCJk
157
+ YXRldGltZSI6IjIwMTQtMDgtMTRUMjE6MTY6MzRaIiwibGFiZWwiOiIxLTQt
158
+ MTQwODA1MDk0MDUwMCIsInN0YXR1cyI6InN1Y2Nlc3MiLCJ0eXBlIjoiZGVw
159
+ b3NpdGlvbiJ9LHsib3BlcmF0aW9uX2lkIjoiNDYxMzY0NzY2ODY1MDEyMDEy
160
+ IiwidGl0bGUiOiLQn9C10YDQtdCy0L7QtCDRgSDQsdCw0L3QutC+0LLRgdC6
161
+ 0L7QuSDQutCw0YDRgtGLIiwiYW1vdW50Ijo0OS4wMCwiZGlyZWN0aW9uIjoi
162
+ aW4iLCJkYXRldGltZSI6IjIwMTQtMDgtMTRUMjA6NTI6NDZaIiwibGFiZWwi
163
+ OiIxLTQtMTQwODA0OTQ1OTIwOSIsInN0YXR1cyI6InN1Y2Nlc3MiLCJ0eXBl
164
+ IjoiZGVwb3NpdGlvbiJ9LHsicGF0dGVybl9pZCI6IjM0MyIsIm9wZXJhdGlv
165
+ bl9pZCI6IjQ2MTI2NjM3OTgxMzAxMDAxMCIsInRpdGxlIjoi0JHQuNC70LDQ
166
+ udC9ICjQoNC+0YHRgdC40Y8pOiArNzk2OCAqKiogNDMwNSIsImFtb3VudCI6
167
+ MTAuMDAsImRpcmVjdGlvbiI6Im91dCIsImRhdGV0aW1lIjoiMjAxNC0wOC0x
168
+ M1QxNzozMzoyMVoiLCJzdGF0dXMiOiJzdWNjZXNzIiwidHlwZSI6InBheW1l
169
+ bnQtc2hvcCJ9LHsicGF0dGVybl9pZCI6IjY2ODYiLCJvcGVyYXRpb25faWQi
170
+ OiI0NjExNzIzNzc1MTMwODAwMTkiLCJ0aXRsZSI6ItCf0LXRgNC10LLQvtC0
171
+ INC90LAg0LrQsNGA0YLRgyIsImFtb3VudCI6MTk3Mi4wMCwiZGlyZWN0aW9u
172
+ Ijoib3V0IiwiZGF0ZXRpbWUiOiIyMDE0LTA4LTEyVDE1OjI2OjI3WiIsInN0
173
+ YXR1cyI6InN1Y2Nlc3MiLCJ0eXBlIjoicGF5bWVudC1zaG9wIn0seyJvcGVy
174
+ YXRpb25faWQiOiI0NjExNzE3ODI0OTkwNDQwMDgiLCJ0aXRsZSI6ItCf0L7Q
175
+ v9C+0LvQvdC10L3QuNC1INGH0LXRgNC10LcgUk9DS0VUQkFOSyBDUiIsImFt
176
+ b3VudCI6MjAwMC4wMCwiZGlyZWN0aW9uIjoiaW4iLCJkYXRldGltZSI6IjIw
177
+ MTQtMDgtMTJUMTU6MTY6MjJaIiwic3RhdHVzIjoic3VjY2VzcyIsInR5cGUi
178
+ OiJkZXBvc2l0aW9uIn0seyJwYXR0ZXJuX2lkIjoicDJwIiwib3BlcmF0aW9u
179
+ X2lkIjoiNDYxMTYyODE5NzgxMTEwMDAzIiwidGl0bGUiOiLQn9C10YDQtdCy
180
+ 0L7QtCDQvdCwINGB0YfQtdGCIDQxMDAxMTcwOTcwMzY5NyIsImFtb3VudCI6
181
+ NDkuMjUsImRpcmVjdGlvbiI6Im91dCIsImRhdGV0aW1lIjoiMjAxNC0wOC0x
182
+ MlQxMjo0NzowOVoiLCJzdGF0dXMiOiJzdWNjZXNzIiwidHlwZSI6Im91dGdv
183
+ aW5nLXRyYW5zZmVyIn1dfQ==
184
+ http_version:
185
+ recorded_at: Mon, 10 Nov 2014 19:24:28 GMT
186
+ - request:
187
+ method: post
188
+ uri: https://money.yandex.ru/api/operation-details
189
+ body:
190
+ encoding: UTF-8
191
+ string: operation_id=465939423637110018
192
+ headers:
193
+ Authorization:
194
+ - Bearer <ACCESS_TOKEN>
195
+ Content-Type:
196
+ - application/x-www-form-urlencoded
197
+ response:
198
+ status:
199
+ code: 200
200
+ message: OK
201
+ headers:
202
+ Server:
203
+ - nginx
204
+ Date:
205
+ - Mon, 10 Nov 2014 19:24:26 GMT
206
+ Content-Type:
207
+ - application/json;charset=UTF-8
208
+ Content-Length:
209
+ - '443'
210
+ Connection:
211
+ - keep-alive
212
+ Keep-Alive:
213
+ - timeout=120
214
+ Vary:
215
+ - Accept-Encoding
216
+ Cache-Control:
217
+ - no-cache
218
+ body:
219
+ encoding: ASCII-8BIT
220
+ string: !binary |-
221
+ eyJwYXR0ZXJuX2lkIjoiMzM3Iiwib3BlcmF0aW9uX2lkIjoiNDY1OTM5NDIz
222
+ NjM3MTEwMDE4IiwidGl0bGUiOiLQnNC10LPQsNCk0L7QvSAo0KDQvtGB0YHQ
223
+ uNGPKTogKzc5MjEgKioqIDAwNTIiLCJhbW91bnQiOjIuMDAsImRpcmVjdGlv
224
+ biI6Im91dCIsImRhdGV0aW1lIjoiMjAxNC0xMC0wNlQxOTozNzoyM1oiLCJz
225
+ dGF0dXMiOiJzdWNjZXNzIiwidHlwZSI6InBheW1lbnQtc2hvcCIsImRldGFp
226
+ bHMiOiLQo9GB0LvRg9Cz0Lgg0YHQvtGC0L7QstC+0Lkg0YHQstGP0LfQuCDQ
227
+ nNC10LPQsNCk0L7QvVxuwqBcbtCg0LXQutCy0LjQt9C40YLRiyDQv9C70LDR
228
+ gtC10LbQsDpcbsKgXG5D0YPQvNC80LAg0L/Qu9Cw0YLQtdC20LA6IDIuMDAg
229
+ UlVCXG7QotC10LvQtdGE0L7QvTogOTIxMzAyMDA1Mlxu0J3QvtC80LXRgCDR
230
+ gtGA0LDQvdC30LDQutGG0LjQuDogMjAwMDE4MTYwNDU5MlxuIn0=
231
+ http_version:
232
+ recorded_at: Mon, 10 Nov 2014 19:24:28 GMT
233
+ recorded_with: VCR 2.9.3