Estoy usando la sesión de pago de franjas preconstruida en node.js. aquí está mi función:
app.get('/create-checkout-session', async (req, res) => { let customer = { price: req.query.price, quantity: req.query.quantity, page: req.query.page, email: req.query.email, name: req.query.name } // insertIntoDbPreCheckout(customer, req, res) let successurl = 'http://localhost:1111/' + customer.page + '' let failedurl = 'http://localhost:1111/' + customer.page + '' const session = await stripe.checkout.sessions.create({ payment_method_types: ['card'], metadata: { 'description': customer.page }, customer_email: customer.email, line_items: [ { price_data: { currency: 'cad', product_data: { name: customer.page, }, unit_amount: customer.price, }, quantity: customer.quantity, }, ], mode: 'payment', success_url: successurl, cancel_url: failedurl, }) res.redirect(303, session.url); }); Estoy tratando de pasar METADATA , pero no me deja.
No puedo encontrar nada en línea que me muestre cómo hacer esto, y no funciona sin importar lo que intente. ¿Cómo puedo arreglar esto?
editar:
cuando registro a los clientes, se muestra así:
email: 'uuu@u.com', invoice_prefix: '9FC11B6D', invoice_settings: { custom_fields: null, default_payment_method: null, footer: null }, livemode: false, metadata: {}, como puede ver, metadata están vacíos
Según la pregunta actualizada, esto se espera. Los metadata que ha proporcionado se encuentran en la propia sesión de Checkout. Está examinando el objeto Cliente creado por la sesión de Pago, que no tiene metadata (todavía).
Puede agregar metadatos del cliente si lo desea, actualizando el cliente:
const customer = await stripe.customers.update( 'cus_123', {metadata: {order_id: '6735'}} );Los metadatos existentes estarían en el objeto de sesión de Checkout.