Saltar al contenido principal
En esta página

Los eventos del SDK describen lo que está haciendo el cliente y el widget. Úselos para análisis, diagnóstico y cambios en la interfaz. Utilice callbacks de éxito y error de tipo para la interfaz de usuario inmediata, y verifique el estado final del pedido en su backend antes de la entrega.

Ciclo de vida de los eventos#

01 · client
Abrir la experiencia
Inicio del Widget de Pago, Elementos, Voucher o Acción Siguiente.
02 · SDK
Envío de eventos
El SDK envía los nombres y sus payloads, específicos para la experiencia.
03 · interface
Reaccionar localmente
Actualice la carga, la validación y el análisis sin exponer datos de pago.
04 · backend
Confirme el resultado
Recupere el pedido o consuma un webhook verificado antes de la entrega.
Diagrama de secuencia
1Customer2Merchant app3DEUNA SDK4Merchant backendOpens paymentInitialize experiencecheckoutStarted /paymentMethodsStartedSelects and submitspaymentMethodsSelected /paymentProcessingonSuccess or onErrorVerify authoritativeorder stateConfirm fulfillment decision
Comercio o clienteDEUNA

Suscríbase por plataforma#

await DeunaSDK.initPaymentWidget({
  orderToken,
  callbacks: {
    onEventDispatch: (event, payload) => {
      analytics.track(`deuna.${event}`, sanitize(payload));
    },
  },
});

Las funciones de devolución de llamada (callbacks) para la web y React Native exponen el nombre del evento como una cadena de texto. Los SDK nativos exponen los tipos de datos. CheckoutEvent o ElementsEvent Mantener una rama predeterminada para que un evento recién lanzado no interrumpa su adaptador de análisis.

Señales de integración estables#

Prefiera las llamadas de retorno dedicadas cuando estén disponibles. Proporcionan un contrato más pequeño y estructurado que el flujo de eventos sin procesar.

SeñalWebiOSandroideReaccionar nativoUso recomendado
onSuccessSíSíSíSíCerrar o reemplazar la experiencia, y verificar el estado final.
onErrorSíSíSíSíImplementar una ruta de reintento o recuperación basada en el mensaje de error documentado.
onClosedSíSíSíSíRestaurar la interfaz de usuario del comerciante después del cierre del cliente o del SDK.
onCardBinDetectedPago + ElementosPago + ElementosPago + ElementosPago + ElementosRecalcular ofertas o estilos específicos de la tarjeta.
onInstallmentSelectedPago + ElementosPago + ElementosPago + ElementosPago + ElementosRegistrar el identificador del plan seleccionado sin almacenar datos de la tarjeta.
onPaymentProcessingPago + CupónPagoPagoPago + CupónDeshabilitar acciones de envío duplicadas.
onResizeSíCiclo de vida integradoCiclo de vida integradoSíMantener un contenedor integrado alineado con el contenido.

Ver Respuestas del SDK para payloads y manejo de errores.

Eventos de ciclo de vida de alto valor#

EventoSignificadoNotas sobre la experiencia
checkoutStartedLa experiencia de pago comenzó a cargarse o se inicializó.Presente en los flujos de pago web y nativos.
paymentMethodsStartedSe activó el paso de selección de método de pago.Flujos de pago nativos y React Native.
paymentMethodsSelectedEl cliente seleccionó un método de pago.Flujos de pago web y nativos.
onBinDetectedSe detectó el BIN de la tarjeta.Preferir onCardBinDetected cuando esté disponible.
onInstallmentSelectedEl cliente ha seleccionado una opción de pago a plazos.Preferir la llamada de retorno dedicada.
paymentProcessingSe está procesando la solicitud.Deshabilitar acciones duplicadas; no se puede inferir la aprobación.
purchaseEl widget ha informado de una interacción de compra exitosa.Uso onSuccess, luego verifique el pedido en el backend.
purchaseErrorLa interacción de compra ha fallado.Uso onError para el paquete de errores normalizado.
purchaseRejectedEl checkout nativo ha informado de un rechazo.Disponible en los flujos nativos y React Native, no en el enum actual de Web.
vaultSaveSuccessLos elementos han informado de un dato de credenciales guardado.Flujos de Elements para Web y nativos.
vaultSaveErrorLos elementos no pudieron guardar el dato de credenciales.Considerar el payload como específico de la experiencia.
linkCloseLa experiencia alojada ha solicitado el cierre.El SDK también invoca onClosed.

