Ir a contenido
Crea una cuenta
o
Inicia sesión
Logotipo de Stripe Docs
/
Pregúntale a la IA
Crear una cuenta
Iniciar sesión
Empieza ahora
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 electrónicos
ResumenEncuentra tu caso de usoPagos administrados
Usa Payment Links
Crea una página del proceso de compra
Desarrolla una integración avanzada
Desarrolla una integración en la aplicación
Métodos de pago
Agrega métodos de pago
Gestiona los métodos de pago
Finalización de compra más rápida con Link
Interfaces de pago
Payment Links
Checkout
Elements para la web
Elements en la aplicación
Escenarios de pago
Flujos de pago personalizados
    Resumen
    Pagos para clientes existentes
    Autoriza y captura un pago por separado
    Diseña una experiencia de confirmación en dos pasos
    Recopila los datos de pago antes de crear un Intent
    Finalizar pagos en el servidor
    Recibir pedidos telefónicos/por correo (MOTO)
    Tarjetas estadounidenses y canadienses
      Guardar tarjetas sin autenticación
      Actualizar para gestionar autenticación
    Reenviar 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

Guardar una tarjeta sin autenticación bancaria

Recopila los datos de la tarjeta y cóbrale al cliente más tarde.

Copiar página

Stripe te permite recopilar los datos de la tarjeta y cobrarle después al cliente. En algunas regiones, los bancos exigen una segunda forma de autenticación, como el ingreso de un código enviado a un teléfono. Este paso extra disminuye la conversión si tu cliente no está en tu sitio web o usando la aplicación en ese momento porque no estará disponible para autenticar la compra.

​​Si operas principalmente en EE. UU. y Canadá, los bancos no exigen autenticación, por lo que puedes seguir esta integración más simple. Esta integración no cumplirá con la normativa en países que exijan autenticación para guardar tarjetas (por ejemplo, India), por lo que desarrollarla implica que la expansión a otros países o el agregado de otros métodos de pago necesitarán cambios importantes. Obtén información sobre cómo guardar tarjetas que exigen autenticación.

Cumplimiento

Al guardar los datos de pago de un cliente, eres responsable de cumplir con todas las leyes, normativas y reglas de red aplicables, por ejemplo, si quieres guardar su método de pago para un uso futuro, como cobrarle cuando no esté usando activamente tu sitio web o aplicación. Agrega condiciones a tu sitio web o aplicación que indiquen cómo planeas guardar los datos del método de pago y permite que los clientes las acepten. Si quieres cobrarles cuando estén desconectados, asegúrate de que las condiciones incluyan lo siguiente:

  • El acuerdo del cliente para que puedas iniciar un pago o una serie de pagos en su nombre para transacciones específicas.
  • El momento y la frecuencia previstos de los pagos (por ejemplo, si los cargos son por cuotas programadas, pagos de suscripción o recargas no programadas).
  • Cómo determinas el importe de pago.
  • Tu política de cancelación, si el método de pago es para un servicio de suscripción.

Asegúrate de mantener un registro del acuerdo por escrito de tu cliente en relación con estos términos.

Recopilar datos de tarjeta
Lado del cliente

Antes de empezar con la guía, necesitas una cuenta de Stripe. Inscríbete ahora.

Crea una página de finalización de compra para recopilar los datos de la tarjeta de tu cliente. Usa Stripe Elements, una biblioteca de interfaz de usuario que te ayuda a crear formularios de pago personalizados. Para empezar a usar Elements, incluye la biblioteca Stripe.js con el siguiente script en tu página de finalización de compra.

<script src="https://js.stripe.com/v3/"></script>

Carga siempre Stripe.js directamente desde js.stripe.com para cumplir con la normativa PCI. No incluyas el script en un paquete ni alojes una copia en tus sistemas.

Para aprovechar al máximo la funcionalidad de fraude avanzada de Stripe, incluye este script en todas las páginas de tu sitio, no solo en la página de finalización de compra. La inclusión del script en cada página le permite a Stripe detectar comportamientos sospechosos que pueden indicar fraude cuando los usuarios navegan por tu sitio web.

Agrega Elements a tu página

Para recopilar los datos de las tarjetas de tus clientes de forma segura, Elements crea componentes de interfaz de usuario para ti alojados por Stripe. Luego se colocan en tu formulario de pago, en lugar de que tengas que crearlos directamente. Para determinar dónde insertar estos componentes, crea elementos DOM vacíos (contenedores) con ID únicos en tu formulario de pago.

index.html
<input id="cardholder-name" type="text"> <!-- placeholder for Elements --> <div id="card-element"></div> <div id="card-result"></div> <button id="card-button">Save Card</button>

Ejemplos de Elements

Mira ejemplos de formularios de pago creados con Elements en GitHub.

A continuación, crea una instancia del objeto Stripe suministrando tu clave de API publicable como primer parámetro. Luego, crea una instancia del objeto Elements y úsala para montar un elemento card en el DOM.

El card Element simplifica el formulario de pago y minimiza la cantidad de campos obligatorios insertando un único campo de entrada flexible que recopila todos los datos necesarios de la tarjeta en modo seguro.

De lo contrario, combina cardNumber, cardExpiry y cardCvc Elements para obtener un formulario de tarjeta de múltiples entradas flexible.

Nota

Recopila siempre el código postal para aumentar las tasas de aceptación de tarjetas y disminuir el fraude.

