зеркало из
https://github.com/glebtv/yookassa.git
synced 2026-09-08 03:45:51 +03:00
Initial setup for docs (#22)
* Initial setup for docs * running payments endpoints * documentation for deals and payouts
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
7f79ffa4b4
Коммит
a61bbaf461
103
docs/05-deals.md
Обычный файл
103
docs/05-deals.md
Обычный файл
@@ -0,0 +1,103 @@
|
||||
## Работа со сделками
|
||||
|
||||
SDK позволяет создавать сделки, а также получать информацию о них.
|
||||
|
||||
Объект сделки `DealResponse` содержит всю информацию о сделке, актуальную на текущий момент времени.
|
||||
Он формируется при создании сделки и приходит в ответ на любой запрос, связанный со сделками.
|
||||
|
||||
* [Запрос на создание сделки](#Запрос-на-создание-сделки)
|
||||
* [Запрос на создание сделки через билдер](#Запрос-на-создание-сделки-через-билдер)
|
||||
* [Получить информацию о сделке](#Получить-информацию-о-сделке)
|
||||
* [Получить список сделок с фильтрацией](#Получить-список-сделок-с-фильтрацией)
|
||||
|
||||
---
|
||||
|
||||
### Запрос на создание сделки
|
||||
|
||||
[Создание сделки в документации](https://yookassa.ru/developers/api?lang=ruby#create_deal)
|
||||
|
||||
Чтобы создать сделку, необходимо создать объект сделки — `DealRequest`. Он позволяет создать сделку, в рамках которой
|
||||
необходимо принять оплату от покупателя и перечислить ее продавцу.
|
||||
|
||||
В ответ на запрос придет объект сделки - `DealResponse` в актуальном статусе.
|
||||
|
||||
```ruby
|
||||
res = Yookassa.deals.create({
|
||||
"type": "safe_deal",
|
||||
"fee_moment": "payment_succeeded",
|
||||
"metadata": {
|
||||
"order_id": "88"
|
||||
},
|
||||
"description": "SAFE_DEAL PYTHON 123554642-2432FF344R"
|
||||
})
|
||||
|
||||
```
|
||||
---
|
||||
|
||||
### Запрос на создание сделки через билдер
|
||||
|
||||
[СоздCание сделки в документации](https://yookassa.ru/developers/api?lang=ruby#create_deal)
|
||||
|
||||
Билдер позволяет создать объект сделки — `DealRequest` программным способом, через объекты.
|
||||
|
||||
```ruby
|
||||
builder = DealRequestBuilder() \
|
||||
.set_type(DealType.SAFE_DEAL) \
|
||||
.set_fee_moment(FeeMoment.PAYMENT_SUCCEEDED) \
|
||||
.set_description('SAFE_DEAL 123554642-2432FF344R') \
|
||||
.set_metadata({'order_id': '37'})
|
||||
|
||||
request = builder.build()
|
||||
# Можно что-то поменять, если нужно
|
||||
request.description = 'SAFE_DEAL PYTHON 123554642-2432FF344R'
|
||||
res = Yookassa.deals.create(request)
|
||||
```
|
||||
---
|
||||
|
||||
### Получить информацию о сделке
|
||||
|
||||
[Информация о сделке в документации](https://yookassa.ru/developers/api?lang=ruby)
|
||||
|
||||
Запрос позволяет получить информацию о текущем состоянии сделки по его уникальному идентификатору.
|
||||
|
||||
В ответ на запрос придет объект сделки - `DealResponse` в актуальном статусе.
|
||||
|
||||
```ruby
|
||||
res = Yookassa.deals.find_one('dl-285e5ee7-0022-5000-8000-01516a44b147')
|
||||
```
|
||||
---
|
||||
|
||||
### Получить список сделок с фильтрацией
|
||||
|
||||
[Список сделок в документации](https://yookassa.ru/developers/api?lang=ruby#get_deals_list)
|
||||
|
||||
Запрос позволяет получить список сделок, отфильтрованный по заданным критериям.
|
||||
|
||||
В ответ на запрос вернется список сделок с учетом переданных параметров. В списке будет информация о сделках,
|
||||
созданных за последние 3 года. Список будет отсортирован по времени создания сделок в порядке убывания.
|
||||
|
||||
Если результатов больше, чем задано в `limit`, список будет выводиться фрагментами. В этом случае в ответе на запрос
|
||||
вернется фрагмент списка и параметр `next_cursor` с указателем на следующий фрагмент.
|
||||
|
||||
```ruby
|
||||
cursor = nil
|
||||
filters = {
|
||||
"limit": 10, # Ограничиваем размер выборки
|
||||
"status": "closed", # Выбираем только открытые сделки
|
||||
"full_text_search": "PYTHON", # Фильтр по описанию сделки — параметру description
|
||||
"created_at.gte": "2021-08-01T00:00:00.000Z", # Созданы начиная с 2021-08-01
|
||||
"created_at.lt": "2021-11-20T00:00:00.000Z" # И до 2021-11-20
|
||||
}
|
||||
|
||||
def get_items(filters:, next_cursor: nil, items: [])
|
||||
result = Yookassa.deals.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