You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何延长厄瓜多尔支付网关模态框报错前的等待时长?

解决支付网关模态框报错的延迟处理方案

根据你遇到的问题——打开厄瓜多尔支付网关模态框时因速度过快触发服务器报错,核心原因是当前收到响应后立刻执行错误提示逻辑,未给服务器或前端资源预留足够处理时间。以下是两种针对性修改方案:

方案1:直接延迟错误提示显示

在onResponse的错误分支中,用setTimeout给服务器预留缓冲时间(毫秒数可根据实际情况调整):

onResponse: function(response) { 
    console.log(response);
    announceTransaction(response);
    if (response.transaction["status_detail"] == 3) {
        showMessageSuccess();
    } else {
        // 延迟1.5秒显示错误,可根据服务器响应速度调整数值
        setTimeout(() => {
            showMessageError(); 
        }, 1500);
    }
}

方案2:等待异步钩子请求完成后再处理错误

announceTransaction是异步的fetch请求,可能还未完成就触发了错误提示,导致服务器端钩子逻辑未执行完毕。可以修改逻辑,等待请求完成后再处理提示:

首先更新announceTransaction函数,让它返回Promise:

function announceTransaction(data) {
    return fetch("{$paymentez_hook}", {
        method: "POST",
        body: JSON.stringify(data)
    }).then(function(response) {
        console.log(response);
        return response;
    }).catch(function(error) {
        console.log(error);
        throw error;
    });
}

然后修改onResponse为异步逻辑:

onResponse: async function(response) { 
    console.log(response);
    try {
        await announceTransaction(response);
        if (response.transaction["status_detail"] == 3) {
            showMessageSuccess();
        } else {
            showMessageError(); 
        }
    } catch (error) {
        // 钩子请求失败时,延迟显示错误
        setTimeout(() => {
            showMessageError(); 
        }, 1000);
    }
}

额外优化:防止重复点击触发请求

给支付按钮添加点击后禁用状态,避免用户重复点击导致多请求冲突:

btnOpenCheckout.addEventListener("click", function(){
    this.disabled = true;
    PaymentCheckout.open({
        // 原有参数
    });
});

// 另外两个按钮同理,添加disabled逻辑

再在模态框的onClose回调中恢复按钮可用状态:

onClose: function() {
    console.log("cerró modal");
    document.querySelector(".Rot").disabled = false;
    document.querySelector(".DifCon").disabled = false;
    document.querySelector(".DifSin").disabled = false;
},

内容的提问来源于stack exchange,提问作者Ric Rey Rey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:57:41