moneta-api 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.rspec +3 -0
  4. data/.yardopts +6 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +31 -0
  8. data/Rakefile +2 -0
  9. data/lib/moneta/api/data_mapper.rb +91 -0
  10. data/lib/moneta/api/requests/authorise_transaction_batch_request.rb +9 -0
  11. data/lib/moneta/api/requests/authorise_transaction_request.rb +15 -0
  12. data/lib/moneta/api/requests/cancel_transaction_batch_request.rb +10 -0
  13. data/lib/moneta/api/requests/cancel_transaction_request.rb +14 -0
  14. data/lib/moneta/api/requests/confirm_transaction_batch_request.rb +10 -0
  15. data/lib/moneta/api/requests/confirm_transaction_request.rb +9 -0
  16. data/lib/moneta/api/requests/create_account_request.rb +65 -0
  17. data/lib/moneta/api/requests/find_accounts_list_request.rb +38 -0
  18. data/lib/moneta/api/requests/find_last_operations_list_request.rb +24 -0
  19. data/lib/moneta/api/requests/find_operations_list_request.rb +26 -0
  20. data/lib/moneta/api/requests/forecast_transaction_request.rb +9 -0
  21. data/lib/moneta/api/requests/get_account_payment_password_challenge_request.rb +16 -0
  22. data/lib/moneta/api/requests/invoice_batch_request.rb +10 -0
  23. data/lib/moneta/api/requests/invoice_request.rb +10 -0
  24. data/lib/moneta/api/requests/payment_request.rb +9 -0
  25. data/lib/moneta/api/requests/refund_request.rb +42 -0
  26. data/lib/moneta/api/requests/transfer_request.rb +9 -0
  27. data/lib/moneta/api/requests/verify_payment_request.rb +10 -0
  28. data/lib/moneta/api/requests/verify_transaction_request.rb +51 -0
  29. data/lib/moneta/api/requests/verify_transfer_request.rb +10 -0
  30. data/lib/moneta/api/response_factory.rb +22 -0
  31. data/lib/moneta/api/responses/authorise_transaction_batch_response.rb +17 -0
  32. data/lib/moneta/api/responses/authorise_transaction_response.rb +10 -0
  33. data/lib/moneta/api/responses/cancel_transaction_batch_response.rb +17 -0
  34. data/lib/moneta/api/responses/cancel_transaction_response.rb +10 -0
  35. data/lib/moneta/api/responses/confirm_transaction_batch_response.rb +17 -0
  36. data/lib/moneta/api/responses/confirm_transaction_response.rb +10 -0
  37. data/lib/moneta/api/responses/create_account_response.rb +19 -0
  38. data/lib/moneta/api/responses/find_account_by_alias_response.rb +16 -0
  39. data/lib/moneta/api/responses/find_account_by_id_response.rb +16 -0
  40. data/lib/moneta/api/responses/find_accounts_list_response.rb +15 -0
  41. data/lib/moneta/api/responses/find_last_operations_list_response.rb +12 -0
  42. data/lib/moneta/api/responses/find_operations_list_response.rb +12 -0
  43. data/lib/moneta/api/responses/forecast_transaction_response.rb +16 -0
  44. data/lib/moneta/api/responses/get_account_payment_password_challenge_response.rb +16 -0
  45. data/lib/moneta/api/responses/get_operation_details_by_id_response.rb +15 -0
  46. data/lib/moneta/api/responses/invoice_batch_response.rb +17 -0
  47. data/lib/moneta/api/responses/invoice_response.rb +10 -0
  48. data/lib/moneta/api/responses/payment_response.rb +10 -0
  49. data/lib/moneta/api/responses/refund_response.rb +10 -0
  50. data/lib/moneta/api/responses/transfer_response.rb +9 -0
  51. data/lib/moneta/api/responses/verify_payment_response.rb +10 -0
  52. data/lib/moneta/api/responses/verify_transaction_response.rb +10 -0
  53. data/lib/moneta/api/responses/verify_transfer_response.rb +10 -0
  54. data/lib/moneta/api/service.rb +18 -0
  55. data/lib/moneta/api/service_methods.rb +150 -0
  56. data/lib/moneta/api/types/account_access_info.rb +24 -0
  57. data/lib/moneta/api/types/account_info.rb +72 -0
  58. data/lib/moneta/api/types/authorise_transaction_batch_request_type.rb +47 -0
  59. data/lib/moneta/api/types/authorise_transaction_request_type.rb +19 -0
  60. data/lib/moneta/api/types/cancel_transaction_batch_request_type.rb +42 -0
  61. data/lib/moneta/api/types/cancel_transaction_batch_response_type.rb +29 -0
  62. data/lib/moneta/api/types/cancel_transaction_request_type.rb +24 -0
  63. data/lib/moneta/api/types/cancel_transaction_response_type.rb +20 -0
  64. data/lib/moneta/api/types/confirm_transaction_batch_request_type.rb +47 -0
  65. data/lib/moneta/api/types/confirm_transaction_request_type.rb +53 -0
  66. data/lib/moneta/api/types/entity.rb +15 -0
  67. data/lib/moneta/api/types/find_operations_list_request_filter.rb +102 -0
  68. data/lib/moneta/api/types/forecast_transaction_response_type.rb +52 -0
  69. data/lib/moneta/api/types/invoice_batch_request_type.rb +46 -0
  70. data/lib/moneta/api/types/invoice_request_type.rb +49 -0
  71. data/lib/moneta/api/types/key_value_attribute.rb +18 -0
  72. data/lib/moneta/api/types/operation_info.rb +88 -0
  73. data/lib/moneta/api/types/operation_info_batch_response_type.rb +27 -0
  74. data/lib/moneta/api/types/operation_info_list.rb +41 -0
  75. data/lib/moneta/api/types/pager.rb +22 -0
  76. data/lib/moneta/api/types/payment_request_type.rb +58 -0
  77. data/lib/moneta/api/types/transaction_batch_response_type.rb +29 -0
  78. data/lib/moneta/api/types/transaction_request_type.rb +55 -0
  79. data/lib/moneta/api/types/transaction_response_type.rb +28 -0
  80. data/lib/moneta/api/types/verify_transaction_response_type.rb +18 -0
  81. data/lib/moneta/api/types/verify_transfer_response_type.rb +32 -0
  82. data/lib/moneta/api/version.rb +5 -0
  83. data/lib/moneta/api.rb +23 -0
  84. data/moneta-api.gemspec +31 -0
  85. data/spec/lib/moneta/api/requests/authorise_transaction_batch_request_spec.rb +71 -0
  86. data/spec/lib/moneta/api/requests/authorise_transaction_request_spec.rb +22 -0
  87. data/spec/lib/moneta/api/requests/create_account_request_spec.rb +16 -0
  88. data/spec/lib/moneta/api/requests/find_operations_list_request_spec.rb +23 -0
  89. data/spec/lib/moneta/api/requests/forecast_transaction_request_spec.rb +19 -0
  90. data/spec/lib/moneta/api/requests/get_account_payment_password_challenge_request_spec.rb +15 -0
  91. data/spec/lib/moneta/api/requests/payment_request_spec.rb +22 -0
  92. data/spec/lib/moneta/api/requests/transfer_request_spec.rb +19 -0
  93. data/spec/lib/moneta/api/response/find_account_by_id_spec.rb +10 -0
  94. data/spec/lib/moneta/api/service_spec.rb +9 -0
  95. data/spec/lib/moneta/api/types/operation_info_spec.rb +23 -0
  96. data/spec/spec_helper.rb +36 -0
  97. data/spec/support/matchers.rb +7 -0
  98. data/spec/support/wsdl +7743 -0
  99. data/spec/vcr/moneta_api_requests_authorisetransactionbatchrequest/use_when_one_operation_transaction_transaction_.yml +10790 -0
  100. data/spec/vcr/moneta_api_requests_authorisetransactionbatchrequest/use_when_two_operations_transaction_first_transaction_.yml +10790 -0
  101. data/spec/vcr/moneta_api_requests_authorisetransactionrequest_authorise_transaction/should_success.yml +10790 -0
  102. data/spec/vcr/moneta_api_requests_createaccountrequest/create_account_account_id_.yml +10789 -0
  103. data/spec/vcr/moneta_api_requests_findoperationslistrequest/find_operations_list_account_id_.yml +10794 -0
  104. data/spec/vcr/moneta_api_requests_forecasttransactionrequest/forecast_transaction_payer_currency_.yml +10802 -0
  105. data/spec/vcr/moneta_api_requests_getaccountpaymentpasswordchallengerequest/get_account_payment_password_challenge_.yml +10790 -0
  106. data/spec/vcr/moneta_api_requests_paymentrequest/payment_should_success.yml +10789 -0
  107. data/spec/vcr/moneta_api_requests_transferrequest/transfer_status_.yml +10789 -0
  108. data/spec/vcr/moneta_api_service_find_account_by_id/account_id_.yml +10789 -0
  109. metadata +302 -0
