ecshop 奖品支付简单的实现

增加相关文件,没动flow.php,所以get_code实现有点美中不足,其它文件按着它的余额支付来修改就可以 了,

主要文件,

includes/moddle/payment/prize.php

----------------

<?php

/**
 * ECSHOP 奖品支付插件
 * ============================================================================
 * 版权所有 2005-2010 上海商派网络科技有限公司,并保留所有权利。
 * 网站地址: http://www.ecshop.com;
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
 * 使用;不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * $Author: liuhui $
 * $Id: balance.php 17063 2010-03-25 06:35:46Z liuhui $
 */

if (!defined('IN_ECS'))
{
    die('Hacking attempt');
}

$payment_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/payment/prize.php';

if (file_exists($payment_lang))
{
    global $_LANG;

    include_once($payment_lang);
}

/* 模块的基本信息 */
if (isset($set_modules) && $set_modules == TRUE)
{
    $i = isset($modules) ? count($modules) : 0;

    /* 代码 */
    $modules[$i]['code']    = basename(__FILE__, '.php');

    /* 描述对应的语言项 */
    $modules[$i]['desc']    = 'prize_desc';

    /* 是否货到付款 */
    $modules[$i]['is_cod']  = '0';

    /* 是否支持在线支付 */
    $modules[$i]['is_online']  = '1';

    /* 作者 */
    $modules[$i]['author']  = 'qidizi';

    /* 网址 */
    $modules[$i]['website'] = 'http://www.ecshop.com';

    /* 版本号 */
    $modules[$i]['version'] = '1.0.0';

    /* 配置信息 */
    $modules[$i]['config']  = array();

    return;
}

/**
 * 类
 */
class prize
{
    /**
     * 构造函数
     *
     * @access  public
     * @param
     *
     * @return void
     */
    function balance()
    {
    }

    function __construct()
    {
        $this->balance();
    }


    /**
     * 生成支付代码
     * @param   array   $order      订单信息
     * @param   array   $payment    支付方式信息
     */
    function get_code($order, $payment)
    {
        if (!defined('EC_CHARSET'))
        {
            $charset = 'utf-8';
        }
        else
        {
            $charset = EC_CHARSET;
        }
        
        $userId = (int)$_SESSION['user_id'];
        $html = '<div style="text-align:center;color:red; font-size:bold;">';
        
        if ( empty($userId)){
          return $html. '未登录不能使用奖品支付</div>';
        }       
        
        $sql = 'SELECT rec_id, goods_id, goods_number FROM ecs_order_goods WHERE order_id = ' .(int)$order['order_id'];
        $goodRow = $GLOBALS['db']->getAll($sql);
        
        if (empty($goodRow)){
          return $html. '对不起!你当前的订单中没有货品</div>';          
        }else if (count($goodRow) > 1){
          return $html. '对不起!你当前的订单中存在多种商品,不能使用奖品支付</div>';  
        }
        
        $sql = 'SELECT id, goodId, winTime FROM ecs_prizelog WHERE goodId>0 and geted=0 AND userId = ' .$userId. ' AND goodId = ' .(int)$goodRow[0]['goods_id'];
        $prizeRow = $GLOBALS['db']->getRow($sql, 1);
        
        if (empty($prizeRow )){
          return $html. '对不起!你没有未兑换的本商品物品类奖品</div>';          
        }
        
        if ($prizeRow['winTime'] < (time()-86400) ){
          $sql = "UPDATE ecs_prizelog SET geted=1, note=CONCAT(note, ';已超过兑换时间自动作废') WHERE id = " .$prizeRow['id'];
          $GLOBALS['db']->query($sql);
          return $html. '对不起!你物品类奖品已失效(必须在24小时内兑换),已被作废.</div>';          
        }
        
        
        if ( (int)$goodRow[0]['goods_number']  != 1){
          return $html. '对不起!你当前的订单中商品数量有多件,不能使用奖品支付, 奖品只能支付一件相同的商品</div>';  
        }
        
         $sql = "UPDATE ecs_prizelog SET geted=1, note=CONCAT(note, ';已用于商品兑换') WHERE id = " .$prizeRow['id'];
         $GLOBALS['db']->query($sql);//更新
        order_paid($order['log_id'], 2);        
        return $html. '你使用了奖品支付本商品</div>';  
    }

    /**
     * 响应操作
     */
    function respond()
    {
    print_r(array($_GET,$_POST));
    }
}

?>

