Gem Version Build Status Code Climate Test Coverage Inline docs

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

moneta-api

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

Установка

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

gem 'moneta-api'

И выполните:

$ bundle

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

$ gem install moneta-api

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

Базовый пример

  require 'moneta/api'

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

  # перевод
  transfer_request = Moneta::Api::Requests::TransferRequest.new.tap do |request|
    request.payee = 28988504
    request.payer = 10999
    request.amount = 10
    request.is_payer_amount = false
    request.payment_password = '123456'
  end
  response = service.transfer(transfer_request)

  # данные транзакции
  puts response.class.name
  # => 'Moneta::Api::Responses::TransferResponse'
  puts response.status
  # => 'SUCCEED'

  # проверить данные счета
  response = service.(10999)
  puts "Баланс после пополнения: #{ response..balance} #{ response..currency }"
  # => 'Баланс после пополнения: 110 RUB'

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

Настройки

Logger

  Moneta::Api::Service.new('username', 'password', {
    logger: Rails.logger,
    log_level: :info,
    log: true,
    filters: [:password]
  })

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

Название Описание
:logger moneta-api по умолчанию пишет логи в $STDOUT с помощью ruby Logger'а. Можно переопределить на любой другой Logger. (прим: Rails.logger)
:log_level Используется для фильтрации вывода в log по приоритету. Допускаются следующие значения - :info, :debug, :warn, :error, :fatal.
:log Определяет, нужно ли писать в log. (true или false)
:filters Конфиденциальная информация, которую не следует писать в log.
:pretty_print_xml Определяет, нужно ли выводить в log XML запроса\ответа. (true или false)

Demo режим

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

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

Contributing

  1. Стандартная схема с pull-request workflow
  2. Для локального запуска тестов необходимо создать конфигурационный файл со своими demo доступами bash echo "username: 'username'\npassword: 'password'" > spec/support/moneta.yml