UNPKG

@redwoodjs-stripe/api

Version:

API-side code for RedwoodJS-Stripe projects

42 lines (41 loc) 1.08 kB
import { deepOmitNils } from "../../lib/deepOmitNils.js"; import { stripe } from "../../lib/stripe.js"; const checkout = async ({ customer, mode, cart, successUrl = "http://localhost:8910/stripe-demo?success=true&sessionId={CHECKOUT_SESSION_ID}", cancelUrl = "http://localhost:8910/stripe-demo?success=false", allowPromotionCodes = false }) => { const line_items = cart.map((product) => ({ price: product.id, quantity: product.quantity })); const payload = deepOmitNils({ success_url: successUrl, cancel_url: cancelUrl, // eslint-disable-next-line camelcase line_items, mode, payment_method_types: ["card"], allow_promotion_codes: allowPromotionCodes, customer: customer?.id ?? null }); const session = await stripe.checkout.sessions.create(payload); const { id, url } = session; return { id, url }; }; const retrieveStripeCheckoutSession = async ({ id }) => { const session = await stripe.checkout.sessions.retrieve(id); return session; }; export { checkout, retrieveStripeCheckoutSession };