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
Automatización de finanzas
Plataformas y marketplaces
Gestión del dinero
Herramientas para desarrolladores
Empezar
Pagos
Automatización de finanzas
Empezar
Pagos
Automatización de finanzas
Plataformas y marketplaces
Gestión del dinero
ResumenExplora todos los productos
Start building
Empezar a desarrollar
Proyectos de muestra
Acerca de las API
    Visita a la API
    API Payment Intents
    API Setup Intents
    Métodos de pago
    API anteriores
      Cargos
        Migrar a las nuevas API
        Aceptar una tarjeta de pago
        Guardar una tarjeta
        Bloquear un importe en una tarjeta
        Charges con Connect
      Fuentes
    Fases de lanzamiento
Creación de modelos de lenguaje
Utiliza Stripe sin necesidad de programación
Configura Stripe
Crea una cuenta
Productos y precios
Dashboard web
Dashboard móvil
Migrar a Stripe
Migrar datos de clientes
Migrar datos de pago
Migra las suscripciones
Gestiona el riesgo de fraude
Comprender el fraude
Protección antifraude de Radar
Gestiona disputas
Verificar identidades
Regulatory support
InicioEmpezarAbout the APIsOlder APIsCharges

Migración a la API Payment Intents

Copia la página

¿Te interesa utilizar Stripe Billing, Tax, descuentos, envío o conversión de divisas?

Estamos desarrollando una integración de Payment Element que gestiona las suscripciones, los impuestos, los descuentos, los envíos y la conversión de divisas. Para más información, lee la guía para Crear una página de proceso de compra.

Descubre cómo migrar tu integración de la API Charges y tus tarjetas actuales.

Puede resultar abrumador migrar el flujo de pagos. Es más prudente adoptar progresivamente la API Payment Intents en paralelo con la API Charges. Para ello, puedes dividir la migración en los siguientes pasos:

  1. Actualiza la versión de tu API y la biblioteca de cliente.
  2. Si corresponde, migra el código que lee las propiedades Charge para tener una ruta de lectura uniforme entre los cargos creados por la API Charges y los cargos creados por la API Payment Intents; de esta manera te aseguras de que la integración de lectura funcione tanto para la integración anterior de pagos como para la nueva.
  3. Migra tu integración actual de la API Charges para web, iOS y Android para usar la API Payment Intents.
  4. Migra tu integración para guardar tarjetas en los objetos Customer.
  5. Haz pruebas con tarjetas de prueba reglamentarias para garantizar que la integración actualizada gestiona la autenticación correctamente.

Actualiza tu versión de la API y la biblioteca de cliente

Si bien la API Payment Intents funciona en todas las versiones de API, te recomendamos actualizar a la última versión. Si decides usar una versión de API anterior a 2019-02-11, presta atención a los siguientes dos cambios cuando repases los ejemplos de códigos:

  • requires_source ha pasado a llamarse requires_payment_method
  • requires_source_action ha pasado a llamarse requires_action

In addition, if you use one of our SDKs, upgrade to the latest version of the library to use the Payment Intents API.

Migra tus flujos para pagos puntuales

Una integración creada con Stripe.js y Elements consta de los siguientes pasos:

  1. Registra tu intención de cobrar el pago del lado del servidor
  2. Recopila los datos del pago del lado del cliente
  3. Inicia la creación del pago
  4. Completa el pedido del cliente del lado del servidor

Paso 1: Registrar la intención de cobrar el pago del lado del servidor

Crea un PaymentIntent en tu servidor y hazlo accesible del lado del cliente.

Antes
Después

Antes no era posible

Command Line
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd"

Paso 2: Recopilar los datos de pago del lado del cliente

Usa la función confirmCardPayment, que recopila la información del pago y la envía directamente a Stripe.

