Tengo una aplicación React donde el cliente completa un formulario para guardarlo en mi base de datos. Luego, el cliente procede a realizar un pago basado en Stripe. Solo después de recibir la confirmación del pago se deben cargar los datos.
Los datos del formulario incluyen múltiples atributos como los siguientes
data = { name: "Mike", summary: "some long text", ... }El flujo de trabajo sería similar al siguiente:
Client fills out form -> Payment -> Payment confirmation -> Post-payment action (uploading the data from step 1) Conozco los webhooks de Stripe, así como los line_items , pero me preguntaba si usar este último sería una buena práctica, ya que algunos de los valores de atributos en data pueden ser bastante largos. ¿Hay un enfoque más común para este caso?
ya que algunos de los valores de atributos en los datos pueden ser bastante largos.
¿Que problema estas tratando de resolver? ¿Evitar el desbordamiento de la base de datos? ¿Evitar enviar grandes cantidades de datos en solicitudes de API? Para ambos casos, es adecuado crear un registro temporal en la base de datos, que se eliminará cuando su webhook detecte el evento checkout.session.expired (por ejemplo).
Stripe recomienda que maneje cualquier acción/cumplimiento posterior al pago utilizando sus eventos con un webhook. En este caso, escucharía el evento payment_intent.succeeded y crearía un controlador de webhook que guarde los campos/información requeridos del objeto Payment Intent en su base de datos.