choco-one-click-payment 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -35
- package/index.d.ts +10 -4
- package/index.esm.js +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,57 +16,97 @@ ESM:
|
|
|
16
16
|
import ChocoOneClickWidget from 'choco-one-click-payment';
|
|
17
17
|
|
|
18
18
|
const widget = new ChocoOneClickWidget({
|
|
19
|
+
clientId: '12345678',
|
|
19
20
|
trackId: 'your-track-id',
|
|
20
|
-
clientId: '123456',
|
|
21
21
|
terminalId: 1234,
|
|
22
|
-
|
|
23
|
-
amount: 500,
|
|
22
|
+
amount: 10000,
|
|
24
23
|
environment: 'stage',
|
|
25
24
|
onSuccess: (data) => console.log('Success', data),
|
|
26
25
|
onError: (error) => console.error('Error', error),
|
|
27
|
-
onCancel: () => console.log('Cancelled')
|
|
26
|
+
onCancel: () => console.log('Cancelled'),
|
|
27
|
+
onConfirmPay: () => console.log('payment button was pressed')
|
|
28
28
|
});
|
|
29
29
|
|
|
30
30
|
await widget.init();
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
+
Инициализация без `trackId` (способ оплаты будет заблокирован до вызова `updateTrackId`):
|
|
34
|
+
|
|
35
|
+
```javascript
|
|
36
|
+
const widget = new ChocoOneClickWidget({
|
|
37
|
+
clientId: '12345678',
|
|
38
|
+
terminalId: 1234,
|
|
39
|
+
amount: 10000,
|
|
40
|
+
environment: 'stage',
|
|
41
|
+
onSuccess: (data) => console.log('Success', data),
|
|
42
|
+
onError: (error) => console.error('Error', error),
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
await widget.init();
|
|
46
|
+
|
|
47
|
+
// Когда trackId станет известен
|
|
48
|
+
await widget.updateTrackId('your-track-id');
|
|
49
|
+
```
|
|
50
|
+
|
|
33
51
|
CommonJS:
|
|
34
52
|
|
|
35
53
|
```javascript
|
|
36
|
-
const ChocoOneClickWidget = require('choco-one-click-
|
|
54
|
+
const ChocoOneClickWidget = require('choco-one-click-payment');
|
|
37
55
|
```
|
|
38
56
|
|
|
39
|
-
##
|
|
40
|
-
|
|
41
|
-
- `
|
|
42
|
-
- `trackId
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
57
|
+
## Поведение init()
|
|
58
|
+
|
|
59
|
+
- **clientId** обязателен. Без него вызывается `onError` и `init()` возвращает `false`.
|
|
60
|
+
- Запрос на контекст оплаты (context) **не отправляется**, если нет ни `trackId`, ни `accessToken` (из cookie). В этом случае показывается виджет с заблокированным выбором способа оплаты; кнопка «Оплатить» активна.
|
|
61
|
+
- Если есть **trackId** или **accessToken** — запрашиваются токены (при необходимости) и context, подключается WebSocket, отображается полный виджет.
|
|
62
|
+
|
|
63
|
+
## Параметры конфигурации
|
|
64
|
+
|
|
65
|
+
| Параметр | Тип | Обязательный | Описание |
|
|
66
|
+
|----------|-----|--------------|----------|
|
|
67
|
+
| `clientId` | string | да | OAuth2 client_id приложения |
|
|
68
|
+
| `trackId` | string | нет | Идентификатор для получения access token |
|
|
69
|
+
| `terminalId` | number | да | ID терминала Choco |
|
|
70
|
+
| `amount` | number | да | Сумма в тиынах (1₸ = 100 тиынов) |
|
|
71
|
+
| `merchantOrderId` | string | нет | Уникальный ID заказа в вашей системе |
|
|
72
|
+
| `currency` | string | нет | Код валюты (по умолчанию KZT) |
|
|
73
|
+
| `environment` | 'production' \| 'stage' | нет | Окружение API (по умолчанию production) |
|
|
74
|
+
| `backlink` | string | нет | URL для возврата после оплаты (Kaspi Pay, 3DS) |
|
|
75
|
+
| `locale` | string | нет | Язык: ru, en, kk (по умолчанию ru) |
|
|
76
|
+
| `preorderId` | number | нет | Preorder ID |
|
|
77
|
+
| `color` | string | нет | Акцентный цвет (по умолчанию #2F2F2F) |
|
|
78
|
+
| `onlyKaspiAvailable` | boolean | нет | Только Kaspi в списке способов оплаты |
|
|
79
|
+
| `disableKaspi` | boolean | нет | Скрыть Kaspi среди способов оплаты |
|
|
80
|
+
| `bonuses` | { amount: number, percent: number } | нет | Бонусы для ЗПЛ |
|
|
81
|
+
|
|
82
|
+
### Callbacks
|
|
83
|
+
|
|
84
|
+
| Параметр | Описание |
|
|
85
|
+
|----------|----------|
|
|
86
|
+
| `onSuccess` | Вызывается при успешной оплате |
|
|
87
|
+
| `onError` | Вызывается при ошибке |
|
|
88
|
+
| `onCancel` | Вызывается при отмене/закрытии |
|
|
89
|
+
| `onConfirmPay` | Callback перед оплатой; для подтверждения вызовите `widget.pay()` |
|
|
90
|
+
| `onAppliedBonus` | Вызывается при включении/выключении бонусов |
|
|
55
91
|
|
|
56
92
|
## Методы
|
|
57
93
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
94
|
+
| Метод | Описание |
|
|
95
|
+
|-------|----------|
|
|
96
|
+
| `init()` | Инициализация виджета. Возвращает `Promise<boolean>`. |
|
|
97
|
+
| `destroy()` | Уничтожает виджет (WebSocket, DOM). |
|
|
98
|
+
| `close()` | Закрывает виджет и вызывает `onCancel`. |
|
|
99
|
+
| `openPaymentSheet()` | Открывает bottom sheet выбора способа оплаты. |
|
|
100
|
+
| `closePaymentSheet()` | Закрывает bottom sheet. |
|
|
101
|
+
| `updateAmount(amount)` | Обновляет сумму (в тиынах) и текст кнопки. |
|
|
102
|
+
| `updateLocale(locale)` | Меняет язык интерфейса. |
|
|
103
|
+
| `updateTrackId(trackId)` | Обновляет trackId, запрашивает токены и context, перерисовывает виджет. Возвращает `Promise<boolean>`. |
|
|
104
|
+
| `setLoading(boolean)` | Включает/выключает состояние загрузки. |
|
|
105
|
+
| `setDisabled(boolean)` | Блокирует/разблокирует интеракции. |
|
|
106
|
+
| `setPreorderId(preorderId)` | Обновляет preorderId в рантайме. |
|
|
107
|
+
| `setMerchantOrderId(merchantOrderId)` | Обновляет merchantOrderId в рантайме. |
|
|
108
|
+
| `onConfirmPay(callback)` | Регистрирует callback подтверждения оплаты. |
|
|
109
|
+
| `pay()` | Подтверждает оплату и запускает создание заказа (после onConfirmPay). |
|
|
70
110
|
|
|
71
111
|
## Сборка пакета (для разработчиков)
|
|
72
112
|
|
|
@@ -76,6 +116,7 @@ npm run build
|
|
|
76
116
|
```
|
|
77
117
|
|
|
78
118
|
Сборка генерирует:
|
|
79
|
-
|
|
80
|
-
- `index.
|
|
119
|
+
|
|
120
|
+
- `index.js` (UMD/CJS)
|
|
121
|
+
- `index.esm.js` (ESM)
|
|
81
122
|
- `index.d.ts` (типы TypeScript)
|
package/index.d.ts
CHANGED
|
@@ -10,9 +10,9 @@ export interface ChocoOneClickConfig {
|
|
|
10
10
|
preorderId?: number;
|
|
11
11
|
/**
|
|
12
12
|
* TrackId для авторизации. При init() по нему получается access token.
|
|
13
|
-
* @
|
|
13
|
+
* @optional
|
|
14
14
|
*/
|
|
15
|
-
trackId
|
|
15
|
+
trackId?: string;
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* OAuth2 client_id — идентификатор приложения. Требуется бэкендом при
|
|
@@ -234,8 +234,8 @@ export default class ChocoOneClickWidget {
|
|
|
234
234
|
constructor(config: ChocoOneClickConfig);
|
|
235
235
|
|
|
236
236
|
/**
|
|
237
|
-
* Инициализирует виджет: загружает контекст
|
|
238
|
-
* подключается к WebSocket и отображает UI
|
|
237
|
+
* Инициализирует виджет: загружает контекст оплаты (если передан trackId),
|
|
238
|
+
* подключается к WebSocket и отображает UI. clientId обязателен.
|
|
239
239
|
* @returns Promise<boolean> - true при успешной инициализации
|
|
240
240
|
*/
|
|
241
241
|
init(): Promise<boolean>;
|
|
@@ -290,6 +290,12 @@ export default class ChocoOneClickWidget {
|
|
|
290
290
|
*/
|
|
291
291
|
setMerchantOrderId(merchantOrderId: string | number): Promise<void>;
|
|
292
292
|
|
|
293
|
+
/**
|
|
294
|
+
* Обновляет trackId в рантайме, запрашивает токены и подтягивает context
|
|
295
|
+
* @returns Promise<boolean> — true при успехе
|
|
296
|
+
*/
|
|
297
|
+
updateTrackId(trackId: string): Promise<boolean>;
|
|
298
|
+
|
|
293
299
|
/**
|
|
294
300
|
* Регистрирует callback на подтверждение оплаты
|
|
295
301
|
*/
|