Skip to content

Repository files navigation

Gem VersionBuild StatusCode ClimateTest CoverageInline docs

Описание MerchantAPI | RDoc | Список методов

moneta-api

МОНЕТА.РУ (MONETA.MerchantAPI.v2).

Различия между v1 и v2

В целом, версии совместимы друг с другом. Главные отличия:

  • v1 работает с Moneta.ru при помощи SOAP, v2 при помощи JSON.
  • В v1 числа являются строками, в v2 числами (например, значения id).
  • Изменились настройки фильтрации, добавилась настройка log_body, убрались log, pretty_print_xml
  • В аттрибутах ключ-значение (например, результат FindBankAccounts), значение всегда строка. Поэтому например значение поля is_international будет строка "false", а не Boolean false. Это связано с особенностями работы с Moneta.ru при помощи JSON.

Установка

Добавьте эти строки в Gemfile вашего приложения:

gem'moneta-api'

И выполните:

$ bundle

Или установите напрямую:

$ gem install moneta-api

Использование

Есть несколько вариантов работы с сервисами монеты:

  1. API - работа происходит с использованием методов описанных в MONETA.MerchantAPI.v2
  2. FRONT - работа происходит напрямую с интерфейсом монеты.

Примеры работы c API

Получить данные счета

require'moneta/api'# получить данные счетаservice=Moneta::Api::Service.new('username','password',{demo_mode: true})response=service.find_account_by_id(10999)putsresponse.class.name# => 'Moneta::Api::Responses::FindAccountByIdResponse'puts"Баланс: #{response.account.balance}#{response.account.currency}"# => 'Баланс: 100 RUB'

Перевод на другой счет в Монета.ру

transfer_request=Moneta::Api::Requests::TransferRequest.new.tapdo |request|
request.payee=28988504request.payer=10999request.amount=10request.is_payer_amount=falserequest.payment_password='123456'endresponse=service.transfer(transfer_request)# проверить данные счетаresponse=service.find_account_by_id(10999)puts"Баланс после пополнения: #{response.account.balance}#{response.account.currency}"# => 'Баланс после пополнения: 110 RUB'

Вывод денег со счета в QIWI

withdrawal_request=Moneta::Api::Requests::PaymentRequest.build(payer: 28988504,payee: Moneta::Constants::Withdrawal::QIWI,amount: 10,client_transaction: SecureRandom.uuid,payment_password: '123456',is_payer_amount: true)withdraw_to=Moneta::Api::Types::KeyValueAttribute.build(key: 'EXTERNALACCOUNTID',value: qiwi_account)withdrawal_info=Moneta::Api::Types::OperationInfo.newwithdrawal_info.add_attribute(withdraw_to)withdrawal_request.operation_info=withdrawal_infoservice.payment(withdrawal_request)

Полный список методов, с помощью которых вы можете обратиться к MONETA.MerchantAPI.v2

Настройки

Logger

Moneta::Api::Service.new('username','password',{logger: Rails.logger,log_body: true,filter: [[/("availableBalance":)([\d\.]{0,})/,'\1[FILTERED]'],# фильтр доступного баланса кошелька[/("balance":)([\d\.]{0,})/,'\1[FILTERED]'],# фильтр баланса кошелька[/("protectionCode":)("\d+")/,'\1[FILTERED]']# фильтр кода протекции# ...]})

Доступны следующие настройки:

НазваниеОписание
:demo_modeВыполнение операций на демо стенде.
:loggerПо умолчанию логирование не используется. Можно указать конкретный логгер, например Rails.logger.
:log_bodyЛогировать ли тело запроса, по умолчанию выключено.
:open_timeoutТаймаут подключения.
:filterНастройка фильтрации содержимого лога. Пароль пользователя фильтруется всегда.

Demo режим

Для использования тестового сервера (http://demo.moneta.ru) следует инициализировать сервис со специальным флагом

Moneta::Api::Service.new('username','password',{demo_mode: true})

Примеры работы с FRONT (интерфейс монеты)

Получить квинтанцию оплаты в формате PDF

require'moneta/api'certificate=OpenSSL::X509::Certificate.new(File.read('cert_path'))private_key=OpenSSL::PKey::RSA.new(File.read('key_path'),'password')service=Moneta::Front::Service.new(certificate,private_key,{demo_mode: true})service.get_receipt_pdf(468398)# => 'PDF файл'

Полный список методов, с помощью которых вы можете обратиться к интефейсу moneta.ru

Настройки

Для работы с интерфейсом монеты понадобиться получение сертификатов, получение подробно описано в MONETA.MerchantAPI.v2

Параметры:

НазваниеОписание
certificateСертификат пользователя, полученный от монеты.
private_keyПриватный ключ, сгенерированный пользователем.
:demo_modeВыполнение операций на демо стенде.
:open_timeoutТаймаут подключения.
:filterНастройка фильтрации содержимого лога.

Demo режим

Для использования тестового сервера (http://demo.moneta.ru) следует инициализировать сервис со специальным флагом

Moneta::Front::Service.new(certificate,private_key,{demo_mode: true})

Contributing

  1. Стандартная схема с pull-request workflow
  2. Для локального запуска тестов необходимо создать конфигурационный файл со своими demo доступами
 cp spec/support/moneta.example.yml spec/support/moneta.yml

About

МОНЕТА.РУ (MONETA.MerchantAPI.v2)

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages