Skip to content

Метрики оплаты без платёжных данных ​

English

observeCheckout позволяет собирать метрики по оплате — например, как часто покупатели доходят до проверки 3DS или сколько платежей отклоняется — без утечки платёжных данных.

На каждое событие движка он выдаёт одно маленькое событие только с фиксированными значениями (категориями). Он ничего не отправляет по сети, не хранит события и не зависит от какого-либо сервиса аналитики. Куда их отправлять, решаете вы.

ts
import { observeCheckout } from '@checkout-kit/core'

const unsubscribe = observeCheckout(engine, (event) => {
  metrics.record('checkout', event)
})
// On screen teardown:
unsubscribe()
  • metrics — ваш собственный сервис.
  • Подписывайтесь один раз на движок. В React подписывайтесь внутри эффекта и возвращайте unsubscribe как функцию очистки.
  • Если ваш обработчик выбросит ошибку, она обрабатывается как ошибка любого другого слушателя движка. Проследите, чтобы ваш логгер не записывал в логи чувствительные данные из ошибки.
СобытиеКакие поля могут быть
phase_changedphase, previous
provider_changed, intent_created, errorНет
action_requiredactionKind
action_startedactionKind, surface
action_finishedactionKind, via
resultstatus

Чего в событиях никогда нет ​

Передаются только известные фиксированные значения. В событии никогда нет:

  • id заказа, платежа, шага или провайдера;
  • сумм;
  • данных покупателя;
  • полей карты и токенов;
  • адресов (URL);
  • текстов и кодов ошибок;
  • данных SDK и результатов шагов.

Это сделано через список разрешённого: функция копирует только разрешённые поля. Она не пытается «почистить» произвольный объект — так легко что-то пропустить.

Если вы уже подписаны на конкретное событие через engine.on, toCheckoutTelemetryEvent(event) даст его такую же безопасную версию.

Как понимать эти метрики ​

По событиям видно, на каком шаге оплаты находятся покупатели, как часто мешают проверки банка и какие результаты видят покупатели.

  • После result: processing позже может прийти окончательный результат. Это не завершённая оплата.
  • Результат движка — не зачисление денег, не выданный заказ и не выручка. Эти цифры берите из подтверждённого состояния на сервере.
  • Если вы добавите в обработчик свои метки, id пользователей или отчёты об ошибках, за защиту этих данных снова отвечаете вы.

Безопасность платежей · Жизненный цикл в React

Apache-2.0 · Headless-движок, адаптеры провайдеров и запускаемые примеры.