Estoy tratando de asegurarme de que la solicitud de publicación no ocurra si el cuerpo no contiene un objeto de suscripción. Esto es para un carrito de compras que permite pagos únicos y suscripciones. El problema es que cuando un usuario que tiene una suscripción regresa al sitio para comprar un artículo de pago único, estas funciones reemplazarán el valor en la base de datos con "nulo" porque crea un nuevo objeto todo lo que el usuario paga. Esto se basa en bandas y trata de evitar el uso de webhooks.
Interfaz
let { data, error } = useSWR( router.query.session_id ? `/api/checkout_sessions/${router.query.session_id}` : null, fetchGetJSON ); if (error) return <div>failed to load</div>; if (state && state.token) { const submitStripInfo = async () => { if (data == undefined) { return; } const token = JSON.parse(localStorage.getItem("auth")!); // console.log("token", ); axios({ method: "post", url: `${baseUrl}`, data: data, headers: { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET,PUT,POST,DELETE,PATCH,OPTIONS", Authorization: "Bearer " + token.token, }, }) .then((res) => { console.log("response", res.data.result); data = undefined; alert(res.data.result); }) .catch((error) => { console.log("error", error); }); if (state.user) { console.log("user is here"); console.log(data); } }; submitStripInfo(); }Código back-end (NODO)
export const createSubscription = async (req, res) => { // console.log("req_data", JSON.stringify(req.body)); try { const subscriptions = JSON.stringify(req.body.subscription, null, 4); console.log(subscriptions) const user = await User.findByIdAndUpdate(req.user._id, { subscriptions: {subscriptions}, }, ); if (!user) return res .status(400) .send("User not found") .save(); console.log("success"); return res.json({subscriptions, result: 'successfuls'}); } catch (error) { console.log(error); } };