moneta-api 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +16 -0
- data/.rspec +3 -0
- data/.yardopts +6 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +31 -0
- data/Rakefile +2 -0
- data/lib/moneta/api/data_mapper.rb +91 -0
- data/lib/moneta/api/requests/authorise_transaction_batch_request.rb +9 -0
- data/lib/moneta/api/requests/authorise_transaction_request.rb +15 -0
- data/lib/moneta/api/requests/cancel_transaction_batch_request.rb +10 -0
- data/lib/moneta/api/requests/cancel_transaction_request.rb +14 -0
- data/lib/moneta/api/requests/confirm_transaction_batch_request.rb +10 -0
- data/lib/moneta/api/requests/confirm_transaction_request.rb +9 -0
- data/lib/moneta/api/requests/create_account_request.rb +65 -0
- data/lib/moneta/api/requests/find_accounts_list_request.rb +38 -0
- data/lib/moneta/api/requests/find_last_operations_list_request.rb +24 -0
- data/lib/moneta/api/requests/find_operations_list_request.rb +26 -0
- data/lib/moneta/api/requests/forecast_transaction_request.rb +9 -0
- data/lib/moneta/api/requests/get_account_payment_password_challenge_request.rb +16 -0
- data/lib/moneta/api/requests/invoice_batch_request.rb +10 -0
- data/lib/moneta/api/requests/invoice_request.rb +10 -0
- data/lib/moneta/api/requests/payment_request.rb +9 -0
- data/lib/moneta/api/requests/refund_request.rb +42 -0
- data/lib/moneta/api/requests/transfer_request.rb +9 -0
- data/lib/moneta/api/requests/verify_payment_request.rb +10 -0
- data/lib/moneta/api/requests/verify_transaction_request.rb +51 -0
- data/lib/moneta/api/requests/verify_transfer_request.rb +10 -0
- data/lib/moneta/api/response_factory.rb +22 -0
- data/lib/moneta/api/responses/authorise_transaction_batch_response.rb +17 -0
- data/lib/moneta/api/responses/authorise_transaction_response.rb +10 -0
- data/lib/moneta/api/responses/cancel_transaction_batch_response.rb +17 -0
- data/lib/moneta/api/responses/cancel_transaction_response.rb +10 -0
- data/lib/moneta/api/responses/confirm_transaction_batch_response.rb +17 -0
- data/lib/moneta/api/responses/confirm_transaction_response.rb +10 -0
- data/lib/moneta/api/responses/create_account_response.rb +19 -0
- data/lib/moneta/api/responses/find_account_by_alias_response.rb +16 -0
- data/lib/moneta/api/responses/find_account_by_id_response.rb +16 -0
- data/lib/moneta/api/responses/find_accounts_list_response.rb +15 -0
- data/lib/moneta/api/responses/find_last_operations_list_response.rb +12 -0
- data/lib/moneta/api/responses/find_operations_list_response.rb +12 -0
- data/lib/moneta/api/responses/forecast_transaction_response.rb +16 -0
- data/lib/moneta/api/responses/get_account_payment_password_challenge_response.rb +16 -0
- data/lib/moneta/api/responses/get_operation_details_by_id_response.rb +15 -0
- data/lib/moneta/api/responses/invoice_batch_response.rb +17 -0
- data/lib/moneta/api/responses/invoice_response.rb +10 -0
- data/lib/moneta/api/responses/payment_response.rb +10 -0
- data/lib/moneta/api/responses/refund_response.rb +10 -0
- data/lib/moneta/api/responses/transfer_response.rb +9 -0
- data/lib/moneta/api/responses/verify_payment_response.rb +10 -0
- data/lib/moneta/api/responses/verify_transaction_response.rb +10 -0
- data/lib/moneta/api/responses/verify_transfer_response.rb +10 -0
- data/lib/moneta/api/service.rb +18 -0
- data/lib/moneta/api/service_methods.rb +150 -0
- data/lib/moneta/api/types/account_access_info.rb +24 -0
- data/lib/moneta/api/types/account_info.rb +72 -0
- data/lib/moneta/api/types/authorise_transaction_batch_request_type.rb +47 -0
- data/lib/moneta/api/types/authorise_transaction_request_type.rb +19 -0
- data/lib/moneta/api/types/cancel_transaction_batch_request_type.rb +42 -0
- data/lib/moneta/api/types/cancel_transaction_batch_response_type.rb +29 -0
- data/lib/moneta/api/types/cancel_transaction_request_type.rb +24 -0
- data/lib/moneta/api/types/cancel_transaction_response_type.rb +20 -0
- data/lib/moneta/api/types/confirm_transaction_batch_request_type.rb +47 -0
- data/lib/moneta/api/types/confirm_transaction_request_type.rb +53 -0
- data/lib/moneta/api/types/entity.rb +15 -0
- data/lib/moneta/api/types/find_operations_list_request_filter.rb +102 -0
- data/lib/moneta/api/types/forecast_transaction_response_type.rb +52 -0
- data/lib/moneta/api/types/invoice_batch_request_type.rb +46 -0
- data/lib/moneta/api/types/invoice_request_type.rb +49 -0
- data/lib/moneta/api/types/key_value_attribute.rb +18 -0
- data/lib/moneta/api/types/operation_info.rb +88 -0
- data/lib/moneta/api/types/operation_info_batch_response_type.rb +27 -0
- data/lib/moneta/api/types/operation_info_list.rb +41 -0
- data/lib/moneta/api/types/pager.rb +22 -0
- data/lib/moneta/api/types/payment_request_type.rb +58 -0
- data/lib/moneta/api/types/transaction_batch_response_type.rb +29 -0
- data/lib/moneta/api/types/transaction_request_type.rb +55 -0
- data/lib/moneta/api/types/transaction_response_type.rb +28 -0
- data/lib/moneta/api/types/verify_transaction_response_type.rb +18 -0
- data/lib/moneta/api/types/verify_transfer_response_type.rb +32 -0
- data/lib/moneta/api/version.rb +5 -0
- data/lib/moneta/api.rb +23 -0
- data/moneta-api.gemspec +31 -0
- data/spec/lib/moneta/api/requests/authorise_transaction_batch_request_spec.rb +71 -0
- data/spec/lib/moneta/api/requests/authorise_transaction_request_spec.rb +22 -0
- data/spec/lib/moneta/api/requests/create_account_request_spec.rb +16 -0
- data/spec/lib/moneta/api/requests/find_operations_list_request_spec.rb +23 -0
- data/spec/lib/moneta/api/requests/forecast_transaction_request_spec.rb +19 -0
- data/spec/lib/moneta/api/requests/get_account_payment_password_challenge_request_spec.rb +15 -0
- data/spec/lib/moneta/api/requests/payment_request_spec.rb +22 -0
- data/spec/lib/moneta/api/requests/transfer_request_spec.rb +19 -0
- data/spec/lib/moneta/api/response/find_account_by_id_spec.rb +10 -0
- data/spec/lib/moneta/api/service_spec.rb +9 -0
- data/spec/lib/moneta/api/types/operation_info_spec.rb +23 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/support/matchers.rb +7 -0
- data/spec/support/wsdl +7743 -0
- data/spec/vcr/moneta_api_requests_authorisetransactionbatchrequest/use_when_one_operation_transaction_transaction_.yml +10790 -0
- data/spec/vcr/moneta_api_requests_authorisetransactionbatchrequest/use_when_two_operations_transaction_first_transaction_.yml +10790 -0
- data/spec/vcr/moneta_api_requests_authorisetransactionrequest_authorise_transaction/should_success.yml +10790 -0
- data/spec/vcr/moneta_api_requests_createaccountrequest/create_account_account_id_.yml +10789 -0
- data/spec/vcr/moneta_api_requests_findoperationslistrequest/find_operations_list_account_id_.yml +10794 -0
- data/spec/vcr/moneta_api_requests_forecasttransactionrequest/forecast_transaction_payer_currency_.yml +10802 -0
- data/spec/vcr/moneta_api_requests_getaccountpaymentpasswordchallengerequest/get_account_payment_password_challenge_.yml +10790 -0
- data/spec/vcr/moneta_api_requests_paymentrequest/payment_should_success.yml +10789 -0
- data/spec/vcr/moneta_api_requests_transferrequest/transfer_status_.yml +10789 -0
- data/spec/vcr/moneta_api_service_find_account_by_id/account_id_.yml +10789 -0
- 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,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,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,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
|
+
# 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,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
|