Метрики оплаты без платёжных данных
observeCheckout позволяет собирать метрики по оплате — например, как часто покупатели доходят до проверки 3DS или сколько платежей отклоняется — без утечки платёжных данных.
На каждое событие движка он выдаёт одно маленькое событие только с фиксированными значениями (категориями). Он ничего не отправляет по сети, не хранит события и не зависит от какого-либо сервиса аналитики. Куда их отправлять, решаете вы.
import { observeCheckout } from '@checkout-kit/core'
const unsubscribe = observeCheckout(engine, (event) => {
metrics.record('checkout', event)
})
// On screen teardown:
unsubscribe()metrics— ваш собственный сервис.- Подписывайтесь один раз на движок. В React подписывайтесь внутри эффекта и возвращайте
unsubscribeкак функцию очистки. - Если ваш обработчик выбросит ошибку, она обрабатывается как ошибка любого другого слушателя движка. Проследите, чтобы ваш логгер не записывал в логи чувствительные данные из ошибки.
| Событие | Какие поля могут быть |
|---|---|
phase_changed | phase, previous |
provider_changed, intent_created, error | Нет |
action_required | actionKind |
action_started | actionKind, surface |
action_finished | actionKind, via |
result | status |
Чего в событиях никогда нет
Передаются только известные фиксированные значения. В событии никогда нет:
- id заказа, платежа, шага или провайдера;
- сумм;
- данных покупателя;
- полей карты и токенов;
- адресов (URL);
- текстов и кодов ошибок;
- данных SDK и результатов шагов.
Это сделано через список разрешённого: функция копирует только разрешённые поля. Она не пытается «почистить» произвольный объект — так легко что-то пропустить.
Если вы уже подписаны на конкретное событие через engine.on, toCheckoutTelemetryEvent(event) даст его такую же безопасную версию.
Как понимать эти метрики
По событиям видно, на каком шаге оплаты находятся покупатели, как часто мешают проверки банка и какие результаты видят покупатели.
- После
result: processingпозже может прийти окончательный результат. Это не завершённая оплата. - Результат движка — не зачисление денег, не выданный заказ и не выручка. Эти цифры берите из подтверждённого состояния на сервере.
- Если вы добавите в обработчик свои метки, id пользователей или отчёты об ошибках, за защиту этих данных снова отвечаете вы.