Crea una página del proceso de compra personalizada que incluya Link
Integra Link utilizando el Payment Element o el Link Authentication Element.
En esta guía se te indica cómo aceptar pagos con Link utilizando la API Payment Intents y Payment Element o Link Authentication Element.
Hay tres maneras de proteger la dirección de correo electrónico de un cliente para la autenticación e inscripción en Link:
- Especifica una dirección de correo electrónico: puedes especificar una dirección de correo electrónico para el Payment Element usando defaultValues. Si ya recopilas la dirección de correo electrónico o el número de teléfono del cliente en el flujo de compra, te recomendamos este enfoque.
- Recopilar una dirección de correo electrónico: puedes recopilar una dirección de correo electrónico directamente en el Payment Element. Si no recopilas la dirección de correo electrónico en ninguna parte del flujo de compra, te recomendamos este enfoque.
- Link Authentication Element: puedes utilizar Link Authentication Element para crear un único campo de entrada de correo electrónico tanto para la recopilación de correos electrónicos como para la autenticación de Link. Te recomendamos que hagas esto si usas el Address Element.

Recopila una dirección de correo electrónico del cliente para la autenticación o la inscripción en Link
Configurar StripeLado del servidor
Primero, crea una cuenta de Stripe o inicia sesión.
Usa nuestras bibliotecas oficiales para acceder a la API de Stripe desde tu aplicación:
Crear un PaymentIntentLado del servidor
Stripe usa un objeto PaymentIntent para representar tu intención de cobrar a un cliente y hace el seguimiento de los intentos de cobro y de los cambios en el estado del pago en todo el proceso.
Si recopilas datos de tarjetas para usarlos en el futuro con Setup Intents, enumera los métodos de pago manualmente en lugar de usar métodos de pago dinámicos. Para usar Link sin métodos de pago dinámicos, actualiza la integración para pasar de link a payment_.
Cuando creas un PaymentIntent, ofrece a tus clientes de forma dinámica los métodos de pago más pertinentes, incluido Link, mediante el uso de métodos de pago dinámicos. Para usar métodos de pago dinámicos, no incluyas el parámetro payment_. Si lo deseas, también puedes habilitar automatic_.
Nota
Cuando tu integración no establece el parámetro payment_, algunos métodos de pago se activan automáticamente, incluidas las tarjetas y billeteras.
Para agregar Link a tu integración de Elements usando métodos de pago dinámicos, haz lo siguiente:
- En la configuración del método de pago de tu Dashboard, activa Link.
- Si tienes una integración existente que enumera manualmente los métodos de pago, elimina el parámetro payment_method_types de tu integración.
Recuperar el secreto de cliente
El PaymentIntent incluye un secreto de cliente que el lado del cliente usa para completar el proceso de pago de forma segura. Puedes usar diferentes métodos para pasar el secreto del cliente al lado del cliente.
Recopila el correo electrónico de los clientes
Link autentica a un cliente utilizando su dirección de correo electrónico. Según tu flujo de compra, tienes las siguientes opciones: enviar un correo electrónico al Payment Element, recopilarlo directamente en el Payment Element o usar el Link Authentication Element. De estas opciones, Stripe recomienda pasar una dirección de correo electrónico del cliente al Payment Element si está disponible.
Configura tu formulario de pagoLado del cliente
Ahora puedes configurar tu formulario de pago personalizado con los componentes de interfaz de usuario prediseñados de Elements. Para que la integración funcione, tu página de pago debe empezar con https:// en lugar de http://. Puedes probar tu integración sin usar HTTPS. Habilita HTTPS cuando estés listo para aceptar pagos reales.
OpcionalCompletar automáticamente datos adicionales del clienteLado del cliente
Si tienes la información del cliente, completarla previamente agiliza aún más el proceso de pago y reduce la entrada manual de datos.
OpcionalPersonalizar el aspectoLado del cliente
Después de agregar estos Elements a tu página, puedes personalizar su aspecto para adecuarlos al resto de tu diseño:

