Ir a contenido
Crea una cuenta o Inicia sesión
Logotipo de Stripe Docs
/
Pregúntale a la IA
Crear una cuentaIniciar sesión
Empieza ahora
Pagos
Ingresos
Plataformas y marketplaces
Gestión del dinero
Recursos para desarrolladores
API y SDKAyuda
Resumen
Billing
ResumenAcerca de las API de facturación
Suscripciones
    Resumen
    Cómo funcionan las suscripciones
    Empieza ahora
    Inicio rápido
    Planificar una integración
    Crear una integración
    Casos de uso
    Acerca de las suscripciones
    Habilitar modo de facturación
    Configurar eventos de suscripción
    Derechos
    Facturas de suscripciones
    Calendarios de suscripciones
    Modelos de tarifas recurrentes
    Configurar suscripciones
    Configurar métodos de cobro
    Inserta un cuadro de tarifas
    Establecer ciclos de facturación
    Administración de suscripciones
    Migrar suscripciones a Stripe
    Establecer cantidades de productos o suscripciones
    Suscripciones a intervalos combinados
    Suscripciones con fechas pasadas
    Configura períodos de prueba
    Gestionar suscripciones con pago diferido
    Aplica cupones
    Modificar suscripciones
    Gestionar métodos de pago de suscripciones
    Análisis
    Administrar suscripciones en iOS
Invoicing
Cobro por consumo
Presupuestos
Gestión de clientes
Gestión de cobros con otros productos
Recuperación de ingresos
Automatizaciones
Prueba tu integración
Impuesto
Resumen
Usa Stripe Tax
Gestiona el cumplimiento de la normativa
Elaboración de informes
Resumen
Seleccionar un informe
Configura informes
Informes para varias cuentas
API de informes
Reconocimiento de ingresos
Datos
Resumen
Consultar datos de empresas
Sigma
Data Pipeline
Importa los datos externos
Estados Unidos
Español (América Latina)
InicioIngresosSubscriptions

Crear una integración de suscripciones

Crear y administrar las suscripciones para aceptar pagos recurrentes.

Página de suscripción de precio fijo con Payment Element
Baja codificación (low code)

Personaliza con la API de apariencia.

Utiliza esta guía para aprender a vender suscripciones de precio fijo suscripciones. Utilizarás la API Payment Element with Checkout Sessions para crear un formulario de pago personalizado que incrustará en tu solicitud.

Si no deseas crear un formulario de pago personalizado, puedes integrarlo con el proceso de compra alojado. Si deseas una versión completa de esa guía de integración, consulta la guía de inicio rápido de Billing .

Si no estás listo para programar una integración, puedes configurar suscripciones básicas de forma manual en el Dashboard. También puedes usar Payment Links para configurar suscripciones sin programar nada. Obtén más información sobre cómo diseñar una integración para comprender las decisiones que debes tomar y los recursos que necesitas.

Tu próximo desarrollo

Esta guía te explica cómo:

  • Modelar tu empresa creando un catálogo de productos.
  • Crear un proceso de inscripción que genere un cliente.
  • Crear suscripciones y recopilar información de pago.
  • Comprobar y monitorear el estado de los pagos y las suscripciones.
  • Permitir que los clientes cambien de plan o cancelen la suscripción.

Definiciones de los objetos de la API

