Eventos del SDK
Observar los eventos del ciclo de vida del SDK de DEUNA en Web, iOS, Android y React Native, sin tratar los eventos de análisis como estado de pago.
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#
Suscríbase por plataforma#
await DeunaSDK.initPaymentWidget({
orderToken,
callbacks: {
onEventDispatch: (event, payload) => {
analytics.track(`deuna.${event}`, sanitize(payload));
},
},
});await deunaSDK.initPaymentWidget({
orderToken,
callbacks: {
onEventDispatch: (event, payload) => {
analytics.track(`deuna.${event}`, sanitize(payload));
},
},
});let callbacks = PaymentWidgetCallbacks()
callbacks.onEventDispatch = { event, payload in
Analytics.track("deuna.\(event.rawValue)", sanitize(payload))
}
deunaSDK.initPaymentWidget(
orderToken: orderToken,
callbacks: callbacks
)val callbacks = PaymentWidgetCallbacks().apply {
onEventDispatch = { event, payload ->
analytics.track("deuna.${event.value}", sanitize(payload))
}
}
deunaSDK.initPaymentWidget(
context = this,
orderToken = orderToken,
callbacks = callbacks
)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ñal | Web | iOS | androide | Reaccionar nativo | Uso recomendado |
|---|---|---|---|---|---|
onSuccess | Sí | Sí | Sí | Sí | Cerrar o reemplazar la experiencia, y verificar el estado final. |
onError | Sí | Sí | Sí | Sí | Implementar una ruta de reintento o recuperación basada en el mensaje de error documentado. |
onClosed | Sí | Sí | Sí | Sí | Restaurar la interfaz de usuario del comerciante después del cierre del cliente o del SDK. |
onCardBinDetected | Pago + Elementos | Pago + Elementos | Pago + Elementos | Pago + Elementos | Recalcular ofertas o estilos específicos de la tarjeta. |
onInstallmentSelected | Pago + Elementos | Pago + Elementos | Pago + Elementos | Pago + Elementos | Registrar el identificador del plan seleccionado sin almacenar datos de la tarjeta. |
onPaymentProcessing | Pago + Cupón | Pago | Pago | Pago + Cupón | Deshabilitar acciones de envío duplicadas. |
onResize | Sí | Ciclo de vida integrado | Ciclo de vida integrado | Sí | 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#
| Evento | Significado | Notas sobre la experiencia |
|---|---|---|
checkoutStarted | La experiencia de pago comenzó a cargarse o se inicializó. | Presente en los flujos de pago web y nativos. |
paymentMethodsStarted | Se activó el paso de selección de método de pago. | Flujos de pago nativos y React Native. |
paymentMethodsSelected | El cliente seleccionó un método de pago. | Flujos de pago web y nativos. |
onBinDetected | Se detectó el BIN de la tarjeta. | Preferir onCardBinDetected cuando esté disponible. |
onInstallmentSelected | El cliente ha seleccionado una opción de pago a plazos. | Preferir la llamada de retorno dedicada. |
paymentProcessing | Se está procesando la solicitud. | Deshabilitar acciones duplicadas; no se puede inferir la aprobación. |
purchase | El widget ha informado de una interacción de compra exitosa. | Uso onSuccess, luego verifique el pedido en el backend. |
purchaseError | La interacción de compra ha fallado. | Uso onError para el paquete de errores normalizado. |
purchaseRejected | El checkout nativo ha informado de un rechazo. | Disponible en los flujos nativos y React Native, no en el enum actual de Web. |
vaultSaveSuccess | Los elementos han informado de un dato de credenciales guardado. | Flujos de Elements para Web y nativos. |
vaultSaveError | Los elementos no pudieron guardar el dato de credenciales. | Considerar el payload como específico de la experiencia. |
linkClose | La 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 Web
checkoutStarted, paymentMethodsEntered, onBinDetected, purchase, paymentProcessing, loginStarted, paymentMethodsSelected, loginOtpStarted, purchaseError, onInstallmentSelected, linkClose, checkoutReady, vaultSaveSuccess, vaultSaveError, checkoutFailed, openExternalPopup, closeExternalPopup, errorApmMissingReference.
React Native · checkout
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 · Elements
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 · checkout
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 · Elements
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:
- Web
EventType - Reaccionar nativo
CheckoutEventTypeyElementsEventType - iOS
CheckoutEventyElementsEvent - androide
CheckoutEventyElementsEvent