Ir a contenido
Crea una cuenta
o
inicia sesión
Logotipo de la documentación de Stripe
/
Pregúntale a la IA
Crear cuenta
Iniciar sesión
Empezar
Pagos
Ingresos
Plataformas y marketplaces
Gestión del dinero
Herramientas para desarrolladores
Resumen
Acerca de Stripe Payments
Actualiza tu integración
Análisis de pagos
Pagos por Internet
ResumenEncuentra tu caso de usoManaged Payments
Utiliza Payment Links
Crear una página del proceso de compra
Desarrolla una integración avanzada
Desarrolla una integración en la aplicación
Métodos de pago
Añadir métodos de pago
Gestiona los métodos de pago
Proceso de compra más rápido con Link
Interfaces de pago
Payment Links
Checkout
Elements para la web
Elements en la aplicación
Escenarios de pago
Flujos de pagos personalizados
    Resumen
    Pagos para clientes existentes
    Autoriza y captura un pago por separado
    Diseña una experiencia de confirmación en dos pasos
    Reúne datos de pago antes de crear una Intent
    Finalizar pagos en el servidor
    Recibir pedidos por correo y por teléfono (MOTO)
    Tarjetas estadounidenses y canadienses
      Guardar tarjetas sin autenticación
      Actualizar para gestionar autenticación
    Reenvía los datos de la tarjeta a los puntos de conexión de la API de terceros
    Partidas individuales de pagos
Capacidad adquirente flexible
Orquestación
Pagos en persona
Terminal
Otros productos de Stripe
Financial Connections
Criptomonedas
Climate
InicioPagosCustom payment flowsUS and Canadian cards

Migra tu integración básica para tarjetas

Migra a una integración que pueda gestionar las solicitudes bancarias de autenticación de tarjetas.

Copia la página

Si seguiste la guía Pagos con tarjeta sin autenticación bancaria, tu integración crea pagos que se rechazan cuando el banco solicita al cliente que autentique la compra.

Si empiezas a ver numerosos pagos fallidos como el que se muestra en el Dashboard a continuación o con un código de error requires_action_not_handled en la API, actualiza tu integración básica para gestionar los pagos en lugar de rechazarlos.

El Dashboard muestra un pago fallido en el que se indica que este banco solicitó autenticación para este pago

Utilice esta guía para obtener información sobre cómo actualizar la integración que creó en la guía anterior con el fin de añadir código de servidor y de cliente para solicitar al cliente que abra un cuadro de diálogo para solicitar la autenticación del pago.

Nota

Consulta una muestra completa de esta integración en GitHub.

Comprueba si el pago requiere autenticación.
Lado del servidor

Haz dos cambios en el punto de conexión de tu servidor que crea el PaymentIntent:

  1. Elimina el parámetro error_on_requires_action para que ya no fallen los pagos que requieran autenticación. En su lugar, el estado del PaymentIntent cambia a requires_action.
  2. Añade el parámetro confirmation_method para indicar que quieres volver a confirmar el pago de manera explícita (manualmente) en el servidor después de gestionar las peticiones de autenticación.
Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d amount=1099 \ -d currency=usd \ -d payment_method_types[]=card \ -d confirm=true \ -d error_on_requires_action=true \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ -d confirmation_method=manual

Después, actualiza tu función «generar respuesta» para gestionar el estado requires_action en lugar de que se genere un error:

Command Line
curl
# If the request succeeds, check the # PaymentIntent's `status` and handle # its `next_action`.

Pide al cliente que se autentique
Lado del cliente

A continuación, actualiza tu código de lado del cliente para indicarle a Stripe que muestre un cuadro de diálogo modal si el cliente necesita autenticación.

Usa stripe.handleCardAction cuando el estado del PaymentIntent sea requires_action. Si se realiza correctamente, el estado del PaymentIntent será requires_confirmation y deberás volver a confirmar el PaymentIntent en tu servidor para finalizar el pago.

const handleServerResponse = async (responseJson) => { if (responseJson.error) { // Show error from server on payment form } else if (responseJson.requiresAction) { // Use Stripe.js to handle the required card action const { error: errorAction, paymentIntent } = await stripe.handleCardAction(responseJson.clientSecret); if (errorAction) { // Show error from Stripe.js in payment form } else { // The card action has been handled // The PaymentIntent can be confirmed again on the server const serverResponse = await fetch('/pay', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ payment_intent_id: paymentIntent.id }) }); handleServerResponse(await serverResponse.json()); } } else { // Show success message } }

Confirma el nuevo el PaymentIntent
Lado del servidor

Utilizando el mismo punto de conexión que has configurado anteriormente , vuelve a confirmar el PaymentIntent para finalizar el pago y completar el pedido. Si no se vuelve a confirmar en el término de una hora, el intento de pago falla y vuelve a requires_payment_method.

Command Line
curl
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/confirm \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST"

Prueba la integración

Utiliza nuestras tarjetas de prueba en un entorno de prueba para verificar que tu integración se actualizó correctamente. Stripe muestra una página de autenticación simulada dentro del cuadro de diálogo modal en un entorno de prueba que te permite simular un intento de autenticación correcto o fallido. En el modo activo, el banco controla la interfaz de usuario de lo que aparece dentro del cuadro de diálogo modal.

NúmeroDescripción
La transacción se realiza correctamente y el pago se procesa de inmediato.
Siempre da error con un código de rechazo insufficient_funds.
Requiere autenticación, por lo que en esta integración dará error con el código de rechazo authentication_not_handled.
¿Te ha sido útil la página?
SíNo
¿Necesitas ayuda? Ponte en contacto con el equipo de soporte.
Únete a nuestro programa de acceso anticipado.
Echa un vistazo a nuestro registro de cambios.
¿Tienes alguna pregunta? Ponte en contacto con el equipo de ventas.
¿LLM? Lee llms.txt.
Con tecnología de Markdoc