增加相关文件,没动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));
}
}
?>