如何在 Razorpay 交易结束后重定向回我的网站。注意:如果 "redirect=true" 作为选项传递

How to Redirect back to my website after transaction ends on Razorpay . Note: if "redirect=true" is passed as an option

首先,我使用 React 和 NodeJs 进行此集成。

我知道可以在处理函数中使用 location.href 重定向回网站。

但是如果我们使用 redirect=true 作为选项呢?

还提到我们可以将 callback_url 传递给选项对象。这将使 razorpay 在交易成功后重定向到此 URL,但这将是一个 POST 请求。所以,我们不能在这里给出我们网站的URL。

示例:

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",
};

有什么方法可以在交易完成后使用params (razorpay_payment_id、razorpay_order_id、razorpay_signature)中的这些参数返回到cart/website页面.

在这里您可以检查结帐选项的所有参数:https://razorpay.com/docs/payments/server-integration/nodejs/payment-gateway/build-integration/#checkout-options

Razorpay 网络结帐文档 link:https://razorpay.com/docs/payments/payment-gateway/web-integration/standard/

您应该有另一个数据库来存储您订单的所有价值。

因此,您的 callback_url 将是 -

Api到数据库+唯一order_id为您提供订单详情。

var options = {
  ... // existing options
  callback_url: 'https://localhost:3000/cart'+order_id,
  redirect: true
}

最终,我找到了同样的方法。 当我使用 SSR 时,我在我的服务器上创建了一个 POST 路由,然后简单地从那里重定向到我的网页。

喜欢,

app.post('/verification', asyncHandler((req, res) => {res.redirect(301, `webpage_url?query_param=${req.body.razorpay_payment_id}`}))

因此,结帐选项对象如下所示

const options = {
    ... // existing options
    redirect: true,
    callback_url: "server_address/verification",
};

希望它能帮助遇到同样问题的人:)