Personaliza el aspecto de tus Elements
Enviar el pago a StripeLado del cliente
Usa stripe.confirmPayment para completar el pago con los datos recopilados de tu cliente en los diferentes formularios de Elements. Proporciona un return_url a esta función para indicar a dónde Stripe redirige al usuario después de completar el pago.
Es posible que tu usuario sea redirigido primero a un sitio intermedio, como una página de autorización bancaria, antes de que Stripe lo redirija a la return_.
De forma predeterminada, los pagos con tarjeta y bancarios redirigen inmediatamente a la return_ cuando un pago se realiza correctamente. Si no quieres redirigir a la return_, puedes usar if_required para cambiar el comportamiento.
La return_ corresponde a una página en tu sitio web que proporciona el estado del pago del PaymentIntent cuando procesas la página de devolución. Cuando Stripe redirige al cliente a la return_, puedes usar los siguientes parámetros de consulta de URL para verificar el estado del pago. También puedes adjuntar tus propios parámetros de consulta cuando proporciones la return_. Estos parámetros de consulta se conservan durante el proceso de redireccionamiento.
| Parámetro | Descripción |
|---|---|
payment_ | El identificador único del PaymentIntent |
payment_ | El secreto de cliente del objeto PaymentIntent. |
OpcionalSeparar la autorización de la capturaLado del servidor
Link admite la autorización y la captura por separado. Debes capturar un pago de Link autorizado en el transcurso de 7 días desde la autorización. De lo contrario, la autorización se cancela automáticamente y no puedes capturar ese pago.
Indicarle a Stripe que autorice únicamente
Para indicar que quieres separar la autorización y la captura, establece capture_method en manual al crear el PaymentIntent. Este parámetro le indica a Stripe que solo debe autorizar el importe en el método de pago del cliente.
Capturar los fondos
Una vez que la autorización se completa correctamente, el estado del PaymentIntent pasa a requires_. Para capturar los fondos autorizados, realiza una solicitud de captura del PaymentIntent. De forma predeterminada, se captura el importe total autorizado; no puedes capturar más que eso, pero puedes capturar menos.
Opcional Cancelar la autorización
Si necesitas cancelar una autorización, puedes cancelar el PaymentIntent.
Administrar eventos posteriores al pagoLado del servidor
Stripe envía un evento payment_intent.succeeded cuando se completa el pago. Usa un webhook para recibir estos eventos y ejecutar acciones, como enviar un correo electrónico de confirmación del pedido a tu cliente, registrar la venta en una base de datos o iniciar el flujo de envío.
Configura tu integración para escuchar estos eventos en lugar de esperar una devolución de llamada del cliente. Cuando esperas una devolución de llamada del cliente, el cliente puede cerrar la ventana del navegador o salir de la aplicación antes de que se ejecute la devolución de llamada. Si configuras tu integración para escuchar eventos asincrónicos, podrás aceptar diferentes tipos de métodos de pago con una sola integración.
Además de administrar el evento payment_, también puedes administrar otros dos eventos importantes cuando cobras pagos con el Payment Element:
| Evento | Descripción | Acción |
|---|---|---|
| payment_intent.succeeded | Se envía desde Stripe cuando un cliente ha completado correctamente un pago. | Envía al cliente una confirmación del pedido y completa el pedido. |
| payment_intent.payment_failed | Se envía desde Stripe cuando el cliente intentó hacer un pago, pero no se efectuó correctamente. | Si un pago pasó de processing a payment_, ofrécele al cliente otro intento de pago. |
Probar la integración
Precaución
No almacenes datos de usuarios reales en el entorno de prueba de cuentas de Link. Úsalas como si estuvieran disponibles para el público, porque estas cuentas de prueba están asociadas a tu clave publicable.
En este momento, Link solo funciona con tarjetas de crédito, tarjetas de débito y compras que califican de cuentas bancarias de EE. UU. Link exige el registro del dominio.
Puedes crear cuentas en entornos de prueba para Link usando cualquier dirección de correo electrónico válida. En la siguiente tabla se muestran los valores fijos de código de acceso de único que Stripe acepta para autenticar las cuentas de entornos de prueba:
| Valor | Resultado |
|---|---|
| Otros seis dígitos diferentes de los mencionados a continuación | Operación correcta |
| 000001 | Error: código inválido |
| 000002 | Error: código vencido |
| 000003 | Error: cantidad máxima de intentos superada |
Para probar métodos de pago específicos, consulta los ejemplos de prueba del Payment Element.
Múltiples fuentes de financiación
Como Stripe agrega soporte adicional para fuentes de financiamiento, no tienes que actualizar tu integración. Stripe las admite automáticamente con el mismo tiempo de liquidación de transacciones y garantías que los pagos con tarjeta y cuentas bancarias.
Autenticación de tarjetas y 3D Secure
Link admite la autenticación con 3D Secure 2 (3DS2) para pagos con tarjeta. 3DS2 requiere que los clientes completen otro paso más de verificación ante el emisor de la tarjeta al pagar. Los pagos que pasan la autenticación con 3D Secure están cubiertos por una transferencia de responsabilidad.
Para activar flujos de comprobación de autenticación con interacción del cliente 3DS2 con Link en un entorno de prueba, utiliza la siguiente tarjeta de prueba con cualquier CVC, código postal y fecha de vencimiento futura: .
En el entorno de prueba, el proceso de autenticación muestra una página de autenticación de prueba. En esa página, puedes autorizar o cancelar el pago. Si autorizas el pago, se simula una autenticación correcta y se te redirige a la URL de retorno especificada. Cuando haces clic en el botón Error, se simula un intento de autenticación fallido.
Para obtener más detalles, consulta la página de autenticación con 3D Secure.
Nota
Al probar los flujos de 3DS, solo las tarjetas de prueba para 3DS2 activarán la autenticación en Link.
OpcionalMostrar los datos guardados en el clienteLado del servidorLado del cliente
Además de mostrar tus direcciones y métodos de pago guardados para un cliente, puedes mostrar sus datos guardados en Link.
Si un cliente tiene más de un método de pago guardado, Stripe muestra las últimas tres tarjetas utilizadas guardadas en el Cliente, además de los métodos de pago que el cliente haya guardado con Link.

