延时的容错有好的思路么,求指教?

我的需求是(每天一百多次):需要在一个页面点支付按钮,弹出新标签窗口进入支付页面,填相关参数后点支付,关闭窗口;

可能是网络不稳定等原因,这个窗口弹出并显示完整支付页面的时间相差比较大,有时能秒开,有时又要等 20 秒那么久,还有时等来错误页面。


我想要一个容错思路:

如果能秒开,就马上进行支付;
如果不能秒开,要 20 秒那么久,就等着;
如果超过 20 秒,就都判定为操作失败;