Stripe checkout is throwing the error despite having product, product_data declared in the stripe backend(nodejs).
I don't understand what I'm doing wrong, pls help!
Code.
import express from "express";
import Stripe from "stripe";
import dotenv from "dotenv";
dotenv.config();
const stripeRouter = express.Router();
const stripe = new Stripe(process.env.STRIPE_KEY);
stripeRouter.post("/payment", async (req, res) => {
const { cartItems, total } = req.body;
console.log(...cartItems, total);
try {
const session = await stripe.checkout.sessions.create({
submit_type: "pay",
mode: "payment",
payment_method_types: ["card"],
billing_address_collection: "auto",
shipping_options: [
{ shipping_rate: "shr_1Lkm2USAcQw5wr3Edpx6IHaC" },
{ shipping_rate: "shr_1Lkm3hSAcQw5wr3E2hMHSqQI" },
],
line_items: cartItems.map((item, i) => {
return {
price_data: {
currency: "inr",
product_data: {
name: item.name,
},
unit_amount: item.price * 100,
},
adjustable_quantity: {
enabled: true,
minimum: 1,
},
quantity: item.cartQuantity,
};
}),
mode: "payment",
success_url: `http://localhost:4000?success=true`,
cancel_url: `http://localhost:6000?canceled=true`,
});
res.status(200).json(session);
} catch (error) {
res.status(500).json({ message: error });
}
});
export default stripeRouter;