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

disable submit input during processing order paid with Stripe or enable them if Stripe pop up window disappears

我正在开发一个使用 Stripe 进行在线支付的网络 php 应用程序。 在订购流程结束时,我有两个选择:"pay now with credit card" 和 "pay later with transfer"。 如果我选择第一个解决方案,付款将成功进行,但在加载下一个 php 页面之前,具有两个选项的同一页面会继续显示几秒钟(在弹出条带的 window 消失后). 如果我单击第二个按钮 ("pay later with transfer"),应用程序会启动另一个已支付订单的流程,将其记录为 "pending payment" 而不是 "paid",因为该按钮处于活动状态。 所以我试图禁用提交操作的按钮:

$(".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 的弹出窗口 window,按钮将保持禁用状态,因此唯一的方法是重新加载页面。 我无法触发事件来捕捉条纹 window 的关闭,以便让按钮再次激活。

有什么想法吗?

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