choco-one-click-payment 1.1.0 → 1.1.2
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 +8 -5
- package/index.d.ts +21 -4
- package/index.esm.js +1 -1
- package/index.js +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -20,7 +20,6 @@ const widget = new ChocoOneClickWidget({
|
|
|
20
20
|
trackId: 'your-track-id',
|
|
21
21
|
terminalId: 1234,
|
|
22
22
|
amount: 10000,
|
|
23
|
-
amplitudeKey: 'YOUR_AMPLITUDE_API_KEY',
|
|
24
23
|
environment: 'stage',
|
|
25
24
|
onSuccess: (data) => console.log('Success', data),
|
|
26
25
|
onError: (error) => console.error('Error', error),
|
|
@@ -31,7 +30,10 @@ const widget = new ChocoOneClickWidget({
|
|
|
31
30
|
// Клиент сам выбирает, как открыть ссылку:
|
|
32
31
|
// window.open(action_link, '_blank');
|
|
33
32
|
window.location.href = action_link;
|
|
34
|
-
}
|
|
33
|
+
},
|
|
34
|
+
onUserEvent: ({ eventName, eventProperties }) => {
|
|
35
|
+
console.log('User event', eventName, eventProperties);
|
|
36
|
+
},
|
|
35
37
|
});
|
|
36
38
|
|
|
37
39
|
await widget.init();
|
|
@@ -44,7 +46,6 @@ const widget = new ChocoOneClickWidget({
|
|
|
44
46
|
clientId: '12345678',
|
|
45
47
|
terminalId: 1234,
|
|
46
48
|
amount: 10000,
|
|
47
|
-
amplitudeKey: 'YOUR_AMPLITUDE_API_KEY',
|
|
48
49
|
environment: 'stage',
|
|
49
50
|
onSuccess: (data) => console.log('Success', data),
|
|
50
51
|
onError: (error) => console.error('Error', error),
|
|
@@ -64,7 +65,7 @@ const ChocoOneClickWidget = require('choco-one-click-payment');
|
|
|
64
65
|
|
|
65
66
|
## Поведение init()
|
|
66
67
|
|
|
67
|
-
- **clientId**
|
|
68
|
+
- **clientId** обязателен. Без него вызывается `onError` и `init()` возвращает `false`.
|
|
68
69
|
- Запрос на контекст оплаты (context) **не отправляется**, если нет ни `trackId`, ни `accessToken` (из cookie). В этом случае показывается виджет с заблокированным выбором способа оплаты; кнопка «Оплатить» активна.
|
|
69
70
|
- Если есть **trackId** или **accessToken** — запрашиваются токены (при необходимости) и context, подключается WebSocket, отображается полный виджет.
|
|
70
71
|
|
|
@@ -73,7 +74,6 @@ const ChocoOneClickWidget = require('choco-one-click-payment');
|
|
|
73
74
|
| Параметр | Тип | Обязательный | Описание |
|
|
74
75
|
|----------|-----|--------------|----------|
|
|
75
76
|
| `clientId` | string | да | OAuth2 client_id приложения |
|
|
76
|
-
| `amplitudeKey` | string | да | API-ключ Amplitude для аналитики внутри виджета |
|
|
77
77
|
| `trackId` | string | нет | Идентификатор для получения access token |
|
|
78
78
|
| `terminalId` | number | да | ID терминала Choco |
|
|
79
79
|
| `amount` | number | да | Сумма в тиынах (1₸ = 100 тиынов) |
|
|
@@ -99,6 +99,7 @@ const ChocoOneClickWidget = require('choco-one-click-payment');
|
|
|
99
99
|
| `onPaymentMethodSelected` | Вызывается при выборе способа оплаты; получает выбранный `method` |
|
|
100
100
|
| `onKaspiLink` | Вызывается для `kaspi_pay` при получении `action_link`/`action_url`; позволяет клиенту самому открыть ссылку |
|
|
101
101
|
| `onAppliedBonus` | Вызывается при включении/выключении бонусов |
|
|
102
|
+
| `onUserEvent` | Вызывается при пользовательских событиях виджета (`one_click_pay_cta_rendered`, `one_click_pay_method_resolved`, `one_click_pay_cta_tapped`) |
|
|
102
103
|
|
|
103
104
|
## Методы
|
|
104
105
|
|
|
@@ -116,9 +117,11 @@ const ChocoOneClickWidget = require('choco-one-click-payment');
|
|
|
116
117
|
| `setDisabled(boolean)` | Блокирует/разблокирует интеракции. |
|
|
117
118
|
| `setPreorderId(preorderId)` | Обновляет preorderId в рантайме. |
|
|
118
119
|
| `setMerchantOrderId(merchantOrderId)` | Обновляет merchantOrderId в рантайме. |
|
|
120
|
+
| `logout()` | Очищает auth cookies (`webPayToken`, `webPayRefreshToken`). |
|
|
119
121
|
| `onConfirmPay(callback)` | Регистрирует callback подтверждения оплаты. Callback получает выбранный `method`. |
|
|
120
122
|
| `onPaymentMethodSelected(callback)` | Регистрирует callback изменения выбранного способа оплаты. |
|
|
121
123
|
| `onKaspiLink(callback)` | Регистрирует callback для обработки ссылки Kaspi Pay (`action_link`/`action_url`). |
|
|
124
|
+
| `onUserEvent(callback)` | Регистрирует callback для пользовательских событий виджета. |
|
|
122
125
|
| `pay()` | Подтверждает оплату и запускает создание заказа (после onConfirmPay). |
|
|
123
126
|
|
|
124
127
|
### Обработка ссылки Kaspi Pay
|
package/index.d.ts
CHANGED
|
@@ -100,11 +100,13 @@ export interface ChocoOneClickConfig {
|
|
|
100
100
|
onKaspiLink?: (payload: KaspiLinkPayload) => void;
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
|
-
*
|
|
104
|
-
* Виджет
|
|
105
|
-
*
|
|
103
|
+
* Callback для пользовательских событий виджета.
|
|
104
|
+
* Виджет эмитит события:
|
|
105
|
+
* - one_click_pay_cta_rendered
|
|
106
|
+
* - one_click_pay_method_resolved
|
|
107
|
+
* - one_click_pay_cta_tapped
|
|
106
108
|
*/
|
|
107
|
-
|
|
109
|
+
onUserEvent?: (event: UserEventPayload) => void;
|
|
108
110
|
|
|
109
111
|
/**
|
|
110
112
|
* Callback вызываемый при включении/выключении бонусов
|
|
@@ -251,6 +253,11 @@ export interface KaspiLinkPayload {
|
|
|
251
253
|
event?: PaymentActionRequiredEvent | Record<string, unknown>;
|
|
252
254
|
}
|
|
253
255
|
|
|
256
|
+
export interface UserEventPayload {
|
|
257
|
+
eventName: 'one_click_pay_cta_rendered' | 'one_click_pay_method_resolved' | 'one_click_pay_cta_tapped' | string;
|
|
258
|
+
eventProperties: Record<string, unknown>;
|
|
259
|
+
}
|
|
260
|
+
|
|
254
261
|
export default class ChocoOneClickWidget {
|
|
255
262
|
/**
|
|
256
263
|
* Создает экземпляр виджета
|
|
@@ -315,6 +322,11 @@ export default class ChocoOneClickWidget {
|
|
|
315
322
|
*/
|
|
316
323
|
setMerchantOrderId(merchantOrderId: string | number): Promise<void>;
|
|
317
324
|
|
|
325
|
+
/**
|
|
326
|
+
* Очищает auth cookies виджета (webPayToken и webPayRefreshToken)
|
|
327
|
+
*/
|
|
328
|
+
logout(): Promise<void>;
|
|
329
|
+
|
|
318
330
|
/**
|
|
319
331
|
* Обновляет trackId в рантайме, запрашивает токены и подтягивает context
|
|
320
332
|
* @returns Promise<boolean> — true при успехе
|
|
@@ -336,6 +348,11 @@ export default class ChocoOneClickWidget {
|
|
|
336
348
|
*/
|
|
337
349
|
onKaspiLink(callback: (payload: KaspiLinkPayload) => void): Promise<void>;
|
|
338
350
|
|
|
351
|
+
/**
|
|
352
|
+
* Регистрирует callback для пользовательских событий виджета
|
|
353
|
+
*/
|
|
354
|
+
onUserEvent(callback: (event: UserEventPayload) => void): Promise<void>;
|
|
355
|
+
|
|
339
356
|
/**
|
|
340
357
|
* Подтверждает оплату после onConfirmPay и запускает создание заказа
|
|
341
358
|
*/
|