RecursoDefinición
CustomerRepresenta a un cliente que compra una suscripción. Usa el objeto Customer asociado a una suscripción para realizar y hacer seguimiento de los cargos recurrentes y para administrar los productos a los que se suscriben.
DerechoRepresenta el acceso de un cliente a una funcionalidad incluida en un producto de servicio al que está suscrito. Cuando creas una suscripción para la compra recurrente de un producto por parte de un cliente, se crea automáticamente un derecho activo para cada funcionalidad asociada a ese producto. Cuando un cliente accede a tus servicios, utiliza sus derechos activos para habilitar las funcionalidades incluidas en su suscripción.
FuncionalidadRepresenta una funcionalidad o capacidad a la que tus clientes pueden acceder cuando se suscriben a un producto de servicio. Puedes incluir funciones en un producto creando ProductFeatures.
FacturaUna declaración de importes que un cliente adeuda y que rastrea los estados de pago desde el borrador hasta su pago o su finalización. Las suscripciones generan facturas automáticamente.
PaymentIntentUna forma de crear flujos de pago dinámicos. Un PaymentIntent hace un seguimiento del ciclo de vida del flujo del proceso compra del cliente y activa pasos adicionales de autenticación, si así lo exigen las disposiciones normativas, las reglas antifraude personalizadas de Radar o los métodos de pago con redireccionamiento. Las facturas crean PaymentIntents de forma automática.
PaymentMethodLos métodos de pago que utiliza el cliente para pagar tus productos. Por ejemplo, puedes almacenar una tarjeta de crédito en un objeto Customer y usarla para realizar pagos recurrentes para ese cliente. Normalmente se usa con las API Payment Intents o Setup Intents.
PrecioDefine el precio por unidad, la moneda y el ciclo de facturación para un producto.
ProductoUn bien o servicio que vende tu empresa. Un producto de servicio puede incluir una o más funciones.
ProductFeatureRepresenta la inclusión de una sola funcionalidades en un solo producto. Cada producto está asociado a una ProductFeature para cada funcionalidad que incluye, y cada funcionalidad está asociada a una ProductFeature para cada producto que la incluye.
SuscripciónRepresenta la compra recurrente programada de un producto por parte de un cliente. Usa una suscripción para cobrar pagos y proporcionar entrega repetida o acceso continuo a un producto.

Veamos un ejemplo de cómo funcionan juntos los productos, las funcionalidades y los derechos. Imagina que quieres configurar un servicio recurrente que ofrezca dos niveles: un producto estándar con funcionalidad básica y un producto avanzado que agregue funcionalidad extendida.

  1. Creas dos funcionalidades: basic_features y extended_features.
  2. Creas dos productos: standard_product y advanced_product.
  3. Para el producto estándar, creas una ProductFeature que asocia basic_features con standard_product.
  4. Para el producto avanzado, creas dos ProductFeatures: una que asocia basic_features con advanced_product y otra que asocia extended_features con advanced_product.

Un cliente, first_customer, se suscribe al producto estándar. Cuando creas la suscripción, Stripe crea automáticamente un derecho que asocia first_customer con basic_features.

Otro cliente, second_customer, se suscribe al producto avanzado. Al crear la suscripción, Stripe crea automáticamente dos derechos: uno que asocia second_customer con basic_features y otro que asocia second_customer con extended_features.

Puedes determinar qué funcionalidades aprovisionar para un cliente recuperando sus derechos activos o recibiendo notificaciones del evento Resumen de derechos activos. No tienes que recuperar sus suscripciones, productos y funcionalidades.

Configura Stripe

Instala el cliente de Stripe que prefieras:

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

A continuación, instala la CLI de Stripe. La CLI proporciona pruebas de webhook y puedes ejecutarla para realizar llamadas API a Stripe. Esta guía muestra cómo utilizar la CLI para configurar un modelo de precios en una sección posterior.

Command Line
homebrew
Instalar desde fuente
No results
# Install Homebrew to run this command: https://brew.sh/ brew install stripe/stripe-cli/stripe # Connect the CLI to your dashboard stripe login

Para obtener más opciones de instalación, consulta Empezar a usar la CLI de Stripe.

Crear el modelo de tarifas
CLI o Dashboard de Stripe

Crea los productos con sus precios en el Dashboard o con la CLI de Stripe.

Este ejemplo utiliza un servicio de precio fijo con dos niveles de servicio diferentes: básico y prémium. Para cada opción de nivel de servicio, debes crear un producto y un precio recurrente. (Si quieres agregar un cargo puntual, como el costo de instalación, crea un tercer producto con un precio puntual. Para simplificar, este ejemplo no incluye un cargo puntual).

En este ejemplo, cada producto se factura mensualmente. El precio del producto básico es del 5 USD. El precio del producto prémium es del 15 USD.

Ve a la página Agregar un producto y crea dos productos. Agrega un precio a cada producto, cada uno con un período de facturación mensual recurrente:

  • Producto prémium: servicio prémium con más funcionalidades

    • Precio: Tarifa plana | 15 USD
  • Producto básico: servicio básico con las funcionalidades mínimas

    • Precio: Tarifa plana | 5 USD