Para esto, debes crear una clave efímera y enviarla a tu front-end junto con el ID del cliente. La información que contiene el objeto customer es confidencial: no puedes recuperarla directamente desde Stripe.js. La clave efímera otorga acceso temporal a los datos de customer.
Del lado del cliente, recupera customerOptions con clientSecret.
(async () => { const response = await fetch('/secret'); const {clientSecret, customerOptions} = await response.json(); })
Luego, especifica los valores customerOptions. y customerOptions. en la opción customerOptions en el grupo Elements. También debes especificar el indicador beta elements_ al cargar la instancia de Stripe.
OpcionalGuardar métodos de pago de LinkLado del servidorLado del cliente
Puedes guardar métodos de pago de Link para futuros pagos fuera de la sesión o suscripciones, pero no para futuros pagos durante la sesión. Para hacerlo, debes asociarlo a un objeto Customer. Crea un objeto customer cuando tu cliente cree una cuenta en tu empresa. Luego, especifica el customer al crear tu PaymentIntent.
Cuando un nuevo cliente tiene su primera transacción con tu empresa, crea un objeto customer en Stripe para almacenar sus datos para uso futuro.
En la última versión de la API, especificar el parámetro automatic_ es opcional porque Stripe habilita su funcionalidad de forma predeterminada.
Cuando estés listo para volver a cobrarle a tu cliente, usa el customer y el ID del PaymentMethod resultante para crear un nuevo PaymentIntent. Establece off_session en true. Esto provoca que el PaymentIntent envíe un mensaje de error si es necesaria la autenticación cuando el cliente no está usando el sitio web o la aplicación en forma activa.
Cuéntales a tus clientes qué es Stripe
Stripe recopila información sobre las interacciones de los clientes con Elements para proporcionarte servicios, mejorarlos y prevenir el fraude. Esto incluye el uso de cookies y direcciones IP para identificar qué Elements vio un cliente durante una sola sesión de finalización de compra. Tienes la responsabilidad de divulgar y obtener todos los derechos y consentimientos necesarios para que Stripe use los datos para dichos fines. Si deseas obtener más información, visita nuestro centro de privacidad.

