相关关键词
关于我们
最新文章
ecshop怎样解决重复订单问题
发布日期:2017-04-20 00:00:00
600
ecshop是一个比较优秀的网上商城CMS系统,其程序比较小,但是电商所涉及到的功能一样不少。其一些程序核心还是值得借鉴学习的。
在做某一个小企业站的时候,客户需要新增订单功能,那么怎么解决重复订单问题,因对ecshop比较熟,就借鉴了ECSHOP的处理方式;
代码
$error_no = 0; do { $order['order_sn'] = get_order_sn(); //获取新订单号 $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), $order, 'INSERT'); $error_no = $GLOBALS['db']->errno(); if ($error_no > 0 && $error_no != 1062) { die($GLOBALS['db']->errorMsg()); } } while ($error_no == 1062);
其代码很好理解,首先对错误码进行清零。然后使用do while 进行提交(插入订单表);
正常情况下,至少提交一次。首先,使用订单号生成程序生成一个新的订单号,这个订单号是日期加随机生成,虽然重复的几率比较小,但是还是不得不防止重复的现象发生,所以有了这个处理机制;
接下来,把获取到的新订单号,赋予到订单数组 order_sn中,然后开始插入操作;
然后,判断插入操作是否出错。因order_sn加入了索引,并且为Unique类型,如果重复,则插入出错;
如果出错代码为除0和1062外的代码,则弹出出错消息;
如果出错代码为1062,则继续提交,直到提交成功。