Tengo flujo cuando se le puede cobrar al usuario por detalles de la tarjeta, y estoy usando await stripe.createPaymentMethod para eso. Cuando el pago es exitoso, más tarde puedo obtener detalles de las compras de ese usuario con la tarjeta y la información de pago, así como la identificación del cliente "cus__idvalue".
const { error, paymentMethod } = await stripe.createPaymentMethod({ type: "card", card: elements.getElement(CardNumberElement), card: elements.getElement(CardExpiryElement), card: elements.getElement(CardCvcElement), });Mi pregunta es como puedo cobrar a un mismo usuario con tarjeta usada anteriormente, sin darle la opcion de digitar los datos de su tarjeta nuevamente. He leído documentos de Stripe sobre ese caso, pero no tengo una idea clara de qué métodos podrían ser útiles. ¡Agradezco cualquier ayuda de antemano!
La funcionalidad de lo que puede hacer está limitada por lo que proporciona la API de stripe, dudo que la API permita ingresar previamente los detalles de la tarjeta en función de transacciones anteriores, excepto si almacena los detalles de la tarjeta en la base de datos de su sitio, lo cual es una falla de seguridad.
Sin embargo, algunos procesadores de tarjetas pueden permitirlo, así que confirme desde Stripe si eso está permitido, en cuyo caso puede permitir que los usuarios almacenen los detalles de la tarjeta en su cuenta de usuario en su sitio web, por lo que solo cuando un usuario inicia sesión puede almacenarse previamente. los datos de la tarjeta se pueden utilizar para las transacciones.
PaymentMethods solo se pueden reutilizar cuando se adjuntan a un cliente. Para recuperar todos los PaymentMethods para un cliente determinado, puede usar el punto finallistPaymentMethods con un parámetro de ID de cliente y luego usar el ID de PaymentMethod para crear un nuevo PaymentIntent como este:
const paymentIntent = await stripe.paymentIntents.create({ amount: 2000, currency: "usd", payment_method: “REPLACE_WITH_PAYMENT_METHOD_ID”, confirm: true, });