为了账号安全,请及时绑定邮箱和手机立即绑定

RazorPay表单在页面加载时自动加载,而无需单击“立即付款”按钮

RazorPay表单在页面加载时自动加载,而无需单击“立即付款”按钮

Cats萌萌 2022-09-23 14:54:56

我正在尝试将Razorpay集成到我的应用程序中。下面是一个代码,用于控制单击“立即付款”按钮时加载付款模型。我想使页面加载上的模式加载而不是按钮单击。我尝试通过javascript提交表单,看看是否加载了模式,但这不起作用。


代码如下:


<form action="verify.php" method="POST" id="gateway">

  <script

    src="https://checkout.razorpay.com/v1/checkout.js"

    data-key="<?php echo $data['key']?>"

    data-amount="<?php echo $data['amount']?>"

    data-currency="INR"

    data-name="<?php echo $data['name']?>"

    data-image="<?php echo $data['image']?>"

    data-description="<?php echo $data['description']?>"

    data-prefill.name="<?php echo $data['prefill']['name']?>"

    data-prefill.email="<?php echo $data['prefill']['email']?>"

    data-prefill.contact="<?php echo $data['prefill']['contact']?>"

    data-notes.shopping_order_id="3456"

    data-order_id="<?php echo $data['order_id']?>"

    <?php if ($displayCurrency !== 'INR') { ?> data-display_amount="<?php echo $data['display_amount']?>" <?php } ?>

    <?php if ($displayCurrency !== 'INR') { ?> data-display_currency="<?php echo $data['display_currency']?>" <?php } ?>

  >

    document.getElementById("gateway").submit(); // Not working

  </script>

  <!-- Any extra fields to be submitted with the form but not sent to Razorpay -->

  <input type="hidden" name="shopping_order_id" value="3456">

</form>

但是,我也注意到表单操作到页面,因此如果表单提交,它将转到我只想加载付款模式的页面。因此,我所尝试的不可能是解决方案。verify.php


查看完整描述

3 回答

?
慕盖茨4494581

TA贡献1525条经验 获得超11个赞

我找到了解决方案。发布,因为它可能对将来的某个人有所帮助:


在开始元素之后放置此位置:razorpay/checkout/automatic.php (or manual.php)<form>


<script>

  $(window).on('load', function() {

    $('.razorpay-payment-button').click();

  });

</script>


查看完整回答
反对 回复 6天前
?
慕运维8079593

TA贡献1562条经验 获得超5个赞

将 onload 事件附加到脚本并在处理程序中模拟单击


<script>

  function loadPaymentModal() {

    const elem = document.getElementsByClassName('razorpay-payment-button')[0];

    elem.click();

  }

</script>

<form action="verify.php" method="POST" id="gateway">

  <script onLoad="loadPaymentModal()" src="https://checkout.razorpay.com/v1/checkout.js"

    data-key="<?php echo $data['key']?>" 

    data-amount="<?php echo $data['amount']?>" 

    data-currency="INR"

    data-name="<?php echo $data['name']?>"

    data-image="<?php echo $data['image']?>"

    data-description="<?php echo $data['description']?>" 

    data-prefill.name="<?php echo $data['prefill']['name']?>"

    data-prefill.email="<?php echo $data['prefill']['email']?>"

    data-prefill.contact="<?php echo $data['prefill']['contact']?>" 

    data-notes.shopping_order_id="3456"

    data-order_id="<?php echo $data['order_id']?>"

    <?php if ($displayCurrency !=='INR' ) { ?> data - display_amount="<?php echo $data['display_amount']?>" <? php } ?>

    <? php if ($displayCurrency !== 'INR') { ?> data - display_currency="<?php echo $data['display_currency']?>" <? php } ?>

  >

    </script>

  <!-- Any extra fields to be submitted with the form but not sent to Razorpay -->

  <input type="hidden" name="shopping_order_id" value="3456">

</form>


查看完整回答
反对 回复 6天前
?
犯罪嫌疑人X

TA贡献1746条经验 获得超1个赞

<script src="{{url('/')}}/frontendtheme/js/plugins/jquery-3.3.1.min.js"></script>

<script>

    $(window).on('load', function() {

        jQuery('#gateway').submit();

    });

</script>

注意:在脚本源上使用最小.js文件夹


查看完整回答
反对 回复 6天前
  • 3 回答
  • 0 关注
  • 10 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信