Estoy trabajando en la API de pago de Stripe y tengo un formulario para recopilar datos que está escrito en HTML y me gustaría recuperar los datos recopilados en otro archivo javascript (server.js). He intentado cambiar ${AMOUNT} a req.body.amount pero parece que ese no es el caso. ¿Es realmente posible recuperar los datos a través del método de form ? ¿O solo se puede hacer en el método de fetch ?
HTML:
<form action="/create-checkout-session" method="POST" id="create-checkout-session"> <div className="description"> <span>Price:</span> <input type="number" className="field" id="amount" name="amount" min="500"/> <button type="submit" id="checkout"> Checkout </button> </div> </form>Javascript (servidor.js):
app.post('/create-checkout-session', async (req, res) => { const session = await stripe.checkout.sessions.create({ line_items: [ { price_data: { currency: 'hkd', product_data: { name: "Test", }, unit_amount: ${AMOUNT}, }, quantity: 1, }, ], mode: 'payment', success_url: `${YOUR_DOMAIN}?success=true`, cancel_url: `${YOUR_DOMAIN}?canceled=true`,}); res.redirect(303, session.url); }); app.listen(4242, () => console.log('Running on port 4242'));Resolví esto agregando express.urlencoded en server.js, que se ve así:
app.use(express.urlencoded({ extended: true }));