|
2 | 2 |
|
3 | 3 | С помощью этого модуля вы сможете легко создавать и управлять платежами, получать подробную информацию о транзакциях и многое другое.
|
4 | 4 |
|
5 |
| -## Установка |
6 |
| - |
7 |
| -Для установки библиотеки выполните команду: |
8 |
| - |
9 |
| -```bash |
10 |
| -npm install nestjs-yookassa |
11 |
| -``` |
12 |
| - |
13 |
| -## Подключение в модуле |
14 |
| - |
15 |
| -Для подключения библиотеки в вашем проекте необходимо использовать один из двух методов: |
16 |
| - |
17 |
| -- forRoot — синхронная конфигурация. |
18 |
| -- forRootAsync — асинхронная конфигурация. |
19 |
| - |
20 |
| -**1. Синхронное подключение (forRoot)** |
21 |
| -Используйте этот метод, если у вас есть заранее настроенные значения для shopId и apiKey. |
22 |
| - |
23 |
| -```typescript |
24 |
| -import { Module } from '@nestjs/common' |
25 |
| -import { YookassaModule } from 'nestjs-yookassa' |
26 |
| - |
27 |
| -@Module({ |
28 |
| - imports: [ |
29 |
| - YookassaModule.forRoot({ |
30 |
| - shopId: 'your-shop-id', |
31 |
| - apiKey: 'your-api-key' |
32 |
| - }) |
33 |
| - ] |
34 |
| -}) |
35 |
| -export class AppModule {} |
36 |
| -``` |
37 |
| - |
38 |
| -**2. Асинхронное подключение (forRootAsync)** |
39 |
| -Используйте этот метод, если вы хотите загружать параметры конфигурации асинхронно, например, из базы данных или переменных окружения. |
40 |
| - |
41 |
| -```typescript |
42 |
| -import { Module } from '@nestjs/common' |
43 |
| -import { ConfigService } from '@nestjs/config' |
44 |
| -import { YookassaModule } from 'nestjs-yookassa' |
45 |
| - |
46 |
| -@Module({ |
47 |
| - imports: [ |
48 |
| - YookassaModule.forRootAsync({ |
49 |
| - imports: [ConfigModule], |
50 |
| - useFactory: async (configService: ConfigService) => ({ |
51 |
| - shopId: configService.getOrThrow('YOOKASSA_SHOP_ID'), |
52 |
| - apiKey: configService.getOrThrow('YOOKASSA_API_KEY') |
53 |
| - }), |
54 |
| - inject: [ConfigService] |
55 |
| - }) |
56 |
| - ] |
57 |
| -}) |
58 |
| -export class AppModule {} |
59 |
| -``` |
60 |
| - |
61 |
| -## Методы |
62 |
| - |
63 |
| -### Работа с платежами |
64 |
| - |
65 |
| -**1. Создание платежа** |
66 |
| -Создает новый платеж через YooKassa. Этот метод отправляет запрос на создание нового платежа с данными из paymentData и возвращает информацию о созданном платеже. |
67 |
| - |
68 |
| -Параметры: |
69 |
| - |
70 |
| -- paymentData (PaymentCreateRequest): Данные для создания платежа. Пример структуры данных см. ниже. |
71 |
| - |
72 |
| -Пример: |
73 |
| - |
74 |
| -```typescript |
75 |
| -const paymentData: PaymentCreateRequest = { |
76 |
| - amount: { |
77 |
| - value: 1000, |
78 |
| - currency: 'RUB' |
79 |
| - }, |
80 |
| - description: 'Test payment', |
81 |
| - payment_method_data: { |
82 |
| - type: PaymentMethodsEnum.bank_card |
83 |
| - }, |
84 |
| - confirmation: { |
85 |
| - type: 'redirect', |
86 |
| - return_url: 'https://example.com/thanks' |
87 |
| - } |
88 |
| -} |
89 |
| - |
90 |
| -const paymentResponse = await this.yookassaService.createPayment(paymentData) |
91 |
| - |
92 |
| -return paymentResponse |
93 |
| -``` |
94 |
| - |
95 |
| -**2. Получение платежей** |
96 |
| -Получает список всех платежей с возможностью фильтрации по дате и пагинации. |
97 |
| - |
98 |
| -- limit (number): Максимальное количество платежей на страницу (по умолчанию 10). |
99 |
| -- from (string): Начальная дата для фильтрации (формат YYYY-MM-DD). |
100 |
| -- to (string): Конечная дата для фильтрации (формат YYYY-MM-DD). |
101 |
| - |
102 |
| -Пример: |
103 |
| - |
104 |
| -```typescript |
105 |
| -const payments = await this.yookassaService.getPayments( |
106 |
| - 10, |
107 |
| - '2024-01-01', |
108 |
| - '2024-12-31' |
109 |
| -) |
110 |
| - |
111 |
| -return payments |
112 |
| -``` |
113 |
| - |
114 |
| -**3. Получение деталей плтежа** |
115 |
| -Получает подробную информацию о платеже по его ID, включая статус, сумму и другие данные. |
116 |
| - |
117 |
| -- paymentId (string): Уникальный идентификатор платежа. |
118 |
| - |
119 |
| -Пример: |
120 |
| - |
121 |
| -```typescript |
122 |
| -const paymentId = '123456' |
123 |
| - |
124 |
| -const payment = await this.yookassaService.getPaymentDetails(id) |
125 |
| - |
126 |
| -if (!payment) { |
127 |
| - throw new NotFoundException('Платеж не найден') |
128 |
| -} |
129 |
| - |
130 |
| -return payment |
131 |
| -``` |
132 |
| - |
133 |
| -**4. Подтверждение платежа** |
134 |
| -Выполняет захват средств с карты клиента после того, как был создан платеж. Обычно этот метод используется, когда заказ подтвержден, и продавец готов забрать средства. |
135 |
| - |
136 |
| -Параметры: |
137 |
| - |
138 |
| -- paymentId (string): Уникальный идентификатор платежа, который нужно подтвердить. |
139 |
| - |
140 |
| -Пример: |
141 |
| - |
142 |
| -```typescript |
143 |
| -const paymentId = '123456' |
144 |
| - |
145 |
| -const capturedPaymentDetails = |
146 |
| - await this.yookassaService.capturePayment(paymentId) |
147 |
| - |
148 |
| -return capturedPaymentDetails |
149 |
| -``` |
150 |
| - |
151 |
| -**5. Отмена платежа** |
152 |
| -Отменяет платеж по его ID. |
153 |
| -Параметры: |
154 |
| - |
155 |
| -- paymentId (string): ID платежа, который нужно отменить. |
156 |
| - |
157 |
| -Пример: |
158 |
| - |
159 |
| -```typescript |
160 |
| -const paymentId = '123456' |
161 |
| - |
162 |
| -const canceledPaymentDetails = |
163 |
| - await this.yookassaService.cancelPayment(paymentId) |
164 |
| - |
165 |
| -return canceledPaymentDetails |
166 |
| -``` |
167 |
| - |
168 |
| -### Работа с возвратами |
169 |
| - |
170 |
| -**1. Создание возврата** |
171 |
| -Создаёт возврат средств по указанному платежу. Этот метод отправляет запрос на создание возврата с данными из refundData и возвращает информацию о созданном возврате. |
172 |
| - |
173 |
| -Параметры: |
174 |
| - |
175 |
| -- refundData (RefundCreateRequest) — Данные для создания возврата. Пример структуры данных см. ниже. |
176 |
| - |
177 |
| -Пример: |
178 |
| - |
179 |
| -```typescript |
180 |
| -const refundData: RefundCreateRequest = { |
181 |
| - payment_id: '123456', |
182 |
| - amount: { |
183 |
| - value: 500, |
184 |
| - currency: 'RUB' |
185 |
| - }, |
186 |
| - description: 'Возврат за отмененный заказ' |
187 |
| -} |
188 |
| - |
189 |
| -const refundResponse = await this.yookassaService.createRefund(refundData) |
190 |
| - |
191 |
| -return refundResponse |
192 |
| -``` |
193 |
| - |
194 |
| -**2. Получение списка возвратов** |
195 |
| -Получает список всех возвратов с возможностью фильтрации и пагинации. |
196 |
| - |
197 |
| -Пример: |
198 |
| - |
199 |
| -```typescript |
200 |
| -const refunds = await this.yookassaService.getRefunds() |
201 |
| - |
202 |
| -return refunds |
203 |
| -``` |
204 |
| - |
205 |
| -**3. Получение деталей возврата** |
206 |
| -Получает подробную информацию о возврате по его ID, включая статус, сумму и другие данные. |
207 |
| - |
208 |
| -- refundId (string) — Уникальный идентификатор возврата. |
209 |
| - |
210 |
| -Пример: |
211 |
| - |
212 |
| -```typescript |
213 |
| -const refundId = '123456' |
214 |
| - |
215 |
| -const refundDetails = await this.yookassaService.getRefundDetails(refundId) |
216 |
| - |
217 |
| -if (!refundDetails) { |
218 |
| - throw new NotFoundException('Возврат не найден') |
219 |
| -} |
220 |
| - |
221 |
| -return refundDetails |
222 |
| -``` |
| 5 | +Документация со всеми подробностями и примерами доступна на [nestjs-yookassa.ru](https://nestjs-yookassa.ru) |
0 commit comments