Project

yookassa

0.02
No release in over 3 years
Low commit activity in last 3 years
Yookassa API SDK for Ruby
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 5.0.1
 Project Readme

YooKassa API Ruby Client

Github Actions Gem Version License

Installation

Add this line to your application's Gemfile:

gem 'yookassa'

And then execute:

$ bundle

Or install it yourself as:

$ gem install yookassa

Usage

Configuration

First of all you need to setup credentials to use Yookassa. You can configure your instance of Yookassa once in a application booting time. Ex. if you use rails, just put these lines into initializer file

# config/initializers/yookassa.rb

Yookassa.configure do |config|
  config.shop_id = ENV.fetch('YOOKASSA_SHOP_ID') # or put your shop_id and api_key here directly
  config.api_key = ENV.fetch('YOOKASSA_API_KEY') # can be taken from Rails.credentials too
end

There are some cases, when you need to connect to different Yookassa accounts (say, your clients need to connect to Yookassa). That probably means that you run a marketplace or multitenant system. There is a solution for this one from Yookassa, see https://yookassa.ru/en/developers/special-solutions/checkout-for-platforms/basics or https://yookassa.ru/en/developers/partners-api/basics

If that is not your case, and you still have multiple shop_ids and api_keys, and need to handle all of them under one application, then you need to instantiate clients inline

client1 = Yookassa::Payments.new(shop_id: 'shop_1', api_key: '123')
client2 = Yookassa::Payments.new(shop_id: 'shop_2', api_key: '456')

Making Payments

Creating payment

payload = {
    amount: {
        value:    100,
        currency: 'RUB'
    },
    capture:      true,
    confirmation: {
        type:       'redirect',
        return_url: return_url
    }
}

payment = Yookassa.payments.create(payment: payload)

# or

payments = Yookassa::Payments.new(shop_id: 'shop_1', api_key: '123')
payment = payments.create(payment: payload)

Other payment requests

Yookassa.payments.find(payment_id: '12345')
Yookassa.payments.capture(payment_id: '12345')
Yookassa.payments.cancel(payment_id: '12345')

Path to 1.0

Настройки SDK API ЮKassa

  • Аутентификация
  • Статистические данные об используемом окружении
  • Получение информации о магазине
  • Работа с Webhook
  • Входящие уведомления

Работа с платежами

  • Запрос на создание платежа
  • Запрос на создание платежа через билдер
  • Запрос на частичное подтверждение платежа
  • Запрос на отмену незавершенного платежа
  • Получить информацию о платеже
  • Получить список платежей с фильтрацией
  • Контракт на добавление платежа
  • Запись реальных валидных и невалидных запросов и ответов

Работа с возвратами

  • Запрос на создание возврата
  • Запрос на создание возврата через билдер
  • Получить информацию о возврате
  • Получить список возвратов с фильтрацией
  • Контракт на добавление возврата
  • Запись реальных валидных и невалидных запросов и ответов

Работа с чеками

  • Запрос на создание чека
  • Запрос на создание чека через билдер
  • Получить информацию о чеке
  • Получить список чеков с фильтрацией
  • Контракт на добавление возврата
  • Запись реальных валидных и невалидных запросов и ответов

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

License

The gem is available as open source under the terms of the MIT License.