- Configura tu servidor para crear un
Checkout Session - Configura el SDK de Fintoc en tu frontend
- Crea y monta el componente Express Checkout
- Maneja el callback
onPaymentRequest - Envía el pago a Fintoc
- Prueba la integración
Paso 1: Configura tu servidor
Lado del servidorExpress Checkout llama al callback
onPaymentRequest después de que el cliente autoriza la hoja de Apple Pay. En ese callback debes crear una Checkout Session desde tu backend y devolver su session_token al navegador.
Expone un endpoint en tu servidor que cree una Checkout Session con la API de Fintoc:
Node
Paso 2: Configura el SDK de Fintoc
Lado del clienteExpress Checkout está disponible automáticamente como una funcionalidad del SDK de Fintoc. Incluye el script de Fintoc en tu página de checkout agregándolo al
<head> de tu archivo HTML. Siempre carga el SDK directamente desde js.fintoc.com para recibir actualizaciones de seguridad. No incluyas el script en un bundle ni hospedes una copia por tu cuenta.
Paso 3: Crea y monta el Express Checkout
Lado del clienteEl componente Express Checkout renderiza el botón de wallet dentro de un iframe que envía de manera segura la información de pago a Fintoc a través de una conexión HTTPS. La dirección de la página de checkout también debe comenzar con
https://, no con http://, para que tu integración funcione.
Primero, crea un nodo DOM vacío (contenedor) con un ID único en tu formulario de pago:

