0.0
No release in over 3 years
Low commit activity in last 3 years
Simple and flexible Sberbank acquiring API client for Ruby
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

 Project Readme

Sberbank Merchant

Build Status Gem Version Code Climate Test Coverage

Ruby клиент для работы с платёжным шлюзом Сбербанка.

Ключевые особенности:

  • Простой (~200 LOC).
  • Расширяемый из коробки. Если В API появится новый метод то данный клиент будет его поддерживать без каких либо правок в исходный код
  • Написан в ОО стиле без "магии". Легко встроится в ваши сервисные объекты и юнит тесты

Содержание

  • Установка
  • Документация
  • Примеры использования
    • Регистрация заказа
    • Замена HTTP клиента
    • Замена JSON парсера

Установка

RubyGems.org

% gem install sbrf_merchant

Bundler

# Gemfile
gem 'sbrf_merchant'

Документация к API

Примеры использования

Регистрация заказа

# Cоздаем клиент
client = SBRF::Api::Client.new(
  user_name: '<Merchant Username>',
  password: '<Merchant Password>',
  host: '<Sberbank API Host>' # например https://3dsec.sberbank.ru
)

# Вызываем метод API.
# :register - название метода согласно документации Cбербанка в snake_case.
# Далее параметры запроса. Имена передаются в snake_case,
# перед отправкой запроса все параметры приведутся к camelCase.

params = {
  amount: 100,
  order_number: "something_unique_string",
  return_url: 'localhost:3000'
}
response = client.call(:register, **params)

response.success? # => true
# В ответе доступ к атрибутам в snake_case
response.order_id #<order-id>

# Пример запроса 'получить информацию о заказе
client.call(:get_order_status, order_id: response.order_id)

Замена HTTP клиента

По умолчанию гем использует Net::Http для отправки HTTP запросов. Если в вашем проекте используется другой Http клиент, например Faraday то нужно реализовать callable класс или Proc и передать его в конструктор:

client = SBRF::Api::Client.new(
  user_name: '<Merchant Username>',
  password: '<Merchant Password>',
  host: '<Sberbank API Host>', # например https://3dsec.sberbank.ru',
  http_client: ->(uri, params) { Faraday.post(uri, params) }
)

Замена JSON парсера

По умолчанию гем использует классJSON для парсинга JSON строк. Если в вашем проекте используется другой парсер, например Oj то нужно реализовать callable класс или Proc и передать его в конструктор:

client = SBRF::Api::Client.new(
  user_name: '<Merchant Username>',
  password: '<Merchant Password>',
  host: '<Sberbank API Host>', # например https://3dsec.sberbank.ru',
  json_parser: ->(json) { Oj.load(json, symbol_keys: true) }
)

Copyright

Copyright (c) 2018-2020 Eugene Kozlov.