Tengo este componente simple, que envía una orden de pago client-side-only a mi cuenta de stripe. Todo funciona, pero no puedo averiguar cómo obtener una response / token de stripe con la información del pedido, que puedo enviar a mi backend.
<script setup> import {onMounted} from "vue"; let stripe = null onMounted(async () => { stripe = Stripe(import.meta.env.VITE_STRIPE_PUBLISHABLE_KEY) }) const redirect = () => { stripe.redirectToCheckout({ successUrl: 'http://localhost:8000/success', cancelUrl: 'http://localhost:8000/cancel', lineItems: [ { price: import.meta.env.VITE_PHOTO_PRICE, quantity: 2 } ], mode: 'payment' }) } </script> <template> <div id="checkout" class="checkout"> <button @click="redirect">Pay now!</button> </div> </template>¿Hay una referencia en los documentos de pago de la raya o algo así?
La ruta de integración que eligió aquí se llama Checkout solo para el cliente, pero Stripe lo desechó hace un par de años y en este momento se desaconseja en su mayoría. En cambio, Stripe creó su nuevo producto llamado Payment Links , que es aún más fácil. Configura lo que desea vender en el Tablero, obtiene una URL que se parece a https://buy.stripe.com/123ABC456 y puede compartir esa URL con cualquiera de sus clientes para que le paguen.
Sin embargo, para centrarse en su pregunta específica, no hay una "identificación de pedido" ni nada más devuelto por redirectToCheckout() . El objetivo de esta llamada es enviar a su cliente a la página de pago alojada de Stripe de inmediato. Si necesita asignar este pago futuro a un cliente o pedido específico, debe usar la propiedad client_reference_id asociada con una Session de pago. Puede configurarlo en el lado del cliente como clientReferenceId en su llamada y se configurará en la propia sesión para usted. Cuando reciba el evento checkout.session.completed enviado a su controlador de webhook, o después de la redirección desde Checkout, podrá asignar esa identificación a lo que haya almacenado internamente en su propio sistema/base de datos.