game2006api/webapp/services/callback/MarketBuyOrderOk.php
songliang d46d156bdf ...
2023-07-15 16:24:54 +08:00

91 lines
2.8 KiB
PHP

<?php
namespace services;
require_once('MarketCallbackBase.php');
require_once('services/callback/common/SignatureService.php');
use services\MarketCallbackBase;
use phpcommon\SqlHelper;
class MarketBuyOrderOk extends MarketCallbackBase
{
public function process()
{
SignatureService::web3ServiceCheck();
error_log('MarketBuyOrderOk:' . json_encode($_REQUEST, JSON_PRETTY_PRINT));
$tokenId = getReqVal('tokenId', '');
$orderId = getReqVal('orderId', '');
$nftToken = getReqVal('nftToken', '');
$amount = getReqVal('amount', 0);
$seller = strtolower(getReqVal('seller', ''));
$buyer = strtolower(getReqVal('buyer', ''));
$erc20 = getReqVal('erc20', '');
$price = getReqVal('price', '');
error_log(
"eventBuyOrder:" . json_encode(
array(
'tokenId' => $tokenId,
'orderId' => $orderId,
'nftToken' => $nftToken,
'amount' => $amount,
'seller' => $seller,
'buyer' => $buyer,
'erc20' => $erc20,
'price' => $price,
),
JSON_PRETTY_PRINT
)
);
$o_link = $orderId;
$conn = myself()->_getMysql('');
// 1. check order status
$chk = SqlHelper::selectOne($conn, 't_market_store', array('status', 'idx', 'c_name', 'token_type'), array('o_link' => $o_link, 'status' => 0));
if (empty($chk)) {
$this->_rspErr(2, 'not found order, o_link=' . $o_link);
return;
}
if ($chk['status'] == '0') {
$r = SqlHelper::update(
$conn,
't_market_store',
array(
'o_link' => $o_link,
),
array(
'status' => 2,
)
);
if ($r) {
// 增加交易记录
$record = array(
'createtime' => myself()->_getNowTime(),
'order_id' => $chk['order_id'],
'o_link' => $o_link,
'seller' => $seller,
'buyer' => $buyer,
'tokenid' => $tokenId,
'amount' => $amount,
'name' => $chk['c_name'],
'type' => $chk['token_type'],
);
$this->addTransactionRecord($record);
$this->_rspOk();
return;
}
else {
// 操作失败,暂时视为未找到订单
$this->_rspErr(2, 'order status error, o_link=' . $o_link);
return;
}
}
}
}