Vpay-Collection/VPay

能不能后台增加过期订单的显示按钮

lelele168 opened this issue · 22 comments

原程序的这个功能挺好的,防止用户在超时后支付,但是后台找不到相应的订单,还要去收款助手一个个的找出来,再和原过期的订单补单来完成这操作

超时支付的没有,就是在超过有效期支付的订单,或者支付错金额的订单

这也是个问题,但是在临近的时间内创建的订单实际支付金额不要一致就好了,1元的关了,下一个是1.01,下次系统创建1元的订单系统在3分钟后,或者创建到5个订单后再循环这些已经关闭的金额

一个支付1元,订单过期了,第二个支付的订单一定是1.01的,就算超时了,系统后台显示对应的金额超时支付的,这样也方便手工补单,第二个人如果是支付1元,那也是订单不会成功匹配到,但是后台显示这两条记录,这样也能清晰地补单

所以后台可以把没匹配到的订单也显示出来,方便核对补单,毕竟支付的都是大爷,ε=(´ο`*)))唉

无订单收款能不能独立文件出来显示接收下,这样方便点

就是要通过无订单收款来匹配那些原来创建的订单来补原来过期的订单的

处理的逻辑能发下吗,(꒦_꒦)

  if (!$res) {
            $data = array(
                "close_date" => 0,
                "create_date" => time(),
                "is_auto" => 0,
                "notify_url" => "",
                "order_id" => "无订单转账",
                "param" => "无订单转账",
                "pay_date" => 0,
                "pay_id" => "无订单转账",
                "pay_url" => "",
                "price" => $price,
                "really_price" => $price,
                "return_url" => "",
                "state" => 1,
                "type" => $type,
                "appid" => 0
            );

            $ord->Insert($data);

            exit(json_encode(array("code" => 0, "msg" => "")));

        }

按此代码添加修改后,后台没有相应数据

    if (!$res) {
        $data = array(
            "close_date" => 0,
            "create_date" => time(),
            "is_auto" => 0,
            "notify_url" => "",
            "order_id" => "无订单转账",
            "param" => "无订单转账",
            "pay_date" => 0,
            "pay_id" => "无订单转账",
            "pay_url" => "",
            "price" => $price,
            "really_price" => $price,
            "return_url" => "",
            "state" => 1,
            "type" => $type,
            "appid" => 0
        );

        $ord->Insert($data);

        exit(json_encode(array("code" => 0, "msg" => "")));

    }

    $tmp = new Temp();

    $tmp->DelByOid($res["order_id"]);//删除临时表

    $ord->ChangeStateByOrderId($res["order_id"], Order::State_Ok, time(), time());//更新订单信息

    echo $ord->Notify($res["order_id"]);

}

}

修改后,正常的订单也不会到账了!!!

    if (!$res) {
        $data = array(
            "close_date" => 0,
            "create_date" => time(),
            "is_auto" => 0,
            "paytype" => "",
            "order_id" => "无订单转账",
            "param" => "无订单转账",
            "pay_date" => 0,
            "pay_id" => "无订单转账",
            "pay_url" => "",
            "price" => $price,
            "really_price" => $price,
            "return_url" => "",
            "state" => 1,
            "type" => $type,
            "appid" => 0
        );

        $ord->add($data);

        exit(json_encode(array("code" => 0, "msg" => "")));

    }

    $tmp = new Temp();

    $tmp->DelByOid($res["order_id"]);//删除临时表

    $ord->ChangeStateByOrderId($res["order_id"], Order::State_Ok, time(), time());//更新订单信息

    echo $ord->Notify($res["order_id"]);

}

}

不知道你哪里改出问题了,请自行排查。

根据系统流程,最后排查到protected\model\order.php文件进行了订单数据隔离,无法直接在/protected/controller/index/AppController.php直接插入数据

不存在数据隔离的说法,谢谢。我刚才查看了一下,新版本移除了add方法,你可以手动在order.php添加

function add($arg){
$this->insert($arg);
}

需要自定义功能请自行添加,或查看历史版本自己修改。我没有义务增加这些没必要的功能。
用户的错误不能由我们来买单,如果一个系统还需要人工手动补单,那么他就不应该作为一个系统。