예제 #1
0
파일: users.inc.php 프로젝트: aspnmy/weizan
}
if ($_W["ispost"] && $_W["isajax"]) {
    try {
        $error = array("code" => 0, "message" => "uid为空");
        if (empty($_GPC["uid"]) || intval($_GPC["uid"]) <= 0) {
            die(json_encode($error));
        }
        $error = array("code" => 0, "message" => "交易币为空");
        if (empty($_GPC["credit2"])) {
            die(json_encode($error));
        }
        $remark = "线下付款,管理员手工充值";
        if (doubleval($_GPC["credit2"]) <= 0) {
            $remark = "管理员扣除";
        }
        $result = user_credits_update(intval($_GPC["uid"]), "credit2", doubleval($_GPC["credit2"]), array($_W["uid"], $remark));
        if ($result) {
            if (doubleval($_GPC["credit2"]) > 0) {
                pdo_insert("uni_payorder", array("orderid" => date("YmdHis") . sprintf('%06d', rand(0, 999999)), "status" => 1, "pay_time" => TIMESTAMP, "money" => doubleval($_GPC["credit2"]), "order_time" => TIMESTAMP, "uid" => $_GPC["uid"], "credittype" => "credit2"));
            }
            die(json_encode(array("code" => 1, "message" => "操作成功")));
        }
        die(json_encode(array("code" => 0, "message" => $result["message"])));
    } catch (Exception $e) {
        die(json_encode(array("code" => 0, "message" => $e->getMessage())));
    }
    die(json_encode(array("code" => 0, "message" => "操作失败")));
}
$index = max(1, intval($_GPC['page']));
$size = 15;
$page = ($index - 1) * $size;
예제 #2
0
    //商户订单号
    $out_trade_no = $_GPC['out_trade_no'];
    //支付宝交易号
    $trade_no = $_GPC['trade_no'];
    //交易状态
    $trade_status = $_GPC['trade_status'];
    try {
        pdo_begin();
        $order = pdo_fetch("SELECT * FROM " . tablename("uni_payorder") . " WHERE orderid = :orderid", array(":orderid" => $out_trade_no));
        if (empty($order) || $order["status"] == 1) {
            header("location:" . $_W["siteroot"] . "web/index.php?c=site&a=entry&do=getPayResult&m=kim_financial&order_no=" . $out_trade_no);
            pdo_rollback();
            return;
        }
        if (pdo_update("uni_payorder", array("status" => 1, "pay_time" => TIMESTAMP, "order_no" => $trade_no), array("orderid" => $out_trade_no)) > 0) {
            if (user_credits_update($order["uid"], $order["credittype"], $order["money"], array(2, "充值"))) {
                pdo_commit();
                header("location:" . $_W["siteroot"] . "web/index.php?c=site&a=entry&do=getPayResult&m=kim_financial&order_no=" . $out_trade_no);
                return;
            }
            pdo_rollback();
        }
        header("location:" . $_W["siteroot"] . "web/index.php?c=site&a=entry&do=getPayResult&m=kim_financial&order_no=" . $out_trade_no);
    } catch (Exception $e) {
        pdo_rollback();
    }
    //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
} else {
    //验证失败
    echo "fail";
예제 #3
0
    }
    if ($_W["user"]["credit2"] <= 0) {
        die(json_encode(array("code" => 1, "message" => "余额不足,请进行充值", "url" => $this->createWebUrl("Recharge"))));
    }
    if ($number < 1) {
        die(json_encode(array("code" => 0, "message" => "至少购买1条")));
    }
    $price = 0.1;
    if (!empty($settings) && doubleval($settings["dx_UnitPrice"]) > 0) {
        $price = doubleval($settings["dx_UnitPrice"]);
    }
    $total = $price * $number;
    if ($_W["user"]["credit2"] < $total) {
        die(json_encode(array("code" => 1, "message" => "余额不够,请进行充值", "url" => $this->createWebUrl("Recharge"))));
    }
    if (!is_error(user_credits_update($_W["user"]["uid"], "credit2", doubleval(-$total), array(1, "购买短信消费")))) {
        //加短信数
        $notify["sms"]['balance'] = $_W["user"]["sms"]["balance"] + $number;
        $notify["sms"]['signature'] = $_W["user"]["sms"]['signature'];
        pdo_update("uni_settings", array("notify" => @iserializer($notify)), array("uniacid" => $_W['uniacid']));
        die(json_encode(array("code" => 1, "message" => "购买成功.")));
    }
    die(json_encode(array("code" => 0, "message" => "购买失败")));
}
if ($_W["user"]["credit2"] < doubleval($settings["dx_UnitPrice"])) {
    message("余额不足,请进行充值.", url('members/recharge'));
}
$service = explode("|", $settings["service_qqs"]);
$qqs = array();
foreach ($service as $ser) {
    list($name, $qq) = explode("-", $ser);
예제 #4
0
function buy_package($user, $package_id, $total = 1)
{
    if (empty($user) || empty($user["uid"])) {
        return error(-1, "用户不存在");
    }
    if ($total <= 0) {
        return error(-1, "购买数必须大于1");
    }
    if (empty($user["credit2"]) || doubleval($user["credit2"]) < 0) {
        return error(-1, "用户余额为0无法购买套餐.");
    }
    $group = kim_get_uni_group($package_id);
    if (empty($group)) {
        return error(-1, "模块不存在.");
    }
    $price = doubleval($group["price"]);
    if (intval($user['groupid']) > 0) {
        list($price, $discount) = check_price($price, intval($user['groupid']));
    }
    if (doubleval($user["credit2"]) < $price * $total) {
        return error(-1, "用户余额不足.");
    }
    $st = get_settings();
    $day = 30;
    if (intval($st[package_day]) > 0) {
        $day = intval($st[package_day]);
    }
    $package_price = $price * $total;
    $package_time = $total * $day * 24 * 60 * 60;
    load()->model("account");
    $account = uni_fetch();
    if (empty($account)) {
        return error(-1, "公众号不存在.");
    }
    $settings = uni_setting($account["uniacid"], array('groupdata'));
    $groupData = $settings['groupdata'] ? $settings['groupdata'] : array("endtime" => TIMESTAMP);
    $package_endTime = $package_time;
    if ($groupData["endtime"] - TIMESTAMP > 0) {
        $package_endTime = $groupData["endtime"] - TIMESTAMP + $package_time;
    }
    $old_package = kim_get_uni_group($account["groupid"]);
    try {
        pdo_begin();
        $endtime = date("Y-m-d", TIMESTAMP + $package_endTime);
        load()->model('user');
        $record = array();
        $record['uid'] = $user["uid"];
        $record['endtime'] = $endtime;
        user_update($record);
        $order_record = array("uniacid" => $account["uniacid"], "uid" => $user["uid"], "package" => $package_id, "buy_time" => TIMESTAMP, "expiration_time" => TIMESTAMP + $package_endTime);
        pdo_insert("users_packages", $order_record);
        $record_id = pdo_insertid();
        if ($record_id <= 0) {
            throw new Exception("保存记录失败");
        }
        //VIP时间同步
        $groupData["endtime"] = $groupData["endtime"] < TIMESTAMP ? TIMESTAMP : $groupData["endtime"];
        $old_over_time = date("Y-m-d", $groupData["endtime"]);
        $new_over_time = date("Y-m-d", TIMESTAMP + $package_endTime);
        $log = array(0, sprintf("自动续费: %s 套餐续费,续费前:%s 到期; 续费后:%s 到期", $group["name"], $old_over_time, $new_over_time));
        if (intval($account["groupid"]) != intval($package_id)) {
            $surplus_price = $old_package["price"] * round(($groupData["endtime"] - TIMESTAMP) / 86400);
            $surplus_price = $surplus_price / $day;
            $surplus_time = round($surplus_price / $group["price"]) * $day;
            $package_endTime = $surplus_time * 24 * 60 * 60 + $package_time;
            $new_over_time = date("Y-m-d", TIMESTAMP + $package_endTime);
            $log_text = sprintf("套餐变更: &lt;p&gt;A、原套餐: %s , %s 到期&lt;/p&gt;&lt;p&gt;B、变更后: %s , %s 到期.&lt;/p&gt;", $old_package["name"], $old_over_time, $group["name"], $new_over_time);
            $log = array(0, $log_text);
            if (pdo_update('uni_account', array('groupid' => $package_id), array('uniacid' => $account["uniacid"])) <= 0) {
                throw new Exception("更新套餐失败.");
            }
        }
        $new_groupdata = array('groupdata' => iserializer(array('isexpire' => 1, 'endtime' => TIMESTAMP + $package_endTime, 'oldgroupid' => $old_package['id'], 'is_auto' => 1)));
        if (pdo_update('uni_settings', $new_groupdata, array('uniacid' => $account["uniacid"])) <= 0) {
            throw new Exception("更新套餐失败!");
        }
        $result = user_credits_update($user["uid"], "credit2", -$package_price, $log);
        if (is_error($result)) {
            throw new Exception($result["message"]);
        }
        $_W['account']['groupid'] = $account["uniacid"];
        load()->model('module');
        module_build_privileges();
        pdo_update("users_packages", array("record_id" => $record_id, "status" => 1), array("id" => $record_id));
        pdo_commit();
        return true;
    } catch (Exception $e) {
        pdo_rollback();
        return error(-1, $e->getMessage());
    }
    return error(-1, "错误操作.");
}