91 lines
2.8 KiB
PHP
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|