Después de crear los precios, registra los ID de precio para usarlos en otros pasos. Los ID de precio se ven así: price_G0FvDp6vZvdwRZ.

Cuando esté todo listo, usa el botón Copiar en modo activo, en la parte superior derecha de la página, para clonar el producto y pasarlo de entorno de prueba a modo activo.

Crear el cliente
Cliente y servidor

Stripe necesita un cliente para cada suscripción. En el front-end de tu aplicación, recopila cualquier información necesaria de tus usuarios y pásala al back-end.

If you need to collect address details, the Address Element enables you to collect a shipping or billing address for your customers. For more information on the Address Element, see the Address Element page.

register.html
<form id="signup-form"> <label> Email <input id="email" type="email" placeholder="Email address" value="test@example.com" required /> </label> <button type="submit"> Register </button> </form>
register.js
const emailInput = document.querySelector('#email'); fetch('/create-customer', { method: 'post', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ email: emailInput.value, }), }).then(r => r.json());

Crea el objeto Customer de Stripe en el servidor.

Nota

Make sure you store the Customer ID to use in the Checkout Session

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d email={{CUSTOMER_EMAIL}} \ -d name={{CUSTOMER_NAME}} \ -d "shipping[address][city]"=Brothers \ -d "shipping[address][country]"=US \ -d "shipping[address][line1]"="27 Fredrick Ave" \ -d "shipping[address][postal_code]"=97712 \ -d "shipping[address][state]"=CA \ -d "shipping[name]"={{CUSTOMER_NAME}} \ -d "address[city]"=Brothers \ -d "address[country]"=US \ -d "address[line1]"="27 Fredrick Ave" \ -d "address[postal_code]"=97712 \ -d "address[state]"=CA

Crea una Checkout Session
Servidor

En el back-end de su aplicación, define un punto de conexión que cree la sesión para que tu front-end la llame. Necesitarás el ID de precio de la suscripción que el cliente está contratando; tu front-end pasa este valor.

Si creaste un precio único en el paso 2, pasa también ese ID de precio. Después de crear una Checkout Session, asegúrate de pasar el secreto de cliente de vuelta al cliente en la respuesta.

Nota

Puedes utilizar lookup_keys para obtener precios en lugar de ID de precios. Consulta la solicitud de ejemplo para ver un ejemplo.

