严重bug!线下红包不能支持最小订单问题

2016-07-07 15:14 来源:www.chinab4c.com 作者:ecshop专家



Ecshop 2.70 Ecshop 2.71 线下红包都有个bug,就是线下红包不支持最小订单,无论多小金额的订单都能使用红包。

查看 ecshop270 ecshop271 flow.php 源代码,在第 1875

line1875

/* 验证红包序列号 */



elseif
($_REQUEST['step'] == 'validate_bonus')

有以下注释语句:

/* 验证红包序列号 */
elseif ($_REQUEST['step'] == 'validate_bonus')
{
$bonus_sn = trim($_REQUEST['bonus_sn']);
if (is_numeric($bonus_sn))
{
$bonus = bonus_info(0, $bonus_sn);
}
else
{
$bonus = array();
}

// if (empty($bonus) || $bonus['user_id'] > 0 || $bonus['order_id'] > 0)
// {
//die($_LANG['bonus_sn_error']);
// }
// if ($bonus['min_goods_amount'] > cart_amount())***此处为判断最小订单金额条件,不知道为什么ECSHOP开发团队把这一段代码注释掉了?***
// {
//die(sprintf($_LANG['bonus_min_amount_error'], price_format($bonus['min_goods_amount'], false)));
// }
// die(sprintf($_LANG['bonus_is_ok'], price_format($bonus['type_money'], false)));
$bonus_kill = price_format($bonus['type_money'], false);



去掉判断最小订单金额的注释,会抛出“例外抛出且未被接住”,页面上有错误的提示,详细信息就是transport.js 409 行,字符 9并且不能执行。地址信息是:http://localhost/ecshop/flow.php?step=checkout详见下图。

  1. if ($bonus['min_goods_amount'] > cart_amount())
  2. {
  3. die(sprintf($_LANG['bonus_min_amount_error'], price_format($bonus['min_goods_amount'], false)));
  4. }
复制代码


即在此位置不能使用 Die函数,一旦使用die函数就会抛异常。

期盼各位高人指点!

谢谢!

weijiezhu.jpg (58.46 KB)

weijiezhu.jpg


回答:
你是在本地测试的?

本地和空间服务器上都是一样的,都是同样的错误。

赞! 谢谢 robb, 此问题已经解决,希望下个版本能把这个fix写进去!

怎么解决的