最新公告
  • 欢迎您光临大资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • ecshop中红包编码生成规则分析和改进

    ecshop中红包编码生成规则分析和改进 最后编辑:2021-02-04
    增值服务: 自动发货 使用说明 安装指导 环境配置二次开发BUG修复

    ecshop中红包编码生成规则分析和改进

    • 我们知道在ecshop后台的促销管理里面,有红包的功能。ecshop红包的功能无非就是可以直接抵消现金的作用,ecshop红包有两类型,一种是直接发送到个人帐户上去的。就是存储在ecs_user_bonus表中的,这个一旦发送到客户的帐户上去。那么意味着别人拿到了这个编码,也不能使用这个编码进行抵扣。另外一种ecshop红包就是线下发送的。当你得到这个编码,在红包的有效期内,可以使用该红包。
    •      我们必须知道,ecshop的红包编码是有问题的。我们看flow.php
    •      if (((!empty($bonus) && $bonus[‘user_id’] == $_SESSION[‘user_id’]) || ($bonus[‘type_money’] > 0 && empty($bonus[‘user_id’]))) && $bonus[‘order_id’] <= 0)
    •        这一句表示,就算是该编码没被使用。只要是发到个人帐户去之后。即使你登陆了,也不能通过这个编码来进行使用,所以这就是一大问题。
    •       其次,我们看ecshop红包的编码生成机制。
    •       $num = $db->getOne(“SELECT MAX(bonus_sn) FROM “. $ecs->table(‘user_bonus’));
    •     $num = $num ? floor($num / 10000) : 100000;
    •     for ($i = 0, $j = 0; $i < $bonus_sum; $i++)
    •     {
    •         $bonus_sn = ($num + $i) . str_pad(mt_rand(0, 9999), 4, ‘0’, STR_PAD_LEFT);
    •         $db->query(“INSERT INTO “.$ecs->table(‘user_bonus’).” (bonus_type_id, bonus_sn) VALUES(‘$bonus_typeid’, ‘$bonus_sn’)”);
    •         $j++;
    •     }
    •      首先我们看清楚,当你的红包编码达到了几百完以上,就容易产生重复的编码。其次,在录入红包编码的时候,根本没判断是否有重复的红包,这就造成了很大的问题,如果红包编码重复,那将是非常严重的问题
    •     $db->query(“INSERT INTO “.$ecs->table(‘user_bonus’).” (bonus_type_id, bonus_sn) VALUES(‘$bonus_typeid’, ‘$bonus_sn’)”);
    •     为了解决这个问题,首先我们必须保证在录入编码之前,确保该编码没重复,所以必须判断数据库中是否有该编码。那么我们就必须对bonus_sn 来进行扫描判断,那么多数据如何提高扫描速度呢。我们必须在bonus_sn上建立索引。其次,我们可以修改红包编码的规则。既然是十位,我们就可以用我们自己的办法来得到。
    •     static function GenSecret($len=6, $type=self::CHAR_WORD)
    •     {
    •         $secret = ”;
    •         for ($i = 0; $i < $len;  $i++) {
    •             if ( self::CHAR_NUM==$type ){
    •     if (0==$i) {
    •      $secret .= chr(rand(49, 57));
    •     } else {
    •      $secret .= chr(rand(48, 57));
    •     }
    •             }else if ( self::CHAR_WORD==$type ){
    •                 $secret .= chr(rand(65, 90));
    •             }else{
    •                 if ( 0==$i ){
    •                     $secret .= chr(rand(65, 90));
    •                 } else {
    •                     $secret .= (0==rand(0,1))?chr(rand(65, 90)):chr(rand(48,57));
    •                 }
    •             }
    •         }
    •         return $secret;
    •     }
    •    这个方法,要强过ecshop红包默认的编码规则。

    猜你在找

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    大资源网
    一个高级程序员模板开发平台
    • 2021-02-04Hi,初次和大家见面了,请多关照!

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站的问题处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 3482249445@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者
    • 7030会员总数(位)
    • 163674资源总数(个)
    • 2704本周发布(个)
    • 2094今日发布(个)
    • 3679稳定运行(天)

    开通VIP 知识课堂
    升级SVIP尊享更多特权立即升级
    My title page contents
    召唤伊斯特瓦尔