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 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** и **amplitudeKey** обязательны. Без любого из них вызывается `onError` и `init()` возвращает `false`.
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
- * API-ключ Amplitude для аналитики внутри виджета (обязательный).
104
- * Виджет отправляет события: one_click_pay_cta_rendered,
105
- * one_click_pay_method_resolved, one_click_pay_cta_tapped.
103
+ * Callback для пользовательских событий виджета.
104
+ * Виджет эмитит события:
105
+ * - one_click_pay_cta_rendered
106
+ * - one_click_pay_method_resolved
107
+ * - one_click_pay_cta_tapped
106
108
  */
107
- amplitudeKey: string;
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
  */