node.js - razorpay 订单 ID 和 razorpay 签名值在付款响应中未定义
问题描述
在测试模式下工作时,我从处理程序响应中获得了未定义的razorpayOrderId和razorpaySignature值。所以后端支付验证失败。我已经坚持了一天多。非常感谢任何帮助。
这是我的代码片段:
const launchRazorpay = async () => {
const order = await axios.post(`${domain}/api/subscription/pay`);
const { amount, id: order_id, currency } = order.data;
console.log(order);
const options = {
key: "rzp_test_asdfg345dfCVBN",
amount: amount,
currency: currency,
name: "Razorpay",
description: "PAY YOUR SUBSCRIPTION FEES",
image: `${process.env.PUBLIC_URL}/assets/images/logo.png`,
orderId: order_id,
handler: function (response) {
alert(response.razorpay_payment_id);// pay_asd1234
alert(response.razorpay_order_id);// undefined
alert(response.razorpay_signature);// undefined
console.log("response:",response);
/* response: {razorpay_payment_id: "pay_asd1234", org_logo: "", org_name: "Razorpay Software Private Ltd", checkout_logo: "https://cdn.razorpay.com/logo.png", custom_branding: false} */
},
prefill: {
name: "abc",
email: "abc@gmail.com",
contact: "+911234567890",
},
};
console.log("====================================");
console.log(options.orderId === order_id); // true
console.log(response.razorpay_order_id === order_id);// false
console.log("====================================");
const paymentObject = new window.Razorpay(options);
paymentObject.open();
};
期待来自很棒的社区成员的一些帮助。
解决方案
我也面临同样的问题。终于找到解决办法了。得到订单响应后,确保将“id”转换为字符串。
RazorpayClient client = new RazorpayClient(_key, _secret);
Dictionary<string, object> options = new Dictionary<string, object>();
options.Add("amount", 50000);
options.Add("receipt", "order_rcptid_11");
options.Add("payment_capture", "1");
options.Add("currency", "INR");
Order order = client.Order.Create(options);
var paymentObj = new
{
key = _key,
amount = 50000,
orderId = order.Attributes.id.ToString()
// if you are just passing order.Attributes.id, you will get nly
// razorpay_payment_id and undefined for order_id and signature
};
推荐阅读
- asp.net-core - 不尝试使用 /Common 端点,但 Azure AD 认为我是
- r - DiagrammeR 组织结构图(如何向 grViz 添加标签?)
- javascript - 数据表:未捕获的类型错误:减少没有初始值的空数组
- javascript - 将 javascript 函数添加到网页时,ASP.Net OnTextChanged 事件不会触发
- sql - 如果 ABC 没有,则返回 YTD 值
- javascript - Firebase.auth() 在本地主机上的页面之间不持久
- c# - 将对象映射到 JSON 中的数组时出现 Json 反序列化错误
- c# - System.InvalidOperationException 调用异常
- c# - .NET Standard 2.0 连接到 Access 数据库
- bootstrap-4 - 轮播控件在引导程序版本 4 中不起作用