Configurar una suscripción con PayPal
Obtén información sobre cómo crear y cobrar una suscripción con PayPal.
Precaución
Para comenzar a aceptar suscripciones de PayPal en Stripe, los pagos recurrentes con PayPal deben estar habilitados en el Dashboard.
Usa esta guía para configurar una suscripción con PayPal como método de pago.
Crear un producto y un precioDashboard
Los Productos representan el artículo o servicio que vendes. Los Precios definen cuánto cobras un producto y con qué frecuencia. Esto incluye el costo del producto, la moneda aceptada y si se trata de un cargo único o recurrente. Si tienes pocos productos y precios, puedes crearlos y gestionarlos en el Dashboard.
La guía toma como ejemplo una foto de archivo de un servicio por el que se cobra a los clientes una suscripción mensual de 15 EUR. Para modelar la suscripción:
- Ve a la página Agregar un producto.
- Ingresa el Nombre del producto.
- Ingresa 15 como el precio.
- Selecciona EUR como moneda.
- Haz click en Guardar producto.
Después de crear el producto y el precio, registra el ID del precio para usarlo en pasos sucesivos. La página de tarifas te muestra el ID, que será similar a esto: price_
.
Crear o recuperar un objeto Customer antes de la configuraciónLado del servidor
Para reutilizar un método de pago de PayPal para futuros pagos, adjúntalo a un Cliente.
Crea el objeto Customer cuando tu cliente crea una cuenta en tu empresa. Al asociar el ID del objeto Customer a tu propia representación interna de un cliente, podrás recuperar y usar los datos del método de pago guardado más adelante. Si tu cliente no ha creado una cuenta, puedes crear un objeto Customer ahora y asociarlo a tu propia representación interna de la cuenta del cliente más adelante.
Crear un SetupIntentLado del servidor
Un SetupIntent es un objeto que representa tu intención y hace un seguimiento de los pasos para configurar el método de pago del cliente para futuros pagos.
Crea un SetupIntent en tu servidor con payment_method_types establecido en paypal
y especifica el id del objeto Customer:
El objeto Setupintent contiene una client_secret, una clave única que debes pasar a Stripe en el lado del cliente para redirigir a tu comprador a PayPal y autorizar la orden.
Redirigir a tu clienteLado del cliente
Cuando un cliente intente configurar su cuenta de PayPal para pagos futuros, te recomendamos usar Stripe.js para confirmar el SetupIntent. Stripe.js es nuestra biblioteca principal de JavaScript para crear flujos de pago. Automáticamente gestionará las complejidades, como los redireccionamientos descritos a continuación, y te permite extender tu integración con facilidad a otros métodos de pago en el futuro.
Incluye el script de Stripe.js en tu página de pago agregándolo al encabezado de tu archivo HTML.
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>
Crea una instancia de Stripe.js con el siguiente JavaScript en tu página de pago.
// Set your publishable key. Remember to change this to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
, {} );'pk_test_TYooMQauvdEDq54NiTphI7jx'
Para confirmar la configuración del lado del cliente, especifica el secreto de cliente del objeto SetupIntent que creaste en el paso 3.
El secreto de cliente es diferente de las claves API que autentican las solicitudes de la API de Stripe. Debe administrarse con cuidado porque sirve para completar el cargo. No lo registres, no lo insertes en direcciones URL ni lo expongas a nadie excepto al cliente.
Confirmar la configuración de PayPal
Para autorizarte para que puedas usar su cuenta de PayPal para pagos futuros, tu cliente será redirigido a la página del acuerdo de facturación de PayPal, que deberá aprobar antes de ser redirigido nuevamente a tu sitio web. Usa stripe.confirmPayPalSetup para gestionar el redireccionamiento desde tu página y completar la configuración. Agrega una return_
a esta función para indicar a dónde Stripe debe redirigir al usuario después de que apruebe el acuerdo de facturación en el sitio web de PayPal.
// Redirects away from the client const {error} = await stripe.confirmPayPalSetup( '{{SETUP_INTENT_CLIENT_SECRET}}', { return_url: 'https://example.com/setup/complete', mandate_data: { customer_acceptance: { type: 'online', online: { infer_from_client: true } } }, } ); if (error) { // Inform the customer that there was an error. }
Puedes encontrar el ID del pagador del método de pago y el ID del acuerdo de facturación en la orden resultante en la propiedad payment_method_details. También puedes encontrar el correo electrónico y el ID de pagador del comprador en la propiedad PayPal en PaymentMethod.
Campo | Valor |
---|---|
payer_ | La dirección de correo electrónico del pagador en su cuenta de PayPal. |
payer_ | Un ID único de la cuenta de Paypal del pagador. |
billing_ | El ID del Acuerdo de Facturación de PayPal (BAID). Es un ID generado por PayPal que representa el mandato entre el negocio y el cliente. |
Supervisar webhooksLado del servidor
Utiliza un método como los webhooks para confirmar que el cliente autorizó correctamente el acuerdo de facturación, en lugar de depender de que tu cliente regrese a la página de estado del pago. Cuando un cliente autoriza correctamente el acuerdo de facturación, el SetupIntent emite el evento de webhook setup_intent.succeeded. Si un cliente no autoriza correctamente el acuerdo de facturación, el SetupIntent emitirá el evento de webhook setup_intent.setup_failed y volverá al estado requires_
. Cuando un cliente revoca el acuerdo de facturación de su cuenta de PayPal, se emite el mandate.updated.
Crear la suscripciónLado del servidor
Crea una suscripción con el precio y el cliente:
Cuando se crea una suscripción, se le cobra al cliente automáticamente porque se establece el método de pago predeterminado. Una vez efectuado el pago, el estado de la suscripción en el Dashboard de Stripe cambia a Activa. El precio creado previamente determina las facturaciones sucesivas.
Gestionar el estado de la suscripciónLado del cliente
Si el pago inicial se efectúa correctamente, el estado de la suscripción será active
y no será necesario hacer nada más. Si los pagos fallan, el estado cambia al estado de suscripción definido en tu configuración de cobro automático. Debes notificar al cliente si falla el pago y cobrarle con un método de pago distinto.
Actualizar una suscripciónLado del servidor
Cuando actualices una suscripción, debes especificar off_
. De lo contrario, cualquier nuevo pago requerirá una redirección del usuario a PayPal para su confirmación. Por ejemplo, si deseas cambiar la cantidad de un artículo incluido en la suscripción, puedes usar:
Prueba la integración
Prueba tu integración con PayPal con tus claves de API de prueba al visualizar la página de redireccionamiento. Puedes probar el caso de pago exitoso al autenticar el pago en la página de redireccionamiento. El PaymentIntent pasará de requires_
a succeeded
.
Para probar el caso en el que falla la autenticación del usuario, usa tus claves de API de prueba y visualiza la página de redireccionamiento. En la página de redireccionamiento, haz click en Error en el pago de prueba. El Paymentintent hará la transición de requires_
a requires_
.