Catálogos de eventos actuales#

Estos nombres son los enums públicos en la fuente del SDK mantenido. Los objetos de payload son deliberadamente "raw" porque sus campos varían según la experiencia y la versión; solo dependa de un campo de payload cuando un callback dedicado lo documente.

SDK Web18 nombres de eventos

checkoutStarted, paymentMethodsEntered, onBinDetected, purchase, paymentProcessing, loginStarted, paymentMethodsSelected, loginOtpStarted, purchaseError, onInstallmentSelected, linkClose, checkoutReady, vaultSaveSuccess, vaultSaveError, checkoutFailed, openExternalPopup, closeExternalPopup, errorApmMissingReference.

React Native · checkoutCurrent CheckoutEventType

custom, purchase, purchaseError, linkClose, linkFailed, purchaseRejected, paymentProcessing, paymentMethodsAddCard, paymentMethodsCardExpirationDateInitiated, paymentMethodsCardNameEntered, apmSuccess, apmSuccessful, changeAddress, changeCart, paymentClick, apmClickRedirect, paymentMethodsCardNumberInitiated, paymentMethodsCardNumberEntered, paymentMethodsEntered, checkoutStarted, linkStarted, paymentMethodsStarted, paymentMethodsSelected, adBlock, paymentMethods3dsInitiated, pointsToWinStarted, paymentMethodsCardSecurityCodeInitiated, paymentMethodsCardSecurityCodeEntered, paymentMethodsCardExpirationDateEntered, paymentMethodsCardNameInitiated, paymentMethodsNotAvailable, paymentMethodsShowMore, paymentMethodsShowMyCards, benefitsStarted, donationsStarted, donationsUsed, onBinDetected, onInstallmentSelected, onDownloadVoucher, errorApmMissingReference.

React Native · ElementsCurrent ElementsEventType

vaultClosed, vaultProcessing, vaultSaveClick, vaultStarted, vaultFailed, cardSuccessfullyCreated, changeAddress, changeCart, vaultSaveError, vaultSaveSuccess, vaultClickRedirect3DS, cardCreationError, paymentMethodsCardIdentityNumberInitiated, paymentMethodsCardIdentityNumberEntered, paymentMethodsCardNameInitiated, paymentMethodsCardNameEntered, paymentMethodsCardSecurityCodeInitiated, paymentMethodsCardSecurityCodeEntered, paymentMethodsCardExpirationDateEntered, paymentMethodsCardExpirationDateInitiated, paymentMethodsCardNumberEntered, paymentMethodsCardNumberInitiated, paymentMethodsEntered, paymentMethodsStarted.

iOS y Android · checkoutCatálogos de eventos de CheckoutEvent de tipo

Los catálogos nativos incluyen los eventos de checkout, login, facturación, envío, información del usuario, APM, cupón, donación, entrada de tarjeta, pago a plazos, procesamiento, compra, rechazo y fallo expuestos por cada plataforma. Android también publica apmFailed, couponStarted, linkCriticalErrory userInfoPhoneInitiated; iOS publica custom. Escriba el código contra el enum que se incluye con su SDK instalado, en lugar de asumir que los dos catálogos nativos son idénticos.

iOS y Android · ElementsCatálogos de eventos de Elements de tipo

Ambos SDK nativos publican los eventos de entrada de tarjeta, BIN, pago a plazos, checkout, ciclo de vida del vault y guardado de credenciales. Sus catálogos actuales incluyen paymentMethodSplitPayments, vaultClickRedirect3DS, vaultProcessing, vaultSaveClick, vaultSaveErrory vaultSaveSuccess.

Analítica y privacidad#

  • Permitir nombres de eventos antes de enviarlos a un destino de analítica de terceros.
  • Elimine los metadatos de la orden, el cliente, el método de pago y el proveedor, a menos que su contrato de datos lo permita explícitamente.
  • Nunca registre el número de tarjeta, el código de seguridad, los tokens de la billetera, los tokens de acceso o el payload completo.
  • Incluya la versión de su aplicación, la versión del SDK, el entorno y un ID de correlación de propiedad del comerciante para el diagnóstico.
  • Trate los nombres de eventos desconocidos como señales compatibles con el futuro, no como errores fatales.

Contratos de código abierto#

Los catálogos anteriores se verifican en comparación con los enumeraciones públicas mantenidas, en lugar de copiarse de una lista histórica de eventos: