зеркало из
https://github.com/glebtv/yookassa.git
synced 2026-09-08 20:05:50 +03:00
Initial setup for docs (#22)
* Initial setup for docs * running payments endpoints * documentation for deals and payouts
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
7f79ffa4b4
Коммит
a61bbaf461
128
docs/03-refunds.md
Обычный файл
128
docs/03-refunds.md
Обычный файл
@@ -0,0 +1,128 @@
|
||||
## Работа с возвратами
|
||||
|
||||
С помощью SDK можно возвращать платежи — полностью или частично. Порядок возврата зависит от способа оплаты
|
||||
(`payment_method`) исходного платежа. При оплате банковской картой деньги возвращаются на карту,
|
||||
которая была использована для проведения платежа. [Как проводить возвраты](https://yookassa.ru/developers/payments/refunds)
|
||||
|
||||
Часть способов оплаты (например, наличные) не поддерживают возвраты. [Какие платежи можно вернуть](https://yookassa.ru/developers/payment-methods/overview#all)
|
||||
|
||||
* [Запрос на создание возврата](#Запрос-на-создание-возврата)
|
||||
* [Запрос на создание возврата через билдер](#Запрос-на-создание-возврата-через-билдер)
|
||||
* [Получить информацию о возврате](#Получить-информацию-о-возврате)
|
||||
* [Получить список возвратов с фильтрацией](#Получить-список-возвратов-с-фильтрацией)
|
||||
|
||||
---
|
||||
|
||||
### Запрос на создание возврата
|
||||
|
||||
[Создание возврата в документации](https://yookassa.ru/developers/api?lang=ruby#create_refund)
|
||||
|
||||
Создает возврат успешного платежа на указанную сумму. Платеж можно вернуть только в течение трех лет с момента его создания.
|
||||
Комиссия ЮKassa за проведение платежа не возвращается.
|
||||
|
||||
В ответ на запрос придет объект возврата - `Refund` в актуальном статусе.
|
||||
|
||||
```ruby
|
||||
res = Yookassa.refunds.create({
|
||||
"payment_id": "24e89cb0-000f-5000-9000-1de77fa0d6df",
|
||||
"description": "Не подошел размер",
|
||||
"amount": {
|
||||
"value": "9000.00",
|
||||
"currency": "RUB"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"account_id": "456",
|
||||
"amount": {
|
||||
"value": "9000.00",
|
||||
"currency": "RUB"
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Запрос на создание возврата через билдер
|
||||
|
||||
[Информация о создании возврата в документации](https://yookassa.ru/developers/api?lang=ruby#create_refund)
|
||||
|
||||
Билдер позволяет создать объект платежа — `RefundRequest` программным способом, через объекты.
|
||||
|
||||
```ruby
|
||||
builder = RefundRequestBuilder()
|
||||
builder.set_payment_id('24e89cb0-000f-5000-9000-1de77fa0d6df') \
|
||||
.set_description("Не подошел размер") \
|
||||
.set_amount({"value": 9000.0, "currency": Currency.RUB}) \
|
||||
.set_sources([
|
||||
RefundSource({
|
||||
'account_id': 456,
|
||||
'amount': {
|
||||
'value': 9000.0,
|
||||
'currency': Currency.RUB
|
||||
},
|
||||
"platform_fee_amount": {
|
||||
"value": 10.01,
|
||||
"currency": Currency.RUB
|
||||
}
|
||||
})
|
||||
])
|
||||
|
||||
request = builder.build()
|
||||
# Можно что-то поменять, если нужно
|
||||
request.description = "Не подошел цвет и размер"
|
||||
|
||||
res = Yokassa.refunds.create(request)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Получить информацию о возврате
|
||||
|
||||
[Информация о возврате в документации](https://yookassa.ru/developers/api?lang=ruby#get_refund)
|
||||
|
||||
Запрос позволяет получить информацию о текущем состоянии возврата по его уникальному идентификатору.
|
||||
|
||||
В ответ на запрос придет объект возврата - `Refund` в актуальном статусе.
|
||||
|
||||
```ruby
|
||||
res = Yookassa.refunds.find(refund_id: "7894e5e2-a22e-434b-b6c1-e355ff096d1c")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Получить список возвратов с фильтрацией
|
||||
|
||||
[Список возвратов в документации](https://yookassa.ru/developers/api?lang=ruby#get_refunds_list)
|
||||
|
||||
Запрос позволяет получить список возвратов, отфильтрованный по заданным критериям.
|
||||
|
||||
В ответ на запрос вернется список возвратов с учетом переданных параметров. В списке будет информация о возвратах,
|
||||
созданных за последние 3 года. Список будет отсортирован по времени создания возвратов в порядке убывания.
|
||||
|
||||
Если результатов больше, чем задано в `limit`, список будет выводиться фрагментами. В этом случае в ответе на запрос
|
||||
вернется фрагмент списка и параметр `next_cursor` с указателем на следующий фрагмент.
|
||||
|
||||
```ruby
|
||||
cursor = nil
|
||||
filters = {
|
||||
"limit": 2, # Ограничиваем размер выборки
|
||||
"payment_id": "21b23b5b-000f-5061-a000-0674e49a8c10", # Выбираем только по конкретному платежу
|
||||
"created_at.gte": "2020-08-08T00:00:00.000Z", # Созданы начиная с 2020-08-08
|
||||
"created_at.lt": "2020-10-20T00:00:00.000Z" # И до 2020-10-20
|
||||
}
|
||||
|
||||
def get_items(filters:, next_cursor: nil, items: [])
|
||||
result = Yookassa.refunds.list(filters.merge(next_cursor: next_cursor))
|
||||
accumulated_items = result.items + items
|
||||
|
||||
return accumulated_items if result.next_cursor.nil?
|
||||
|
||||
get_items(filters: filters, next_cursor: result.next_cursor, items: accumulated_items)
|
||||
end
|
||||
|
||||
get_items(filters: filters, next_cursor: cursor)
|
||||
```
|
||||
[Подробнее о работе со списками](https://yookassa.ru/developers/using-api/lists)
|
||||
Ссылка в новой задаче
Block a user