61 lines
1.7 KiB
PHP
61 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace services;
|
|
|
|
class BlockChainService {
|
|
|
|
public static function gameItemMallBuy($account, $price)
|
|
{
|
|
$params = array(
|
|
'c' => 'GameItemMall',
|
|
'a' => 'buy',
|
|
'account' => $account,
|
|
'price' => $price,
|
|
);
|
|
{
|
|
$url = self::getWeb3ServiceUrl();
|
|
$response = '';
|
|
if (!phpcommon\HttpClient::get
|
|
($url,
|
|
$params,
|
|
$response)) {
|
|
myself()->_rspErr(500, 'server internal error');
|
|
die();
|
|
return;
|
|
}
|
|
error_log($response);
|
|
$rspObj = json_decode($response, true);
|
|
if ($rspObj['errcode'] == 0) {
|
|
$transId = $rspObj['trans_id'];
|
|
Transaction::add(
|
|
$transId,
|
|
Transaction::MINT_721_ACTION_TYPE,
|
|
$tokenId,
|
|
$tokenType,
|
|
$itemUniId,
|
|
$itemId,
|
|
1
|
|
);
|
|
myself()->_rspData(array(
|
|
'trans_id' => $transId,
|
|
'params' => $rspObj['params']
|
|
));
|
|
} else {
|
|
myself()->_rspErr(500, 'server internal error');
|
|
die();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static function getWeb3ServiceUrl()
|
|
{
|
|
if (SERVER_ENV == _TEST) {
|
|
return 'http://127.0.0.1:7672/webapp/index.php';
|
|
}
|
|
$web3ServiceCluster = require_once('../config/web3service.cluster.php');
|
|
return $web3ServiceCluster[rand() % count($web3ServiceCluster)];
|
|
}
|
|
|
|
}
|