instead of rental data in local storage, using stripe metadata

This commit is contained in:
jackiettran
2025-08-28 17:41:47 -04:00
parent 38346bec27
commit 0f04182768
6 changed files with 197 additions and 56 deletions

View File

@@ -8,7 +8,7 @@ const platformFee = 0.1;
router.post("/create-checkout-session", async (req, res) => {
try {
const { itemName, total, return_url } = req.body;
const { itemName, total, return_url, rentalData } = req.body;
if (!itemName) {
return res.status(400).json({ error: "No item name found" });
@@ -20,10 +20,24 @@ router.post("/create-checkout-session", async (req, res) => {
return res.status(400).json({ error: "No return_url found" });
}
// Prepare metadata - Stripe metadata keys must be strings
const metadata = rentalData
? {
itemId: rentalData.itemId,
startDate: rentalData.startDate,
endDate: rentalData.endDate,
startTime: rentalData.startTime,
endTime: rentalData.endTime,
totalAmount: rentalData.totalAmount.toString(),
deliveryMethod: rentalData.deliveryMethod,
}
: {};
const session = await StripeService.createCheckoutSession({
item_name: itemName,
total: total,
return_url: return_url,
metadata: metadata,
});
res.json({ clientSecret: session.client_secret });
@@ -44,6 +58,7 @@ router.get("/checkout-session/:sessionId", async (req, res) => {
status: session.status,
payment_status: session.payment_status,
customer_email: session.customer_details?.email,
metadata: session.metadata,
});
} catch (error) {
console.error("Error retrieving checkout session:", error);