Итак, я делаю веб -приложение, интегрирующее платежный шлюз Razorpay,
Я не могу определить, почему порядок, когда я нажимаю на эти < /p>
Это кнопка отмены на всплывающем окне Razorpay < /p>
Это кнопка, чтобы подтвердить отмену. Отправлено, для которого я не смог найти решение.
Итак, я делаю веб -приложение, интегрирующее платежный шлюз Razorpay, Я не могу определить, почему порядок, когда я нажимаю на эти < /p> Это кнопка отмены на всплывающем окне Razorpay < /p> Это кнопка, чтобы подтвердить отмену. Отправлено, для которого я не смог найти решение.[code]const placeOrder = async (req, res) => { try { const { userId, items, amount, address, color } = req.body
const newOrder = new orderModel({ userId, items, address, amount, paymentMethod: "Razorpay", payment: false, // Payment status is false initially date: Date.now(), });
await newOrder.save();
const options = { amount: amount * 100, // Amount in paise (Razorpay expects paise) currency: "INR", receipt: newOrder._id.toString(), // This will be used later to identify the order };
// Generate the Razorpay signature from the server-side const generated_signature = crypto .createHmac("sha256", process.env.RAZORPAY_KEY_SECRET) .update(razorpay_order_id + "|" + razorpay_payment_id) .digest("hex");
// Check if the signature matches if (generated_signature !== razorpay_signature) { return res.json({ success: false, message: "Invalid signature" }); }
// Update the order to indicate payment has been completed const updatedOrder = await orderModel.findByIdAndUpdate( razorpay_order_id, { payment: true }, // Mark payment as true { new: true } );
if (!updatedOrder) { return res.json({ success: false, message: "Order not found" }); }
// Clear the user's cart data upon successful payment await userModel.findByIdAndUpdate(userId, { cartData: {} });
res.json({ success: true, message: "Payment verified successfully" }); } catch (error) { console.log(error); res.json({ success: false, message: error.message }); } }; < /code> Вот как я обращаюсь с платежом проверки в моем фронте < /p> const Verify = () => { const { navigate, token, backendUrl, user, setCartItems, } = useContext(ShopContext);
if (res.data.success) { toast.success("Payment successful!"); setCartItems({}); // Clear cart after successful payment setTimeout(() => navigate("/cart"), 3000); // Navigate to cart page after success } else { toast.error("Payment failed. If money was deducted, contact support."); setTimeout(() => navigate("/place-order"), 7000); // Redirect back to place order page if payment fails } } catch (err) { console.log(err); toast.error("Verification error. Try again."); setTimeout(() => navigate("/place-order"), 7000); // Redirect back to place order page in case of an error } finally { setLoading(false); // Stop loading } };
useEffect(() => { if (razorpay_payment_id && razorpay_signature && razorpay_order_id && token) { verifyPayment(); // Verify payment if the necessary params are present } else { toast.error("Payment not completed."); setTimeout(() => navigate("/place-order"), 5000); // Redirect if payment details are not valid } }, [razorpay_payment_id, razorpay_signature, razorpay_order_id, token]); [/code] Любая помощь, отражающая это действительно ценится спасибо.
Когда родитель завершает оплату сбора с помощью Razorpay, платеж успешно обрабатывается на стороне Razorpay. Однако после оплаты вместо перенаправления пользователя на страницу успеха приложение перенаправляет пользователя обратно на начальную...
Я добавил пакет razorpay, и он отображался в полноэкранном режиме. После этого я добавил аутентификацию Firebase, вход в Google, вход в Facebook. Опубликуйте эти обновления: экран оплаты Razor Pay уменьшен до средней части, как показано на...
Я разрабатываю решение для электронной коммерции, включающее Blazor WASM для клиента, Blazor Server для администратора и API для CRUD и платежных операций. Я использую последнюю версию Stripe (44.9) через тестовую учетную запись.
Проблема в том, что...
Я разрабатываю решение для электронной коммерции, включающее Blazor WASM для клиента, Blazor Server для администратора и API для CRUD и платежных операций. Я использую последнюю версию Stripe (44.9) через тестовую учетную запись.
Проблема в том, что...