【问题标题】:Razorpay is not definedRazorpay 未定义
【发布时间】:2026-01-21 10:20:02
【问题描述】:

我是第一次集成支付网关。我发现了一些使用网关文档的代码,代码类似于

<form action="/purchase" method="POST">
         <!--Note that the amount is in paise = 50 INR -->
        <script
            src="https://checkout.razorpay.com/v1/checkout.js"
            data-key="************"
            data-amount="100"
            data-buttontext="proceed to payment"
            data-name="test"
            data-description="Purchase Description"
            data-image="logo"
            data-prefill.name="mnbvc"
            data-prefill.email="adsdasdd"
            data-theme.color="#F37254"
        ></script>
        <input type="hidden" value="Hidden Element" name="hidden">

        </form>

如果我点击 proceed to payment 按钮,它就可以工作。

现在我做了什么,我更改了代码并添加了一个名为

的按钮
<input type="button" id="proceedToPayment" name="proceedToPayment" value="Proceed To Payment">

如果任何用户单击该按钮,它将调用下面的函数,但它不起作用。在控制台中,我收到错误 Razorpay is not defined

$("#proceedToPayment").click(function(e){
    payeeamount = $("#totalDetails").val();
    var options = {
    "key": "*******",
    "amount":payeeamount, // 2000 paise = INR 20
    "name": "dasd",
    "description": "Purchase Description",
    "image": "logo",
    "handler": function (response){
      /*.razorpay_payment_id*/
      confirmpayment(response);
    },
    "prefill": {
      "name": "",
      "email": ""
    },
    "theme": {
      "color": "#F37254"
    }
  };
  var rzp1 = new Razorpay(options);
    rzp1.open();
    e.preventDefault();
});

function confirmpayment(response){
    response['action']='processSessionReq';
    $.ajax({
      type:"POST",
      url:"processpage.php",
      data: response,       
      success: function (data) {
        window.location = "TransactionSuccess.php";
      }
    });
  }

【问题讨论】:

    标签: php jquery payment-gateway razorpay


    【解决方案1】:

    您可以像这样添加 Razorpay 源 `

    <script src="https://checkout.razorpay.com/v1/checkout.js"></script>
     <script
                data-key="************"
                data-amount="100"
                data-buttontext="proceed to payment"
                data-name="test"
                data-description="Purchase Description"
                data-image="logo"
                data-prefill.name="mnbvc"
                data-prefill.email="adsdasdd"
                data-theme.color="#F37254"
            ></script>
    

    ` 然后你可以像上面一样添加剩余的包含数据的脚本标签(试一试)。

    【讨论】:

      【解决方案2】:

      您的代码没有任何问题。只需确保您在点击事件之前添加了结帐 js。在 JavaScript 代码之前的脚本标记中使用“https://checkout.razorpay.com/v1/checkout.js”。

      更多详情请访问:https://docs.razorpay.com/docs/checkout-form

      【讨论】: