【问题标题】:razorpay order id and razorpay signtaure value is undefined in the payment responserazorpay 订单 ID 和 razorpay 签名值在支付响应中未定义
【发布时间】:2021-07-09 19:24:45
【问题描述】:

我在处理 时从 处理程序响应 获得 undefinedrazorpayOrderIdrazorpaySignature测试模式。所以后端支付验证失败。我已经坚持了一天多。非常感谢任何帮助。

这是我的代码 sn-p:

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();
  };

期待来自优秀社区成员的帮助。

【问题讨论】:

    标签: node.js reactjs payment-gateway razorpay


    【解决方案1】:

    我也遇到了同样的问题。终于找到解决办法了。得到订单响应后,确保将“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
        };
    

    【讨论】:

      猜你喜欢
      • 2020-05-15
      • 1970-01-01
      • 2020-12-19
      • 2019-06-27
      • 2021-07-18
      • 2021-06-16
      • 2019-04-09
      • 2022-11-18
      • 1970-01-01
      相关资源
      最近更新 更多