93 lines
2.3 KiB
PHP
93 lines
2.3 KiB
PHP
<?php
|
|
require_once "../Hv4.Logged.php";
|
|
$产品标识 = @$_POST['product_id'];
|
|
$语句 = "SELECT * FROM products WHERE product_id = '$产品标识';";
|
|
$产品元数据 = @reset(@数据库运行($语句));
|
|
if (!$产品元数据) {
|
|
定义输出("code",100);
|
|
定义输出("msg","获取产品元数据失败");
|
|
终止并输出();
|
|
}
|
|
$产品模块 = $产品元数据["module"];
|
|
$产品周期 = $产品元数据["subscription_period"];
|
|
$模块路径 = "../ProductsModule/".$产品模块."/Main.php";
|
|
$产品名称 = $产品元数据["name"];
|
|
|
|
require_once $模块路径;
|
|
|
|
$产品唯一标识符 = @唯一字符串();
|
|
|
|
$价格 = $产品元数据["price"];
|
|
$货币 = $产品元数据["currency_type"];
|
|
$库存 = $产品元数据["stock"];
|
|
$限购 = $产品元数据["limit_per_user"];
|
|
|
|
$语句 = "SELECT * FROM purchases WHERE product_id = '$产品标识' AND user_id = $用户ID;";
|
|
|
|
$用户购买 = @数据库运行($语句);
|
|
|
|
print_r($用户购买);
|
|
|
|
if ($库存 <= 0) {
|
|
定义输出("code",100);
|
|
定义输出("msg","库存不足惹");
|
|
终止并输出();
|
|
}
|
|
|
|
if ($货币 == "score") {
|
|
$比较项 = $积分;
|
|
} else {
|
|
$比较项 = $余额;
|
|
}
|
|
|
|
$减后余额 = $比较项 - $价格;
|
|
|
|
if ($减后余额 < 0) {
|
|
定义输出("code",100);
|
|
定义输出("msg","余额不足惹");
|
|
终止并输出();
|
|
}
|
|
|
|
|
|
if ($货币 == "score") {
|
|
设置用户积分($减后余额);
|
|
} else {
|
|
设置用户余额($减后余额);
|
|
}
|
|
|
|
$结果 = @开通产品($产品元数据,$产品唯一标识符);
|
|
|
|
$储存数据 = @转JSON($结果["data"]);
|
|
|
|
if ($结果["code"] == 200) {
|
|
定义输出("code",$结果["code"]);
|
|
定义输出("msg","开通成功");
|
|
$产品状态 = "activated";
|
|
} else {
|
|
定义输出("code",$结果["code"]);
|
|
定义输出("msg","开通失败");
|
|
$产品状态 = "pending_activation";
|
|
}
|
|
|
|
$库存 = $库存 - 1;
|
|
|
|
$语句 = "UPDATE products
|
|
SET stock = $库存
|
|
WHERE product_id = '$产品标识';";
|
|
|
|
|
|
@数据库运行($语句);
|
|
|
|
$语句 = "INSERT INTO `purchases`
|
|
(`user_id`, `product_id`, `purchase_id`, `purchase_time`, `expiry_time`, `status`, `subscription_period`, `extra_data`, `name`)
|
|
VALUES
|
|
($用户ID, '$产品标识', '$产品唯一标识符', NOW(), DATE_ADD(NOW(), INTERVAL $产品周期 DAY), '$产品状态', $产品周期, '$储存数据', '$产品名称');";
|
|
|
|
|
|
|
|
//$definedVars = get_defined_vars();
|
|
|
|
//print_r($definedVars);
|
|
|
|
@数据库运行($语句);
|
|
终止并输出(); |