Files
Fuxsto-V4/Main/BuyGoods/index.php
2025-10-18 10:19:37 +08:00

98 lines
2.4 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;";
$用户购买 = @count(@数据库运行($语句));
if ($限购 <= $用户购买) {
定义输出("code",100);
定义输出("msg","别买太多惹");
终止并输出();
}
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);
@数据库运行($语句);
终止并输出();