Ruby
Python
.NET
PHP
Java
Node.js
Go
No results
require 'stripe' require 'sinatra' # This test secret API key is a placeholder. Don't include personal details in requests with this key. # To see your test secret API key embedded in code samples, sign in to your Stripe account. # You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
Stripe.api_version = '2025-09-30.clover' set :static, true set :port, 4242 YOUR_DOMAIN = 'http://localhost:3000' post '/create-checkout-session' do content_type 'application/json' session = Stripe::Checkout::Session.create({ ui_mode: 'custom', # Provide the customer ID of the customer you previously created customer: '{{CUSTOMER_ID}}', line_items: [{ # Provide the exact Price ID (for example, price_1234) of the product you want to sell price: '{{PRICE_ID}}', quantity: 1, }], mode: 'subscription', return_url: YOUR_DOMAIN + '/return?session_id={CHECKOUT_SESSION_ID}', }) { clientSecret: session.client_secret }.to_json end

Desde tu Dashboard, activa los métodos de pago que deseas aceptar de tus clientes. Checkout admite varios métodos de pago.

Inicializar Checkout
Cliente

Crea una promesa clientSecret que se resuelva con el secreto de cliente o establécela como secreto directamente. Llama a initCheckout, pasando clientSecret. initCheckout devuelve una promesa que se resuelve una instancia de confirmación de compra.

The checkout object acts as the foundation of your checkout page, and contains data from the Checkout Session and methods to update the Session.

El objeto devuelto por actions.getSession() contiene tu información de tarifas. Te recomendamos que leas y visualices el total y los lineItems de la sesión en tu interfaz de usuario (IU).

Esto te permite activar nuevas funcionalidades con cambios mínimos en el código. Por ejemplo, añadir precios manuales de las monedas no requiere cambios en la interfaz de usuario si muestra el total.

checkout.js
const clientSecret = fetch('/create-checkout-session', {method: 'POST'}) .then((response) => response.json()) .then((json) => json.checkoutSessionClientSecret); const checkout = stripe.initCheckout({clientSecret}); const loadActionsResult = await checkout.loadActions(); if (loadActionsResult.type === 'success') { const session = loadActionsResult.actions.getSession(); const checkoutContainer = document.getElementById('checkout-container'); checkoutContainer.append(JSON.stringify(session.lineItems, null, 2)); checkoutContainer.append(document.createElement('br')); checkoutContainer.append(`Total: ${session.total.total.amount}`); }
index.html
<div id="checkout-container"></div>

Recopila datos de pago
Cliente

Recopila los datos de pago del cliente con el Payment Element. Payment Element es un componente de interfaz de usuario prediseñado que simplifica la recopilación de datos de pago para una variedad de métodos de pago.

En primer lugar, crea un elemento DOM contenedor para montar el Payment Element. Luego, crea una instancia del Payment Element usando checkout.createPaymentElement y móntala llamando a element.mount, proporcionando un selector CSS o el elemento DOM contenedor.

index.html
<div id="payment-element"></div>
checkout.js
const paymentElement = checkout.createPaymentElement(); paymentElement.mount('#payment-element');

See the Stripe.js docs to view the supported options.

Puedes personalizar el aspecto de todos los Elements pasando elementsOptions.appearance al inicializar Checkout en el front-end.

Envía el pago
Lado del cliente

Renderiza un botón de Pagar que llame a confirmar desde la instancia de proceso de compra para enviar el pago.

index.html
<button id="pay-button">Pay</button> <div id="confirm-errors"></div>
checkout.js
const checkout = stripe.initCheckout({clientSecret}); const loadActionsResult = await checkout.loadActions(); if (loadActionsResult.type === 'success') { const {actions} = loadActionsResult; const button = document.getElementById('pay-button'); const errors = document.getElementById('confirm-errors'); button.addEventListener('click', () => { // Clear any validation errors errors.textContent = ''; actions.confirm().then((result) => { if (result.type === 'error') { errors.textContent = result.error.message; } }); }); }

Escucha webhooks
Servidor

Para completar la integración, tienes que procesar los webhooks que envió Stripe. Estos son eventos que se originan cada vez que un estado dentro de Stripe cambia, por ejemplo, cuando las suscripciones crean facturas nuevas. En tu aplicación, configura un controlador de HTTP para aceptar una solicitud POST que contenga el evento de webhook y verifica la firma del evento:

server.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/webhook' do # You can use webhooks to receive information about asynchronous payment events. # For more about our webhook events check out https://stripe.com/docs/webhooks. webhook_secret = ENV['STRIPE_WEBHOOK_SECRET'] payload = request.body.read if !webhook_secret.empty?

Durante el desarrollo, utiliza la CLI de Stripe para observar los webhooks y reenviarlos a tu solicitud. Ejecuta lo siguiente en un terminal nuevo mientras se ejecuta tu aplicación de desarrollo:

Command Line
stripe listen --forward-to localhost:4242/webhook

Para la producción, configura una URL de punto de conexión webhook en el Dashboard o utiliza la API de puntos de conexión webhook .

Necesitas escuchar algunos eventos para completar los pasos restantes de esta guía. Consulta Eventos de suscripción para obtener más detalles sobre los webhooks específicos de suscripción.

Brindar acceso a tu servicio
Cliente y servidor

Ahora que la suscripción está activa, dale a tu usuario acceso a tu servicio. Para ello, escucha los eventos customer.subscription.created, customer.subscription.updated, y customer.subscription.deleted. Estos eventos pasan un objeto Subscription que contiene un campo status que indica si la suscripción está activa, vencida o cancelada. Consulta el ciclo de vida de la suscripción para obtener una lista completa de estados.

En tu controlador de webhook:

  1. Verifica el estado de la suscripción. Si es activo, entonces tu usuario ha pagado por su producto.
  2. Revisa el producto al que se suscribió el cliente y bríndale acceso al servicio. Es mejor revisar el producto que el precio porque te da más flexibilidad en caso de que tengas que cambiar el precio o el período de facturación.
  3. Almacena el product.id, subscription.id y el subscription.status en tu base de datos junto con customer.id que ya guardaste. Consulta este registro cuando tengas que determinar qué funcionalidades habilitar para el usuario en tu aplicación.

El estado de la suscripción puede cambiar en cualquier momento de su ciclo de vida, incluso si tu solicitud no hace ninguna llamada directa a Stripe. Por ejemplo, se puede producir un error de renovación debido a una tarjeta de crédito vencida, lo que genera que el estado de la suscripción pase a vencido. O, si usas el portal de clientes, un usuario puede optar por cancelar la suscripción sin ingresar a tu aplicación directamente. El uso correcto del controlador mantiene el estado de tu solicitud sincronizado con Stripe.

Cancelación de la suscripción
Cliente y servidor

Con frecuencia, se les permite a los clientes cancelar su suscripción. En este ejemplo, se agrega la opción de cancelación en la página de configuración de la cuenta.

Ejemplo de interfaz de cancelación de suscripción.

Configuración de la cuenta con la posibilidad de cancelar la suscripción

script.js
function cancelSubscription(subscriptionId) { return fetch('/cancel-subscription', { method: 'post', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ subscriptionId: subscriptionId, }), }) .then(response => { return response.json(); }) .then(cancelSubscriptionResponse => { // Display to the user that the subscription has been canceled. }); }

En el back-end, define el punto de conexión para que el front-end haga la llamada.

server.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/cancel-subscription' do content_type 'application/json' data = JSON.parse request.body.read deleted_subscription = Stripe::Subscription.cancel(data['subscriptionId']) deleted_subscription.to_json end

En tu aplicación, se recibe un evento customer.subscription.deleted.

Una vez que se cancela la suscripción, actualiza tu base de datos para eliminar el ID de suscripción a Stripe que estaba almacenado y limitar el acceso al servicio.

Cuando se cancela una suscripción, no se puede reactivar. En su lugar, recopila la información de facturación actualizada de tu cliente, actualiza su método de pago predeterminado y crea una nueva suscripción con su registro de cliente existente.

Prueba la integración

Prueba métodos de pago

Usa la siguiente tabla para probar diferentes métodos y escenarios de pago.

Método de pagoEscenarioCómo hacer la prueba
Débito directo BECSTu cliente paga correctamente con débito directo BECS.Completa el formulario con el número de cuenta 900123456 y BSB 000000. El PaymentIntent confirmado pasa en un principio al estado en proceso y, tres minutos más tarde, a finalizado con éxito.
Débito directo BECSEl pago de tu cliente falla con un código de error account_closed.Completa el formulario con el número de cuenta 111111113 y BSB 000000.
Tarjeta de créditoEl pago con tarjeta se efectúa correctamente y no requiere autenticación.Completa el formulario de tarjeta de crédito con el número de tarjeta 4242 4242 4242 4242 y cualquier fecha de vencimiento, CVC y código postal.
Tarjeta de créditoEl pago con tarjeta requiere autenticación.Completa el formulario de tarjeta de crédito con el número de tarjeta 4000 0025 0000 3155 y cualquier fecha de vencimiento, CVC y código postal.
Tarjeta de créditoLa tarjeta es rechazada con el código insufficient_funds.Completa el formulario de tarjeta de crédito con el número de tarjeta 4000 0000 0000 9995 y cualquier fecha de vencimiento, CVC y código postal.
Débito directo SEPATu cliente paga correctamente con débito directo SEPA.Completa el formulario con el número de cuenta AT321904300235473204. El PaymentIntent confirmado pasa inicialmente al estado “en proceso” y, tres minutos más tarde, a “completado”.
Débito directo SEPAEl estado de PaymentIntent de tu cliente pasa de processing a requires_payment_method.Completa el formulario con el número de cuenta AT861904300235473202.

Supervisa los acontecimientos

Configura webhooks para escuchar los eventos de cambio de suscripción, como actualizaciones y cancelaciones. Más información sobre webhooks de suscripción. Puedes ver los eventos en el Dashboard o con Stripe CLI.

Para más detalles, consulta Comprobación de la integración con Billing.

OpcionalPermitir que los clientes cambien de plan
Cliente y servidor

Para permitirles a los clientes cambiar de suscripción, recopila el ID de precio de la opción a la que quieren pasar. A continuación, envía el nuevo ID de precio desde el front-end a un punto de conexión del back-end. En el ejemplo, también se especifica el ID de suscripción, pero puedes recuperarlo de tu base de datos para el usuario que ha iniciado sesión.

script.js
function updateSubscription(priceId, subscriptionId) { return fetch('/update-subscription', { method: 'post', headers: { 'Content-type': 'application/json', }, body: JSON.stringify({ subscriptionId: subscriptionId, newPriceId: priceId, }), }) .then(response => { return response.json(); }) .then(response => { return response; }); }

En el back-end, define el punto de conexión para que el front-end haga la llamada especificando el ID de suscripción y el nuevo ID de precio. La suscripción ahora es una suscripción prémium que cuesta USD 15 por mes en lugar de una suscripción básica de USD 5 por mes.

server.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/update-subscription' do content_type 'application/json' data = JSON.parse request.body.read subscription = Stripe::Subscription.retrieve(data['subscriptionId']) updated_subscription = Stripe::Subscription.update( data['subscriptionId'], cancel_at_period_end: false, items: [ { id: subscription.items.data[0].id, price: 'price_H1NlVtpo6ubk0m' } ] ) updated_subscription.to_json end

En tu aplicación, se recibe un evento customer.subscription.updated.

OpcionalPrevisualizar un cambio de precio
Cliente y servidor

Cuando tu cliente cambia de suscripción, a menudo se produce un ajuste del importe que debe, conocido como prorrateo. Puedes utilizar el punto de conexión de creación de factura preliminar para mostrar el importe ajustado a tus clientes.

En el front-end, pasa los detalles de creación de vista previa de la factura a un punto de conexión de back-end.

script.js
function createPreviewInvoice( customerId, subscriptionId, newPriceId, trialEndDate ) { return fetch('/create-preview-invoice', { method: 'post', headers: { 'Content-type': 'application/json', }, body: JSON.stringify({ customerId: customerId, subscriptionId: subscriptionId, newPriceId: newPriceId, }), }) .then(response => { return response.json(); }) .then((invoice) => { return invoice; }); }

En el back-end, define el punto de conexión para que el front-end haga la llamada.

server.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/create-preview-invoice' do content_type 'application/json' data = JSON.parse request.body.read subscription = Stripe::Subscription.retrieve(data['subscriptionId']) invoice = Stripe::Invoice.create_preview( customer: data['customerId'], subscription: data['subscriptionId'], subscription_details: { items: [ { id: subscription.items.data[0].id, deleted: true }, { price: ENV[data['newPriceId']], deleted: false } ] } ) invoice.to_json end

OpcionalMostrar el método de pago del cliente
Cliente y servidor

Mostrar la marca y los últimos 4 dígitos de la tarjeta le permite saber al cliente qué tarjeta se está utilizando o si es necesario actualizar el método de pago.

En el front end, envía el identificador del método de pago a un punto de conexión que recupere los detalles del método de pago.

script.js
function retrieveCustomerPaymentMethod(paymentMethodId) { return fetch('/retrieve-customer-payment-method', { method: 'post', headers: { 'Content-type': 'application/json', }, body: JSON.stringify({ paymentMethodId: paymentMethodId, }), }) .then((response) => { return response.json(); }) .then((response) => { return response; }); }

En el back-end, define el punto de conexión para que el front-end haga la llamada.

server.rb
Ruby
Python
PHP
Java
Node.js
Ir
.NET
No results
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/retrieve-customer-payment-method' do content_type 'application/json' data = JSON.parse request.body.read payment_method = Stripe::PaymentMethod.retrieve(data['paymentMethodId']) payment_method.to_json end

Ejemplo de respuesta:

{ "id": "pm_1GcbHY2eZvKYlo2CoqlVxo42", "object": "payment_method", "billing_details": { "address": { "city": null, "country": null, "line1": null, "line2": null, "postal_code": null,

Nota

Te recomendamos guardar paymentMethod.id y last4 en tu base de datos, por ejemplo, paymentMethod.id como stripeCustomerPaymentMethodId en tu colección o tabla de usuarios. Si lo necesitas, también tienes la opción de guardar exp_month, exp_year, fingerprint y billing_details. Esto sirve para limitar el número de llamadas a Stripe, mejorar el rendimiento y evitar una posible limitación de la frecuencia.

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.

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