Estilos de botón: negro, blanco y blanco con contorno
Paso 4: Maneja el callback onPaymentRequest
Lado del cliente
onPaymentRequest se ejecuta cuando el SDK necesita un sessionToken para continuar con el flujo. Para Apple Pay, el SDK lo llama después de que el cliente autoriza la hoja de Apple Pay. Cuando llamas a widget.open() para transferencia bancaria, el SDK llama al mismo callback antes de abrir el widget. En ese callback debes llamar a tu servidor, obtener un session_token y devolverlo al SDK.
El callback recibe un único argumento con información sobre el método solicitado:
Tu callback debe resolverse con
{ sessionToken: string } en un máximo de 30 segundos, o el SDK emite payment_error.
Puedes usar los campos
payment_method_type y wallet para reutilizar un único endpoint tanto para wallets como para transferencia bancaria, o para enrutar a diferentes endpoints si la lógica de tu backend difiere.Paso 5: Envía el pago a Fintoc
Lado del clienteUna vez que el cliente autoriza el pago con wallet, el SDK completa automáticamente el flujo. No necesitas llamar a un método
confirmPayment por tu cuenta.
La secuencia es:
- El SDK abre la hoja de Apple Pay y solicita un token de pago a Apple Pay.
- Una vez que el cliente autoriza, el SDK emite
processing_express_checkout_payment. - El SDK llama a tu callback
onPaymentRequestpara obtener unsessionTokenfresco. - El SDK envía ambos tokens al backend de Fintoc, que crea el Payment Resource y cobra a la wallet.
- Cuando el pago alcanza
status === 'succeeded', el SDK llama aonSuccess(data)con el recurso resultante.
Si el estado del pago es distinto de
succeeded, o cualquier paso del flujo falla, el SDK emite payment_error en lugar de llamar a onSuccess.Manejo del estado de carga durante el procesamiento del pago
Mientras Express Checkout procesa un pago, debes mostrar un estado de carga para dar retroalimentación clara a tu cliente y evitar interacciones duplicadas. Manéjalo desde los callbacksonEvent y onSuccess que ya pasas a Fintoc.create:
processing_express_checkout_paymentse dispara una vez que el cliente autoriza el pago. Úsalo para mostrar tu indicador de carga mientras el SDK obtiene unsessionTokenfresco desde tu servidor y envía el pago.- El pago luego se resuelve a través de
onSuccesscuando es exitoso, o a través de un eventopayment_errorcuando falla. Usa ambos para limpiar el indicador de carga.
onSuccess como en payment_error para que la UI nunca quede atascada después de un intento de pago.
Paso 6: Prueba la integración
Antes de pasar a producción, prueba la integración en un dispositivo que soporte Apple Pay. Requisitos para probar:- Usa tu public key de prueba y una cuenta de destinatario de prueba.
- Abre tu checkout en iOS o macOS.
- Asegúrate de que tu dominio de staging esté habilitado para Apple Pay. Si aún no lo has hecho, sigue Habilitar Apple Pay primero.
- El botón de Apple Pay se renderiza al cargar la página en un dispositivo soportado.
-
express_checkout_readyse dispara conwallets.applePay === true. - Autorizar la hoja de Apple Pay dispara
onPaymentRequestconpayment_method_type: 'card',wallet: 'apple_pay'. -
processing_express_checkout_paymentse dispara mientras el pago está en curso. -
onSuccessse dispara con el recurso de pago después de una autorización exitosa. - Cancelar la hoja de Apple Pay no emite
payment_error. - Llamar a
widget.open()(fallback de transferencia bancaria) invocaonPaymentRequestconpayment_method_type: 'bank_transfer'y abre el widget.
Configuraciones opcionales
Escuchar el evento express_checkout_ready
Después del montaje, Express Checkout no mostrará botones hasta que el SDK se inicialice y verifique la disponibilidad de wallets. Para animar el elemento cuando aparezca el botón, escucha el eventoexpress_checkout_ready. Inspecciona el valor wallets para determinar qué botones mostrar, si los hay:
Estilizar el botón
Puedes ajustar la apariencia del botón de Apple Pay a través de los campos opcionales deexpressCheckout.
Los valores fuera del rango permitido se acotan en lugar de rechazarse. Por ejemplo,
buttonHeight: 200 se trata como 100.El mismo objeto
widget devuelto por Fintoc.create expone los métodos habituales del widget. Cuando expressCheckout está configurado, llamar a widget.open() invoca automáticamente onPaymentRequest con payment_method_type: 'bank_transfer' antes de abrir el widget, por lo que no necesitas una segunda inicialización.
Referencia de eventos
Express Checkout usa el mismo callbackonEvent que el resto del widget (referencia de eventos del widget), además de los eventos específicos de este componente:
Referencia completa de opciones
Fintoc.create(options)
ExpressCheckoutConfig
Habilitar Apple Pay
Apple Pay no se cargará en un dominio hasta que Fintoc lo haya registrado con Apple. El registro es un prerrequisito tanto para pruebas como para producción. Completa el registro para cada dominio que mostrará el botón, tanto en staging como en producción. Cada dominio registrado debe usar HTTPS. El proceso funciona así:- Avisa a Fintoc que quieres usar Apple Pay. Contacta a tu account manager, contacto de customer success, o contacto de ventas, y comparte los dominios que planeas integrar.
- Hospeda el archivo de verificación que Fintoc te envía. Fintoc te envía un archivo de asociación de dominio. Hospédalo en cada dominio bajo la ruta
/.well-known/apple-developer-merchantid-domain-association, de modo que sea accesible enhttps://your-domain.com/.well-known/apple-developer-merchantid-domain-association. El archivo debe devolver200 OKy ser descargable. - Confirma que el archivo está activo. Avísale a Fintoc una vez que el archivo esté hospedado en cada dominio. Fintoc luego registra cada dominio con Apple.
- Prueba tu integración. Una vez que tus dominios estén registrados, el botón de Apple Pay puede cargarse y puedes seguir los pasos de prueba en un dispositivo soportado.
Ver también
- Aceptar un pago: guía estándar de integración de Checkout Session.
- Integración Web: guía completa de integración del widget.
- Escuchar eventos del Widget: catálogo completo de eventos.
- Integración WebView: integrar el widget dentro de una app nativa.