En primer lugar, estoy usando React y NodeJs para esta integración.
Sé que es posible redirigir al sitio web usando location.href en la función de controlador.
Pero, ¿qué pasa si estamos usando redirect=true como opción?
También se menciona que podemos pasar callback_url al objeto de opciones. Esto hará que razorpay redirija a esta URL después de una transacción exitosa, pero será una solicitud POST . Por lo tanto, no podemos dar la URL de nuestro sitio web aquí.
ejemplo:
const options = { key: "razorpay_key", currency: data.currency, amount: data.amount.toString(), order_id: data.id, handler: function (response) { alert(response.razorpay_payment_id); alert(response.razorpay_order_id); alert(response.razorpay_signature); }, prefill: { name, email: "abcd@xyz.com", contact: "9999999999", method: "netbanking", }, redirect: true, // this redirects to the bank page from my website without opening a new window callback_url: "not sure what to do with it", };¿Hay alguna manera de volver a la página del carrito/sitio web con estos parámetros en params (razorpay_payment_id, razorpay_order_id, razorpay_signature) después de completar la transacción?
aquí puede verificar todos los parámetros para las opciones de pago: https://razorpay.com/docs/payments/server-integration/nodejs/payment-gateway/build-integration/#checkout-options
Enlace de documentos de pago web de Razorpay: https://razorpay.com/docs/payments/payment-gateway/web-integration/standard/
Debería tener otra base de datos que almacene todo el valor de su pedido.
Entonces, su callback_url será:
Api a la base de datos + order_id único para brindarle detalles del pedido.
var options = { ... // existing options callback_url: 'https://localhost:3000/cart'+order_id, redirect: true }Eventualmente, encontré una manera de hacer lo mismo. Como estoy usando SSR, creé una ruta POST en mi servidor y simplemente redirigí desde allí a mi página web.
me gusta,
app.post('/verification', asyncHandler((req, res) => {res.redirect(301, `webpage_url?query_param=${req.body.razorpay_payment_id}`}))entonces, el objeto de opciones de pago se ve a continuación
const options = { ... // existing options redirect: true, callback_url: "server_address/verification", };Espero que ayude a alguien que enfrenta el mismo problema :)