如何解决Razorpay 订阅处理程序不发送 response.razorpay_subcription_id 和 response.razorpay_signature
我正在尝试实现一种模型,如果用户在第一次注册订阅时根据他选择的计划付费。
我使用 ReactJs 作为前端,NodeJs 作为后端。
我目前面临两个问题 -
- 未获得 razorpay_subscription_id 和 razorpay_signature -
这是用于创建订阅并返回订阅 ID 以供进一步处理的 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 必须是您的网络应用清单中的字典。
注意 - 出于安全原因,我替换了下面的密钥。
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
- 未捕获付款且不被视为订阅付款
我上面使用的计划是卢比。每周收取 699 美元,但在支付金额时,我只被要求支付卢比。 1. 根据 Razorpay 文档,此 rs 1 是用户订阅计划的授权,一旦成功,计划金额将根据计划从用户帐户中扣除。但没有这样的事情发生。此外,在 Razorpay 仪表板中,这笔付款被视为授权,而不是捕获。
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。