Список платежей
Шаги для получения списка всех платежей с возможностью пагинации
В этом разделе мы рассмотрим, как получить список всех платежей, используя API Yookassa. Это позволяет запрашивать платежи, фильтровать их по дате и ограничивать количество выводимых записей. Этот функционал полезен для отображения истории платежей или для обработки большого объема данных с использованием пагинации.
Вызов метода для получения списка платежей
Метод getPayments позволяет получать список всех платежей. Вы можете использовать его для фильтрации платежей по датам, а также задавать ограничение на количество отображаемых платежей на странице (пагинация).
Функция имеет следующие параметры:
limit (число) — максимальное количество платежей, которое будет возвращено на одну страницу.
from (строка) — начальная дата в формате YYYY-MM-DD для фильтрации платежей по дате.
to (строка) — конечная дата в формате YYYY-MM-DD для фильтрации платежей по дате.
import { YookassaService } from 'nestjs-yookassa';
@Injectable()
export class PaymentService {
constructor(private readonly yookassaService: YookassaService) {}
async getPaymentsList() {
const limit = 2; // Ограничение на количество платежей
const from = '2025-01-01'; // Начальная дата фильтра
const to = '2025-01-31'; // Конечная дата фильтра
const payments = await this.yookassaService.getPayments(limit, from, to);
return payments
}
}
Обработка ответа от API
Ответ от API содержит массив объектов PaymentDetails, где каждый объект представляет собой информацию о платеже. Пример ответа может быть следующим:
{
"type": "list", // Тип ответа, в данном случае список
"next_cursor": "2f1c5d0c-000f-5000-9000-1bc0db33907d", // Указатель на следующую страницу (для пагинации)
"items": [
{
"id": "2f1c6950-000f-5000-b000-142aa79ed0ff",
"status": "succeeded",
"amount": {
"value": "529.00",
"currency": "RUB"
},
"income_amount": {
"value": "510.48",
"currency": "RUB"
},
"description": "Test payment",
"recipient": {
"account_id": "497037",
"gateway_id": "2358944"
},
"payment_method": {
"type": "bank_card",
"id": "2f1c6950-000f-5000-b000-142aa79ed0ff",
"saved": false,
"status": "inactive",
"title": "Bank card *4444",
"card": {
"first6": "555555",
"last4": "4444",
"expiry_year": "2044",
"expiry_month": "04",
"card_type": "MasterCard",
"card_product": {
"code": "E"
},
"issuer_country": "US"
}
},
"captured_at": "2025-01-17T13:06:01.264Z",
"created_at": "2025-01-17T13:05:20.062Z",
"test": true,
"refunded_amount": {
"value": "0.00",
"currency": "RUB"
},
"paid": true,
"refundable": true,
"metadata": {
"order_id": "12345678"
},
"authorization_details": {
"rrn": "224984783956865",
"auth_code": "769976",
"three_d_secure": {
"applied": false,
"method_completed": false,
"challenge_completed": false
}
}
},
{
"id": "2f1c5df0-000f-5000-8000-11e6d86b5540",
"status": "canceled",
"amount": {
"value": "100.00",
"currency": "RUB"
},
"description": "Test payment",
"recipient": {
"account_id": "497037",
"gateway_id": "2358944"
},
"payment_method": {
"type": "yoo_money",
"id": "2f1c5df0-000f-5000-8000-11e6d86b5540",
"saved": false,
"status": "inactive",
"title": "YooMoney wallet 410011758831136",
"account_number": "410011758831136"
},
"created_at": "2025-01-17T12:16:48.321Z",
"test": true,
"paid": false,
"refundable": false,
"metadata": {
"order_id": "12345678"
},
"cancellation_details": {
"party": "merchant",
"reason": "canceled_by_merchant"
}
}
]
}