修复DTcms 4.0.3版本积分兑换重复扣分BUG

Hailin 发表于 2016-06-16 02:00:37 来源于CMS插件网 评论 0 点击 793
摘要:重复扣分的BUG只出现在最新版的4.0.3版本中;4.0.0至4.0.2版本都不存在重复扣分问题,只是积分不足时,也可以下单。因为重复扣分就是因为DTcms官方在修复“修复积分换购时账户积分不足也可下单的BUG(已修复)”问题中,才引起重复扣分的。

DTcms重复扣分的BUG只出现在最新版的4.0.3版本中;4.0.0至4.0.2版本都不存在重复扣分问题,只是积分不足时,也可以下单。因为重复扣分就是因为DTcms官方在修复“修复积分换购时账户积分不足也可下单的BUG(已修复)”问题中,才引起重复扣分的。

3.jpg

通过图片我们可以看到图片上一个订单有两次积分扣除记录,这是为什么呢,我们来看看是什么原因造成的,在看下图:

201606161429481117.jpg

这是我们用积分兑换的订单,如果说运费为0、商品金额为0、手续也为0的情况下,积分兑换是没有问题的;

但是我们有时候兑换的可能会收运费,如上图中,有24块钱的运费;支付时在保存订单时就会扣除一次积分,然后在支付24块钱的运费时又扣一次积分,逻辑问题我们已经找到了。

现在我们在看看看代码如何修复,找到submit_ajax.ashx文件第2122行,可以看到如下代码

//扣除积分
if (model.point < 0)
{
    new BLL.user_point_log().Add(model.user_id, model.user_name, model.point, "积分换购,订单号:" + model.order_no, false);
}

这里就是DTcms在4.0.3补丁中新增的,为了修复“修复积分换购时账户积分不足也可下单的BUG(已修复)”这个问题;我们只要稍微把这里改一下,这里扣除积分只在“订单支付金额为0的情况下才执行”(为什么只在为0的情况下才执行,这个问题自己体会。不懂的可进群找小编。)到此该问题就已经解决了。

如果还想知道DTcms更多Bug修复方案,可以进小编的QQ群,咨询小编。小编不喜欢聊群,所以进群后可似聊。

热门资讯