1 设置修改 4 1.1 ECShop图片设置 4 1.2 去版权化 5 1.3 如何修改网站"欢迎光临本店" 11 1.4 如何去除ecshop底部查询信息的显示 11 1.5 后台管理删除no_license显示 11 1.6 如何发布站内新闻 13 1.7 如何修改网站logo 13 1.8 如何修改产品图片的大小 13 1.9 如何手动修改支付方式排列顺序 14 1.10 如何去除ecshop产品详细页产品点击率 14 1.11 首页、头部、底部模板文件名称 14 1.12 网站关闭了注册,如何修改“该网店暂停注册”字样 14 1.13 收货人详细信息js弹出框的提示脚本在哪个文件 14 1.14 网站公告代码段在那里 15 1.15 如何修改产品的库存 15 1.16 如何修改ecshop表的前缀 15 1.17 如何修改ecshop导航栏目名称 15 1.18 如何将最新产品栏目显示在导航栏里面? 15 1.19 如何更换ecshop模板 16 1.20 ecshop产品相关的图片有那几种 16 1.21 详细页面的积分 16 1.22 如何修改产品缩略图大小 16 1.23 如何设置ecshop货币格式和日期格式。 17 1.24 如何开取和关闭ecshop登陆验证码 17 1.25 如何修改个人帐户信息里面,出生年月的范围 17 1.26 ecshop中的模板中如何包含模板 17 1.27 如何调整ecshop flash播放器播放速度 18 1.28 ecshop2.7.3首页轮换图片如何管理 18 1.29 ecshop订单中,哪个字段是控制折扣的 18 1.30 如何显示销售排行 18 1.31 Notice:Undefined variable: _LANG in如何解决 19 1.32 ecshop flash播放器文件和图片在哪里? 19 1.33 如何将后台左侧菜单中的云服务中心删除掉 19 1.34 ecshop模板如何改变首页flash显示的大小? 20 1.35 ecshop模板中如何修改站内快讯标题的长度? 20 1.36 ecshop模板的首页热卖商品、新品上市等的数量在哪儿设置? 20 2 编程修改 21 2.1 如何新增PHP页面 21 2.2 调用指定分类下的精品、新品、热销 23 2.3 整合论坛 24 2.4 去掉ECShop购物流程中收货人电子邮箱必填项 25 2.5 货到付款设置说明 26 2.6 在ECSHOP首页的促销商品下显示促销时间 27 2.7 版本2.7.3相比2.7.2动了几个表 28 2.8 为每个商品设置最少购买量最小订购量 28 2.9 实现会员价格登陆才显示,且只显示和自己等级相符合的价格 32 2.10 生动讲解ecshop广告位的添加 33 2.11 商品详情页,根据不同商品分类调用不同模板 39 2.12 将Ecshop后台商品简单描述改成编辑器形式 40 2.13 商品描述上传中文名图片无法显示解决方法 42 2.14 如何将ECSHOP中的相对地址改为绝对地址 43 2.15 goods.php重命名 44 2.16 在Ecshop商品详情页显示当前会员等级价格 45 2.17 修改广告链接地址affiche.php为普通链接 46 2.18 如何让ecshop首页商品显示购买过的次数 47 2.19 不同级别客户看到不同的会员等级价格 54 2.20 分类描述使用FCKeditor作为编辑器 56 2.21 如何去掉ECSHOP帮助中心文章页的评论功能 57 2.22 ecshop 自定义分类模板的方法 59 2.23 多语言 62 2.24 实现自动选择语言转跳转 65 2.25 ecshop模板中如何调程序 66 2.26 ecshop如何实现不同商品调用不同模板 68 2.27 ecshop的SEO优化 69 3 开发说明 76 3.1 模板组常用SQL语句 76 3.2 商品详情页面属性价格显示其对应价格 76 3.3 设置ECSHOP支持货到付款 79 3.4 商品列表页判断商品是新品、精品、还是热销 80 3.5 如何把后台模板备份功能去掉 82 3.6 模板有的文章内容页不显示文字 82 3.7 验证邮件后送积分 82 3.8 任意文章页面显示所有文章分类 86 3.9 ecshop后台分页代码提取 87 3.10 增加批量修改成本价格,配合后台管理增加成本价和毛利润统计 90 3.11 商品批发增加起订数功能,设置购买数量 92 3.12 ECSHOP 手机号码怎么设置为必填选项 102 3.13 在ECSHOP后台会员列表中显示会员最后登录时间 105 3.14 如何给ecshop模板的文章加上分页 107 3.15 ecshop模板中如何实现悬浮分享 109 3.16 ecshop模板中如何实现报价 109 3.17 ecshop模板中如何实现局部刷新 112 3.18 模板随意调用文章 118 3.19 模板如何确保插入到数据库的文本是安全的 122 3.20 如何调出文章分类 122 3.21 显示指定分类下的文章 127 3.22 在ecshop商品详情页显示供货商 128 3.23 多彩模板[粉色]设置说明 129 3.24 轻松实现不同商品调用不同模板 132 3.25 商品分类下的销售排行 133 3.26 怎么样给文章增加权限 134 3.27 将文章列表改为显示内容提要 134 3.28 商品详情页显示所属品牌LOGO 135 3.29 ECSHOP模板在顶部会员登录时显示会员等级 136 3.30 常见问题汇总 139 3.31 ecshop模板如何让浏览历史按照先后排序? 139 3.32 ecshop添加一个30天销量的方法 139 3.33 ECSHOP模板首页商品显示购买过的次数 141 3.34 关于商品促销一人限购一件问题的解决方案 142 3.35 100问题汇总 146
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值