purchase
This commit is contained in:
parent
ef834d99cd
commit
1581e58642
@ -227,6 +227,110 @@ class RechargeController
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prePurchase()
|
||||||
|
{
|
||||||
|
$account_id = $_REQUEST['account_id'];
|
||||||
|
//登录校验
|
||||||
|
$login = loginVerify($account_id, $_REQUEST['session_id']);
|
||||||
|
if (!$login) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 1, 'session无效');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$conn = $this->getMysql($account_id);
|
||||||
|
if (!$conn) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 1, '没有这个玩家');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$raw_data = file_get_contents('php://input');
|
||||||
|
$sigdata = json_decode($raw_data, true);
|
||||||
|
if (!$this->checkPurchaseLimit($conn, $account_id, $sigdata['productId'])) {
|
||||||
|
phpcommon\sendError(ERR_USER_BASE + 2, '不能购买');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$url = '';
|
||||||
|
if (SERVER_ENV == _ONLINE) {
|
||||||
|
$url = 'https://payservice.kingsome.cn/api/ingame/sprepurchase';
|
||||||
|
} else {
|
||||||
|
$url = 'https://payservice-test.kingsome.cn/api/ingame/sprepurchase';
|
||||||
|
}
|
||||||
|
$sign = md5($_REQUEST['account_id'] . 'f3a6a9a5-217a-4079-ab99-b5d69b8212be' . $_REQUEST['session_id']);
|
||||||
|
$params = array(
|
||||||
|
'account_id' => $_REQUEST['account_id'],
|
||||||
|
'session_id' => $_REQUEST['session_id'],
|
||||||
|
'user_ip' => phpcommon\getIPv4(),
|
||||||
|
'sign' => $sign,
|
||||||
|
'sig_data' => $raw_data,
|
||||||
|
);
|
||||||
|
if (!phpcommon\HttpClient::post($url, json_encode($params), $rsp)) {
|
||||||
|
phpcommon\sendError(ERR_RETRY, '系统繁忙');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($rsp == null || $rsp == '') {
|
||||||
|
phpcommon\sendError(ERR_RETRY, '系统繁忙2');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$response = json_decode($rsp, true);
|
||||||
|
echo json_encode(array(
|
||||||
|
'errcode' => $response['errcode'],
|
||||||
|
'errmsg' => $response['errmsg'],
|
||||||
|
'order_id' => $response['order_id'],
|
||||||
|
'pay_sig' => $response['pay_sig'],
|
||||||
|
'signature' => $response['signature'],
|
||||||
|
'sig_data' => $response['sig_data'],
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function checkPurchaseLimit($conn, $account_id, $productid)
|
||||||
|
{
|
||||||
|
$prod_conf = metatable\getShopGoodsById($productid);
|
||||||
|
if (!$prod_conf) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($prod_conf['type'] != 2) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$conn = $this->getMysql($_REQUEST['account_id']);
|
||||||
|
$rechargerow = $conn->execQueryOne(
|
||||||
|
'SELECT * FROM recharge WHERE accountid=:accountid;',
|
||||||
|
array(
|
||||||
|
':accountid' => $account_id
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!$rechargerow) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$daily_purchase = $rechargerow['daily_purchase'];
|
||||||
|
if ($daily_purchase == null || $daily_purchase == '') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$todaysecs = phpcommon\getdayseconds(time());
|
||||||
|
$daily_obj = json_decode($daily_purchase . true);
|
||||||
|
if ($productid == 10) {
|
||||||
|
foreach ($daily_obj as $item) {
|
||||||
|
if ($item['time'] > $todaysecs) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
foreach ($daily_obj as $item) {
|
||||||
|
if (($item['id'] == $productid || $item['id'] == 10) && $item['time'] > $todaysecs) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public function purchaseNotify()
|
public function purchaseNotify()
|
||||||
{
|
{
|
||||||
$params = array(
|
$params = array(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user