Antes
Después
stripe.createToken( cardElement ).then(function(token) { // Send token to server });
stripe.confirmCardPayment( INTENT_SECRET_FROM_STEP_1, { payment_method: {card: cardElement} } ).then(function(result) { if (result.error) { // Display error.message in your UI. } else { // The payment has succeeded // Display a success message } });

Paso 3: Iniciar la creación del pago

En tu integración actual, el último paso consiste en utilizar la información de pago tokenizada para crear un cargo en tu servidor. Esto ya no es necesario, ya que la función confirmCardPayment, llamada en el paso anterior, inicia la creación del cargo.

Antes
Después
Command Line
curl https://api.stripe.com/v1/charges \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{FROM_PREVIOUS_STEP}}" \ -d "amount"=1099 \ -d "currency"="usd"

Se completa en el paso anterior

Paso 4: Completar el pedido del cliente

Con la confirmación automática, tu cargo se crea de forma asincrónica en función de la acción realizada por el cliente en su lado, por lo que debes controlar los webhooks para determinar si el pago se hace efectivo. Para llevar a cabo pasos como completar el pedido del cliente después de confirmarse que el pago se ha hecho efectivo, implementa soporte para webhooks y supervisa el evento payment_intent.succeeded.

Antes
Después

Si el cargo se hace efectivo, se completa el pedido.

Suscríbete al webhook payment_intent.succeeded y completa el pedido en el controlador de webhooks.

Ahora que has hecho la migración, usa las tarjetas de prueba en la siguiente sección para verificar que la integración actualizada gestiona la autenticación mediante 3D Secure.

Migra la integración para guardar tarjetas en objetos Customer

La integración de la API Payment Intents que recopila información de tarjetas en el flujo de finalización de compra consta de los siguientes pasos:

  1. Registra tu intención de cobrar el pago del lado del servidor
  2. Recopila los datos del pago del lado del cliente
  3. Inicia la creación del pago
  4. Completa el pedido del cliente del lado del servidor

Paso 1: Registrar la intención de cobrar el pago del lado del servidor

Crea un PaymentIntent en tu servidor. Establece setup_future_usage como off_session si principalmente tienes la intención de cobrar a los usuarios cuando están fuera de tu aplicación o como on_session si planeas cobrarles en la aplicación. Si tienes previsto utilizar la tarjeta para pagos durante y fuera de la sesión, utiliza off_session. Si proporcionas el parámetro setup_future_usage junto con un ID de cliente, el PaymentMethod resultante se guardará en ese cliente después de que se haya confirmado el PaymentIntent y se hayan completado las acciones requeridas por parte del cliente. A continuación, haz que el PaymentIntent sea accesible del lado del cliente.

Antes
Después

Antes no era posible

Command Line
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "setup_future_usage"="off_session" \ -d "amount"=1099 \ -d "currency"="usd"

Paso 2: Recopilar los datos de pago del lado del cliente

Usa la función confirmCardPayment, que recopila la información del pago y la envía directamente a Stripe.

Antes
Después
stripe.createToken( // or stripe.createSource cardElement ).then(function(token) { // Send token to server });
stripe.confirmCardPayment( '{{INTENT_SECRET_FROM_STEP_1}}', { payment_method: {card: cardElement}, } ).then(function(result) { if (result.error) { // Display error.message in your UI. } else { // The payment has succeeded // Display a success message } });

Por último, adjunta el método de pago (paymentIntent.payment_method) al cliente.

Antes
Después
Command Line
curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}}/sources \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{TOKEN_OR_SOURCE}}"
Command Line
curl https://api.stripe.com/v1/payment_method/{{PAYMENT_METHOD_ID}}/attach \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer"="{{CUSTOMER_ID}}"

Paso 3: Iniciar la creación del pago

En tu integración actual, el último paso consiste en utilizar la información de pago tokenizada para crear un cargo en tu servidor. Esto ya no es necesario, ya que la función confirmCardPayment, llamada en el paso anterior, inicia la creación del cargo.

Antes
Después
Command Line
curl https://api.stripe.com/v1/charges \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{FROM_PREVIOUS_STEP}}" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "amount"=1099 \ -d "currency"="usd"

Se completa en el paso anterior

Paso 4: Completar el pedido del cliente

Con la confirmación automática, tu cargo se crea de forma asincrónica en función de la acción realizada por el cliente en su lado, por lo que debes controlar los webhooks para determinar si el pago se hace efectivo. Para llevar a cabo pasos como completar el pedido del cliente después de confirmarse que el pago se ha hecho efectivo, implementa soporte para webhooks y supervisa el evento payment_intent.succeeded.

Antes
Después

Si el cargo se hace efectivo, se completa el pedido.

Suscríbete al webhook payment_intent.succeeded y completa el pedido en el controlador de webhooks.

Ahora que has hecho la migración, usa las tarjetas de prueba en la siguiente sección para verificar que la integración actualizada gestiona la autenticación mediante 3D Secure.

Acceder a métodos de pago guardados

Para mostrar las Cards, Sources y PaymentMethods previamente guardados por el cliente, enumera los métodos de pago en lugar de leer la propiedad sources del objeto del cliente. Esto es necesario porque los nuevos PaymentMethods añadidos a un cliente no se duplicarán en la propiedad sources del objeto Customer.

Antes
Después
Command Line
customer.sources
Command Line
curl https://api.stripe.com/v1/payment_methods?customer={{CUSTOMER_ID}}&type=card \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:

Probar la integración

Es importante que pruebes exhaustivamente la integración para asegurarte de que gestionas bien las tarjetas que requieren autenticación adicional y las que no. Usa estos números de tarjeta en un entorno de prueba con cualquier fecha de caducidad en el futuro y cualquier código CVC de tres dígitos para validar tu integración cuando se requiera autenticación y cuando no se requiera.

NúmeroAutenticaciónDescripción
Exigido en la configuración o en la primera transacciónEsta tarjeta de prueba requiere la autenticación de los pagos puntuales. No obstante, si configuras la tarjeta con la API Setup Intents y usas la tarjeta guardada para pagos sucesivos, ya no se necesitará realizar la autenticación.
ObligatorioEsta tarjeta de prueba requiere la autenticación de todas las transacciones.
ObligatorioEsta tarjeta de prueba requiere la autenticación, pero los pagos se rechazarán con el código de error insufficient_funds después de completarse correctamente la autenticación.
AceptadoThis test card supports authentication through 3D Secure 2, but does not require it. Payments using this card do not require additional authentication in a sandbox unless your sandbox Radar rules request authentication.

Usa estas tarjetas en tu aplicación o en la demo de pagos para ver la diferencia de comportamiento.

Véase también

  • Payment Intents en iOS
  • Payment Intents en Android
¿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