javascript - 在使用 Stripe 支付的处理订单期间禁用提交输入,或者如果 Stripe 弹出窗口消失则启用它们

标签 javascript php jquery stripe-payments payment

我正在开发一个使用 Stripe 进行在线支付的 web php 应用程序。 在订单流程结束时,我有两个选择:“现在用信用卡付款”和“稍后转帐付款”。 如果我选择第一个解决方案,付款将成功进行,但是在加载下一个 php 页面之前,具有两个选项的同一页面会继续显示几秒钟(在弹出 strip 的窗口消失之后)。 如果我单击第二个按钮(“稍后通过转账付款”),应用程序将启动已付款订单的另一个流程,将其记录为“待付款”而不是“已付款”,因为该按钮处于事件状态。 所以我尝试禁用提交操作的按钮:

$(".credit_card").on("submit", function() {
    var self = $(this),
    button = self.find("input[type='submit'], button");
    button2 = $(".pay_later").find("input[type='submit'], button");
    submitValue = button.data("submit-value");
    button.attr("disabled", "disabled").val((submitValue ? submitValue : "Attendere..."));
    button2.attr("disabled", "disabled").val((submitValue ? submitValue : "Attendere..."));
});

此代码有效,但如果我关闭 Stripe 的弹出窗口,按钮将保持禁用状态,因此唯一的方法是重新加载页面。 我无法触发事件来捕捉 Stripe 窗口的关闭,以便让按钮再次激活。

有什么想法吗?

最佳答案

You need to add the close event of Stripe checkout popup.

您可以 see here Stripe 结帐配置的 closed 参数。

这是一个例子:

   var handler = StripeCheckout.configure({
      key: 'pk_test_....',
      ....
      token: function(token) {
          ........
      },
      closed: function(){
        //This method will invoke whenever the popup close
        //Using this method to enable you button again.
      }
  });

关于javascript - 在使用 Stripe 支付的处理订单期间禁用提交输入,或者如果 Stripe 弹出窗口消失则启用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48290224/

相关文章:

jquery - 是否可以在正在运行的 mvc 站点中编辑 css 文件?

jquery - this.id 与 $(this).attr ('id' )

javascript - Angular js使用checked()而不是indexof()作为复选框

javascript - 如何在 iPhone 上不使用 jQuery 获取 originalEvent

javascript - 如何在vue js中上传没有base64格式的图片?

javascript - 范围问题 - 退出循环

php - CakePHP 管理部分路由和重定向

php - 如何在Jquery中包含带参数的php函数

javascript - 在输入文本中搜索然后搜索结果将使用 Ajax PHP 出现在下拉列表中

php - SQLSTATE[23000] : Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails - Laravel