JS轮询任务查询订单退款状态

出现问题:

        因为订单的支付不是普通的微信支付,是第三方支付,而且由于该三方支付自己内部设置的一些情况,导致退款的时候,发起了退款申请,但是会在15~20秒左右,才会返回结果,不像微信支付,几秒内就会有返回结果。

解决办法:

        订单发起请求之后,需要给操作者第一时间内返回状态,哪怕只是操作中的状态,然后需要每隔几秒轮训查询状态,然后即时给操作着反馈。

html代码:

//html代码,需要操作者填写的信息


//需要显示的遮罩层代码

遮罩层的样式代码

js代码

PHP后端代码,因为后端代码涉及的逻辑复杂,因此,只是将返回值填写上,供前端调用调试

public function mod_orderv2002()
    {
        $return1 = ['code' => 0, 'msg' => '订单无操作', 'next_flag' => 0];
        $return2 = ['code' => 1, 'msg' => '退款进行中', 'next_flag' => 1];
        return $return2;
    }

    public function getOrderRefundStatus2()
    {
        $return1 = ['code' => 0, 'msg' => '订单不存在', 'status' => 0];
        $return2 = ['code' => 1, 'msg' => '退款进行中', 'status' => 0];
        $return3 = ['code' => 1, 'msg' => '退款已完成', 'status' => 1];
        $return4 = ['code' => 1, 'msg' => '退款失败', 'status' => 2];
        return $return2;
    }

使用效果

后端代码都是显示正在进行中

JS轮询任务查询订单退款状态_第1张图片

轮询的任务一直在跑,同时,弹框内容因为一直是进行中,然后就不会变JS轮询任务查询订单退款状态_第2张图片

此时后台改为退款已完成

JS轮询任务查询订单退款状态_第3张图片

轮询任务停止,同时弹框内容变化

JS轮询任务查询订单退款状态_第4张图片

你可能感兴趣的:(前端,javascript,php)