Razorpay 订阅处理程序未发送 response.razorpay_subcription_id 和 response.razorpay_signature
Razorpay subscription handler not sending response.razorpay_subcription_id and response.razorpay_signature
我正在尝试实施一个模型,在该模型中,如果用户是第一次付款,他将根据他选择的计划注册订阅。
我使用 ReactJs 作为前端,使用 NodeJs 作为后端。
我目前面临 2 个问题 -
- 没有得到 razorpay_subscription_id 和 razorpay_signature -
这是用于创建订阅并返回 subscriptionId 以供进一步处理的 Nodejs 代码。
const plans = await instance.plans.all();
let i;
for (i = 0; i < plans.count; i++) {
if (plans.items[i].item.name === "Test plan - Weekly") break;
}
const planId = plans.items[i].id;
const subscriptionData = {
plan_id: planId,
total_count: 1,
quantity: 1,
customer_notify: 1,
};
const response = await instance.subscriptions.create(subscriptionData);
res.send(response.id);
这是我打开razorpay进行支付的反应代码。当它打开时,我确实在控制台中收到错误消息,即 serviceworker must be a dictionary in your web app manifest.
注意 - 出于安全原因,我已经替换了下面的密钥。
axios.get("http://localhost:5000/razorpay").then((subscriptionId) => {
var options = {
key: "Test_Key",
subscription_id: subscriptionId,
name: "Consuma",
description: "Monthly Test Plan",
handler: function (response) {
console.log(response);
},
};
var razorpay = new window.Razorpay(options);
razorpay.open();
razorpay.on("payment.failed", function (response) {
alert(response.error.code);
alert(response.error.description);
alert(response.error.source);
alert(response.error.step);
alert(response.error.reason);
alert(response.error.metadata.order_id);
alert(response.error.metadata.payment_id);
});
});
我应该期待 razorpay_subscription_id 和 razorpay_signature 进行验证,但缺少这些字段。
以下是我得到的回复。
checkout_logo: "https://cdn.razorpay.com/logo.png"
custom_branding: false
org_logo: ""
org_name: "Razorpay Software Private Ltd"
razorpay_payment_id: "pay_HS0u4wIhrQavw
- 付款未被捕获且不被视为订阅付款
我上面使用的计划是 Rs.每周收费 699,但在支付金额时,我只被要求支付 Rs。 1. 根据 Razorpay 文档,此 rs 1 是用户订阅计划的授权,一旦订阅成功,计划金额将根据计划从用户帐户中扣除。但是没有这样的事情发生。此外,在 Razorpay 仪表板中,此付款被视为 授权 而不是 已捕获 。
所以,第一个问题是代码错误。我没有发送正确的订阅 ID,因此我没有收到任何预期的回复。
就 'serviceworker' 错误而言,我收到了来自 razorpay 团队的以下回复。
我正在尝试实施一个模型,在该模型中,如果用户是第一次付款,他将根据他选择的计划注册订阅。
我使用 ReactJs 作为前端,使用 NodeJs 作为后端。
我目前面临 2 个问题 -
- 没有得到 razorpay_subscription_id 和 razorpay_signature -
这是用于创建订阅并返回 subscriptionId 以供进一步处理的 Nodejs 代码。
const plans = await instance.plans.all();
let i;
for (i = 0; i < plans.count; i++) {
if (plans.items[i].item.name === "Test plan - Weekly") break;
}
const planId = plans.items[i].id;
const subscriptionData = {
plan_id: planId,
total_count: 1,
quantity: 1,
customer_notify: 1,
};
const response = await instance.subscriptions.create(subscriptionData);
res.send(response.id);
这是我打开razorpay进行支付的反应代码。当它打开时,我确实在控制台中收到错误消息,即 serviceworker must be a dictionary in your web app manifest.
注意 - 出于安全原因,我已经替换了下面的密钥。
axios.get("http://localhost:5000/razorpay").then((subscriptionId) => {
var options = {
key: "Test_Key",
subscription_id: subscriptionId,
name: "Consuma",
description: "Monthly Test Plan",
handler: function (response) {
console.log(response);
},
};
var razorpay = new window.Razorpay(options);
razorpay.open();
razorpay.on("payment.failed", function (response) {
alert(response.error.code);
alert(response.error.description);
alert(response.error.source);
alert(response.error.step);
alert(response.error.reason);
alert(response.error.metadata.order_id);
alert(response.error.metadata.payment_id);
});
});
我应该期待 razorpay_subscription_id 和 razorpay_signature 进行验证,但缺少这些字段。
以下是我得到的回复。
checkout_logo: "https://cdn.razorpay.com/logo.png"
custom_branding: false
org_logo: ""
org_name: "Razorpay Software Private Ltd"
razorpay_payment_id: "pay_HS0u4wIhrQavw
- 付款未被捕获且不被视为订阅付款
我上面使用的计划是 Rs.每周收费 699,但在支付金额时,我只被要求支付 Rs。 1. 根据 Razorpay 文档,此 rs 1 是用户订阅计划的授权,一旦订阅成功,计划金额将根据计划从用户帐户中扣除。但是没有这样的事情发生。此外,在 Razorpay 仪表板中,此付款被视为 授权 而不是 已捕获 。
所以,第一个问题是代码错误。我没有发送正确的订阅 ID,因此我没有收到任何预期的回复。
就 'serviceworker' 错误而言,我收到了来自 razorpay 团队的以下回复。