El Card Element de una sola línea recopila y envía automáticamente el código postal del cliente a Stripe. Si creas un formulario de pago con Elements divididos (número de tarjeta, vencimiento, CVC), agrega un campo de entrada separado para el código postal del cliente.

client.js
const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const elements = stripe.elements(); const cardElement = elements.create('card'); cardElement.mount('#card-element');

Un Stripe Element contiene un iframe que envía la información del pago a Stripe en modo seguro a través de una conexión HTTPS. La dirección de la página de finalización de compra también debe empezar con https:// en lugar de http:// para que funcione tu integración.

Puedes probar tu integración sin usar HTTPS. Habilítala cuando todo esté listo para aceptar pagos reales.

client.js
Visualizar el ejemplo completo
const cardholderName = document.getElementById('cardholder-name'); const cardButton = document.getElementById('card-button'); const resultContainer = document.getElementById('card-result'); cardButton.addEventListener('click', async (ev) => { const {paymentMethod, error} = await stripe.createPaymentMethod({ type: 'card', card: cardElement, billing_details: { name: cardholderName.value, }, } ); if (error) { // Display error.message in your UI. resultContainer.textContent = error.message; } else { // You have successfully created a new PaymentMethod resultContainer.textContent = "Created payment method: " + paymentMethod.id; } });

Envía el ID del PaymentMethod resultante a tu servidor.

Configurar Stripe
Lado del servidor

Usa nuestras bibliotecas oficiales para acceder a la API de Stripe desde tu aplicación:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Guardar la tarjeta
Lado del servidor

Guarda la tarjeta asociando el PaymentMethod a un objeto Customer. Puedes usar el objeto Customer para almacenar otros datos sobre tu cliente, como los datos de envío y la dirección de correo electrónico.

Command Line
cURL
curl https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d payment_method={{PAYMENT_METHOD_ID}}

Si ya tienes un objeto Customer, puedes asociar el PaymentMethod a ese objeto.

Command Line
cURL
curl https://api.stripe.com/v1/payment_methods/{{PAYMENT_METHOD_ID}}/attach \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}

En este punto, si tienes un cliente, asocia el ID del objeto Customer y el ID del PaymentMethod con tu propia representación interna del cliente.

Cobrar a la tarjeta guardada
Lado del servidor

Cuando esté todo listo, busca el ID del PaymentMethod y el ID del Customer para efectuar el cargo. Puedes hacerlo almacenando los ID de ambos en tu base de datos o utilizando el ID del Customer para buscar todos los PaymentMethods disponibles para el cliente.

Command Line
cURL
curl -G https://api.stripe.com/v1/payment_methods \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}
\ -d type=card

Usa el ID del PaymentMethod y el ID del objeto Customer para crear un nuevo PaymentIntent. Define error_on_requires_action como “verdadero” para rechazar los pagos que requieran acciones de tu cliente, como la autenticación de dos factores.

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 customer=
{{CUSTOMER_ID}}
\ -d payment_method={{PAYMENT_METHOD_ID}} \ -d error_on_requires_action=true \ -d confirm=true

Cuando falla un intento de pago, también falla la solicitud con un código de estado HTTP 402, y Stripe arroja un error. Debes notificar al cliente para que vuelva a tu aplicación (por ejemplo, enviándole un correo electrónico) y complete el pago. Comprueba el código de error que arrojó la biblioteca de la API de Stripe o revisa el last_payment_error.decline_code en el PaymentIntent para inspeccionar por qué el emisor de la tarjeta rechazó el pago.

Gestionar los errores de tarjetas

Notifica a tu cliente que el pago falló y remítelo al formulario de pago que elaboraste en el Paso 1, donde podrá ingresar datos de otra tarjeta. Envía el ID del nuevo PaymentMethod a tu servidor para asociarlo al “Customer Object” y efectuar de nuevo el pago.

Alternativamente, puedes crear un PaymentIntent y guardar la tarjeta en una sola llamada de API si ya has creado el objeto Customer.

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 customer=
{{CUSTOMER_ID}}
\ -d payment_method={{PAYMENT_METHOD_ID}} \ -d error_on_requires_action=true \ -d confirm=true \ -d setup_future_usage=on_session

Si estableces setup_future_usage en on_session, le indicas a Stripe que quieres guardar la tarjeta para después, sin activar una autenticación innecesaria.

Probar la integración

Stripe proporciona tarjetas de prueba que puedes usar en un entorno de prueba para simular el comportamiento de diferentes tarjetas. Usa estas tarjetas con cualquier CVC, código postal y fecha de vencimiento futura.

NúmeroDescripción
Realice correctamente la transacción y procese el pago de inmediato.
Dé error cada vez que obtenga un código de rechazo insufficient_funds.
Exija la autenticación, que en esta integración implicará el rechazo de la transacción con el código authentication_required.

OpcionalVolver a pedir el CVC

Actualiza tu integración para gestionar la autenticación de tarjetas

Esta integración rechaza las tarjetas que exigen autenticación durante el pago. Si empiezas a ver en el Dashboard muchos pagos que figuran como Failed, es hora de actualizar tu integración. La integración global de Stripe gestiona estos pagos en lugar de rechazarlos automáticamente.

¿Te fue útil esta página?
SíNo
¿Necesitas ayuda? Ponte en contacto con soporte.
Únete a nuestro programa de acceso anticipado.
Echa un vistazo a nuestro registro de cambios.
¿Tienes alguna pregunta? Contacto.
¿LLM? Lee llms.txt.
Con tecnología de Markdoc