@@ -0,0 +1,17 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос регистрации операций в пакетном режиме.
5
+ # Transactions authorisation response in batch processing mode.
6
+
7
+ class AuthoriseTransactionBatchResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Array[Moneta::Api::Types::OperationInfoBatchResponseType]] Детали проведенных операций, либо описание ошибок, если операция не проведена.
11
+ # Порядок соответствует набору операций, переданных в AuthoriseTransactionBatchRequest.
12
+ # / Either transaction details or error description in order of appearance in corresponding request.
13
+ property :transaction, Moneta::Api::Types::OperationInfoBatchResponseType
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос регистрации операции.
5
+ # Transaction authorisation response.
6
+
7
+ class AuthoriseTransactionResponse < Types::OperationInfo; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос CancelTransactionBatchRequest.
5
+ # Transactions cancelation response in batch processing mode.
6
+
7
+ class CancelTransactionBatchResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Array[Moneta::Api::Types::CancelTransactionBatchResponseType]] Детали проведенных операций, либо описание ошибок, если операция не проведена.
11
+ # Порядок соответствует набору операций, переданных в CancelTransactionBatchRequest.
12
+ # / Either transaction details or error description in order of appearance in corresponding request.
13
+ property :transaction, Types::CancelTransactionBatchResponseType
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос CancelTransactionRequest.
5
+ # Transaction cancelation response.
6
+
7
+ class CancelTransactionResponse < Types::CancelTransactionResponseType; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос завершения операций в пакетном режиме.
5
+ # Transactions confirmation response in batch processing mode.
6
+
7
+ class ConfirmTransactionBatchResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Moneta::Api::Types::OperationInfoBatchResponseType] Детали проведенных операций, либо описание ошибок, если операция не проведена.
11
+ # Порядок соответствует набору операций, переданных в ConfirmTransactionBatchRequest.
12
+ # / Either transaction details or error description in order of appearance in corresponding request.
13
+ property :transaction, Types::OperationInfoBatchResponseType
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Запрос на завершение (подтверждение) операции.
5
+ # Transaction confirmation request.
6
+
7
+ class ConfirmTransactionResponse < Types::OperationInfo; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ class CreateAccountResponse
5
+ include Moneta::Api::DataMapper
6
+
7
+ # @return [String] Номер счета в системе МОНЕТА.РУ
8
+ # Account number
9
+ property :account_id
10
+
11
+ def fill(response)
12
+ @account_id = response
13
+
14
+ self
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,16 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ, который приходит на запрос FindAccountByAliasRequest.
5
+ # В ответе содержится информация по счету.
6
+ # Account searching by account alias response. Response contains Account information.
7
+
8
+ class FindAccountByAliasResponse
9
+ include Moneta::Api::DataMapper
10
+
11
+ # @return [Moneta::Api::Types::AccountInfo]
12
+ property :account, Moneta::Api::Types::AccountInfo
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ, который приходит на запрос FindAccountByIdRequest.
5
+ # В ответе содержится информация по счету.
6
+ # Account searching by account number response. Response contains Account information.
7
+
8
+ class FindAccountByIdResponse
9
+ include Moneta::Api::DataMapper
10
+
11
+ # @return [Moneta::Api::Types::AccountInfo]
12
+ property :account, Moneta::Api::Types::AccountInfo
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ class FindAccountsListResponse
5
+ # Ответ, который содержит список счетов.
6
+ # Accounts searching response containing the list of accounts.
7
+
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return[Array[Moneta::Api::Types::AccountInfo]]
11
+ property :account, Moneta::Api::Types::AccountInfo
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос FindLastOperationsListRequest.
5
+ # В результате возвращается список последних операций.
6
+ # Transaction searching response.
7
+ # Result contains last transactions list.
8
+
9
+ class FindLastOperationsListResponse < Moneta::Api::Types::OperationInfoList; end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос FindOperationsListRequest.
5
+ # В результате возвращается список операций, разбитый по страницам.
6
+ # Transaction searching response.
7
+ # Result contains paged transactions list.
8
+
9
+ class FindOperationsListResponse < Types::OperationInfoList; end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос предварительного расчета сумм и комиссий.
5
+ # Может использоваться для информирования пользователя о приблизительной сумме и комиссии операции.
6
+ # Фактические значения могут отличаться, если к моменту проведения операции
7
+ # доступны новые правила тарификации или новые курсы обмена валют.
8
+ # Response for preliminary calculation request.
9
+ # May be used for informing users with approximate amount and fee of transaction.
10
+ # Actual values may differ if newer financial rules and currency exchange rates
11
+ # are available at the moment of transaction processing.
12
+
13
+ class ForecastTransactionResponse < Types::ForecastTransactionResponseType; end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ содержит строку запроса для платежного пароля
5
+ # Response contains of challenge string for payment password
6
+
7
+ class GetAccountPaymentPasswordChallengeResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [String] Запрос для платежного пароля
11
+ # / Challenge of payment password
12
+ property :payment_password_challenge
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос получения информации по операции.
5
+ # Transaction information response.
6
+
7
+ class GetOperationDetailsByIdResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Moneta::Api::Types::OperationInfo]
11
+ property :operation, Types::OperationInfo
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на выставление счета к оплате в пакетном режиме.
5
+ # Invoice registration response in batch processing mode.
6
+
7
+ class InvoiceBatchResponse
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Moneta::Api::Types::TransactionBatchResponseType] Детали проведенных операций, либо описание ошибок, если операция не проведена.
11
+ # Порядок соответствует набору операций, переданных в InvoiceBatchRequest.
12
+ # / Either transaction details or error description in order of appearance in corresponding request.
13
+ property :transaction, Types::TransactionBatchResponseType
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на выставление счета к оплате.
5
+ # Invoice registration response.
6
+
7
+ class InvoiceResponse < Types::TransactionResponseType; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос перевода денежных средств.
5
+ # Money transfer registration response.
6
+
7
+ class PaymentResponse < Types::OperationInfo; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ по запросу возврата средств, содержащий информацию по возвратной операции.
5
+ # Response containing refund transaction information.
6
+
7
+ class RefundResponse < Types::OperationInfo; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос перевода денежных средств.
5
+ # Money transfer registration response.
6
+ class TransferResponse < Types::TransactionResponseType; end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос проверки проведения операции в системе МОНЕТА.РУ
5
+ # Transaction verification response.
6
+
7
+ class VerifyPaymentResponse < Moneta::Api::Types::VerifyTransactionResponseType; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос проверки проведения операции в системе МОНЕТА.РУ
5
+ # Transaction verification response.
6
+
7
+ class VerifyTransactionResponse < Moneta::Api::Types::VerifyTransactionResponseType; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Moneta
2
+ module Api
3
+ module Responses
4
+ # Ответ на запрос проверки проведения операции в системе МОНЕТА.РУ
5
+ # Transaction verification response.
6
+
7
+ class VerifyTransferResponse < Types::VerifyTransferResponseType; end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,18 @@
1
+ module Moneta
2
+ module Api
3
+ class Service
4
+ include ServiceMethods
5
+ attr_reader :client
6
+
7
+ def initialize(username, password, params = {})
8
+ @client = Savon.client(prepare_params(username, password, params))
9
+ end
10
+
11
+ private
12
+
13
+ def prepare_params(username, password, params)
14
+ { wsdl: 'https://demo.moneta.ru/services.wsdl', wsse_auth: [ username, password ] }
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,150 @@
1
+ module Moneta
2
+ module Api
3
+ module ServiceMethods
4
+ # @param [Moneta::Api::Requests::AuthoriseTransactionRequest]
5
+ # @return [Moneta::Api::Responses::AuthoriseTransactionResponse]
6
+ def authorise_transaction(request)
7
+ call(__method__, request.to_hash)
8
+ end
9
+
10
+ # @param [Moneta::Api::Requests::AuthoriseTransactionBatchRequest]
11
+ # @return [Moneta::Api::Responses::AuthoriseTransactionBatchResponse]
12
+ def authorise_transaction_batch(request)
13
+ call(__method__, request.to_hash)
14
+ end
15
+
16
+ # @param [Moneta::Api::Requests::CancelTransactionRequest]
17
+ # @return [Moneta::Api::Responses::CancelTransactionResponse]
18
+ def cancel_transaction(request)
19
+ call(__method__, request.to_hash)
20
+ end
21
+
22
+ # @param [Moneta::Api::Requests::CancelTransactionBatchRequest]
23
+ # @return [Moneta::Api::Responses::CancelTransactionBatchResponse]
24
+ def cancel_transaction_batch(request)
25
+ call(__method__, request.to_hash)
26
+ end
27
+
28
+ # @param [Moneta::Api::Requests::ConfirmTransactionRequest]
29
+ # @return [Moneta::Api::Responses::ConfirmTransactionResponse]
30
+ def confirm_transaction(request)
31
+ call(__method__, request.to_hash)
32
+ end
33
+
34
+ # @param [Moneta::Api::Requests::ConfirmTransactionBatchRequest]
35
+ # @return [Moneta::Api::Responses::ConfirmTransactionBatchResponse]
36
+ def confirm_transaction_batch(request)
37
+ call(__method__, request.to_hash)
38
+ end
39
+
40
+ # @param [Moneta::Api::Requests::CreateAccountRequest]
41
+ # @return [Moneta::Api::Responses::CreateAccountResponse]
42
+ def create_account(request)
43
+ call(__method__, request.to_hash)
44
+ end
45
+
46
+ # @param [String]
47
+ # @return [Moneta::Api::Responses::FindAccountByAliasResponse]
48
+ def find_account_by_alias(request)
49
+ call(__method__, request)
50
+ end
51
+
52
+ # @param [Moneta::Api::Requests::FindAccountsListRequest]
53
+ # @return [Moneta::Api::Responses::FindAccountsListResponse]
54
+ def find_accounts_list(request)
55
+ call(__method__, request.to_hash)
56
+ end
57
+
58
+ # @param [Moneta::Api::Requests::FindOperationsListRequest]
59
+ # @return [Moneta::Api::Responses::FindOperationsListResponse]
60
+ def find_operations_list(request)
61
+ call(__method__, request.to_hash)
62
+ end
63
+
64
+ # @param [Moneta::Api::Requests::ForecastTransactionRequest]
65
+ # @return [Moneta::Api::Responses::ForecastTransactionResponse]
66
+ def forecast_transaction(request)
67
+ call(__method__, request.to_hash)
68
+ end
69
+
70
+ # @param [Integer]
71
+ # @return [Moneta::Api::Responses::FindAccountByIdResponse]
72
+ def find_account_by_id(id)
73
+ call(__method__, id)
74
+ end
75
+
76
+ # @param [Moneta::Api::Requests::FindLastOperationsListRequest]
77
+ # @return [Moneta::Api::Responses::FindLastOperationsListResponse]
78
+ def find_last_operations_list(request)
79
+ call(__method__, request.to_hash)
80
+ end
81
+
82
+ # @param [Moneta::Api::Requests::GetAccountPaymentPasswordChallengeRequest]
83
+ # @return [Moneta::Api::Responses::GetAccountPaymentPasswordChallengeResponse]
84
+ def get_account_payment_password_challenge(request)
85
+ call(__method__, request.to_hash)
86
+ end
87
+
88
+ # @param [Integer]
89
+ # @return [Moneta::Api::Responses::GetOperationDetailsByIdResponse]
90
+ def get_operation_details_by_id(id)
91
+ call(__method__, id)
92
+ end
93
+
94
+ # @param [Moneta::Api::Requests::InvoiceRequest]
95
+ # @return [Moneta::Api::Responses::InvoiceResponse]
96
+ def invoice(request)
97
+ call(__method__, request.to_hash)
98
+ end
99
+
100
+ # @param [Moneta::Api::Requests::InvoiceBatchRequest]
101
+ # @return [Moneta::Api::Responses::InvoiceBatchResponse]
102
+ def invoice_batch(request)
103
+ call(__method__, request.to_hash)
104
+ end
105
+
106
+ # @param [Moneta::Api::Requests::RefundRequest]
107
+ # @return [Moneta::Api::Responses::RefundResponse]
108
+ def refund(request)
109
+ call(__method__, request.to_hash)
110
+ end
111
+
112
+ # @param [Moneta::Api::Requests::TransferRequest]
113
+ # @return [Moneta::Api::Responses::TransferResponse]
114
+ def transfer(request)
115
+ call(__method__, request.to_hash)
116
+ end
117
+
118
+ # @param [Moneta::Api::Requests::PaymentRequest]
119
+ # @return [Moneta::Api::Responses::PaymentResponse]
120
+ def payment(request)
121
+ call(__method__, request.to_hash)
122
+ end
123
+
124
+ # @param [Moneta::Api::Requests::VerifyPaymentRequest]
125
+ # @return [Moneta::Api::Responses::VerifyPaymentResponse]
126
+ def verify_payment(request)
127
+ call(__method__, request.to_hash)
128
+ end
129
+
130
+ # @param [Moneta::Api::Requests::VerifyTransferRequest]
131
+ # @return [Moneta::Api::Responses::VerifyTransferResponse]
132
+ def verify_transfer(request)
133
+ call(__method__, request.to_hash)
134
+ end
135
+
136
+ # @param [Moneta::Api::Requests::VerifyTransactionRequest]
137
+ # @return [Moneta::Api::Responses::VerifyTransactionResponse]
138
+ def verify_transaction(request)
139
+ call(__method__, request.to_hash)
140
+ end
141
+
142
+ private
143
+
144
+ def call(method, request_message)
145
+ response = client.call(method, { message: request_message })
146
+ ResponseFactory.build(response)
147
+ end
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,24 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий доступ к счету.
5
+ # Account access description type.
6
+
7
+ class AccountAccessInfo
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [Boolean] Доступ на изменение свойств счета
11
+ # / Account attributes modification access
12
+ property :access_to_write
13
+
14
+ # @return [Boolean] Доступ на снятие средств со счета
15
+ # / Account debiting access
16
+ property :access_to_taken_out
17
+
18
+ # @return [Boolean] Доступ на зачисление средств на счет
19
+ # / Account crediting access
20
+ property :access_to_taken_in
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,72 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий атрибуты счета в системе МОНЕТА.РУ.
5
+ # Account information container type.
6
+
7
+ class AccountInfo
8
+ include Moneta::Api::DataMapper
9
+
10
+ # @return [String] Номер счета в системе МОНЕТА.РУ
11
+ # / Account number
12
+ property :id
13
+
14
+ # @return [String] Валюта данного счета
15
+ # / Currency of account
16
+ property :currency
17
+
18
+ # @return [Float] Баланс на данном счете
19
+ # / Current balance of account
20
+ property :balance
21
+
22
+ # @return [Float] Доступный баланс на данном счете
23
+ # / Available balance of account
24
+ property :available_balance
25
+
26
+ # @return [Integer] Тип счета в системе МОНЕТА.РУ
27
+ # / Type of account
28
+ property :type
29
+
30
+ # @return [String] Название счета в системе МОНЕТА.РУ. Необязательное поле
31
+ # / Alias of account. Optional.
32
+ property :alias
33
+
34
+ # @return [String] URL после списания средств. Необязательное поле.
35
+ # / URL on debiting. Optional.
36
+ property :on_successful_debit_url
37
+
38
+ # @return [String] URL после зачисления средств. Необязательное поле.
39
+ # / URL on crediting. Optional.
40
+ property :on_successful_credit_url
41
+
42
+ # @return [String] Код проверки целостности данных. Необязательное поле.
43
+ # / Payment form data integrity signature. Optional.
44
+ property :signature
45
+
46
+ # @return [Float] Если баланс счета меньше данного значения, то раз в сутки уходит уведомление об этом событии. Необязательное поле.
47
+ # / Daily notifications if balance is less than threshold. Optional.
48
+ property :low_balance_threshold
49
+
50
+ # @return [Float] Если баланс счета больше данного значения, то раз в сутки уходит уведомление об этом событии. Необязательное поле.
51
+ # / Daily notifications if balance is greater than threshold. Optional.
52
+ property :high_balance_threshold
53
+
54
+ # @return [AccountAccessInfo] Информация о доступе к счету. Информация отдается, если счет является делегированным. Необязательное поле.
55
+ # / Account access information. Available if the account is delegated, otherwise omitted. Optional.
56
+ property :account_access, Moneta::Api::Types::AccountAccessInfo
57
+
58
+ # @return [Integer] Счет-прототип с которого берутся свойства "по умолчанию". Необязательное поле.
59
+ # / Prototype account for default properties values. Optional.
60
+ property :prototype_account_id
61
+
62
+ # @return [String] URL после отмены списания средств. Необязательное поле.
63
+ # / URL on cancelled debit. Optional.
64
+ property :on_cancelled_debit_url
65
+
66
+ # @return [String] URL после отмены зачисления средств. Необязательное поле.
67
+ # / URL on cancelled credit. Optional.
68
+ property :on_cancelled_credit_url
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,47 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ # Тип, описывающий параметры операции в запросах в пакетном режиме.
5
+ # Transaction parameters type for requests in batch processing mode.
6
+
7
+ class AuthoriseTransactionBatchRequestType < Entity
8
+ # @return [Boolean] Флаг, указывающий выполнять ли все денежные переводы в одной транзакции.
9
+ # Если transactional = true, то:
10
+ # при возникновении ошибки все проведенные операции будут отменены
11
+ # можно проводить только операции со счетами монеты. Нельзя выводить деньги на внешние платежные системы.
12
+ # Если transactional = false, то:
13
+ # при возникновении ошибки все проведенные операции будут сохранены
14
+ # можно проводить любые операции, которые доступны в TransferRequest
15
+ # если выставить флаг exitOnFailure = false, то при возникновении ошибки можно пропустить операцию
16
+ # и продолжить выполнение операций дальше
17
+ # / Joining all transfers in batch processing into one transaction. True -- all processed transfers will be rolled back on exceptions, no external transfers are allowed. False -- only current transfer rolled back on exceptions, external transfers are allowed.
18
+ property :transactional
19
+
20
+ # @return [Boolean] Флаг, указывающий прерывать ли выполнение пакета операций, если произошла ошибка.
21
+ # Используется только при transactional = false
22
+ # / Stops batch processing on exceptions. Used only in conjunction with transactional=false.
23
+ property :exit_on_failure
24
+
25
+ # @return [Array[Moneta::Api::Types::Entity*]] Набор операций, которые необходимо выполнить в одном пакете.
26
+ # Операции выполняются в том порядке, в котором они переданы в запросе.
27
+ # / Set of transfers to be processed in one batch. Processed in order of appearance.
28
+ property :transaction
29
+
30
+ # Набор операций, которые необходимо выполнить в одном пакете.
31
+ # Операции выполняются в том порядке, в котором они переданы в запросе.
32
+ # / Set of transfers to be processed in one batch. Processed in order of appearance.
33
+ #
34
+ # @param [Moneta::Api::Types::Entity*]
35
+ # @return void
36
+ def add_transaction(item)
37
+ parents = item.class.ancestors
38
+ if parents.include?(Moneta::Api::Types::Entity)
39
+ (@transaction ||=[]).push(item)
40
+ else
41
+ raise TypeError.new("TypeError: #{ item.class } have not parent Moneta::Api::Types::Entity")
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end