platform notify

This commit is contained in:
cano
2024-03-27 00:11:26 +08:00
parent 01e93acdd8
commit 4b47fe7250
21 changed files with 462 additions and 18 deletions

View File

@ -113,7 +113,7 @@ class UsdtTrx20Service
$oWalletTronBlockModel->updateItem($updateItem);
} catch (\Exception $e) {
Logs::ErrLog(__FUNCTION__, $e, $oQueueWalletBlockBean->toArray());
Logs::ErrLog(__FUNCTION__, $e, $oQueueWalletBlockBean->toArrayNotNull());
$oQueueWalletBlockBean->IncrTryTimes();
if (!$oQueueWalletBlockBean->checkTryTimes()) { //超出重试次数
$updateItem = [
@ -137,7 +137,7 @@ class UsdtTrx20Service
try {
$this->tronBlockTransaction($oEventBean);
} catch (\Exception $e) {
Logs::ErrLog(__FUNCTION__, $e, $oEventBean->toArray());
Logs::ErrLog(__FUNCTION__, $e, $oEventBean->toArrayNotNull());
}
}
}
@ -158,7 +158,7 @@ class UsdtTrx20Service
$is_to = $oTronWalletAddressSetCache->checkKey($to_addr);
if (!$is_from && !$is_to) return;
//投递到钱包地址账变处理队列
$oQueueEventBean = new QueueEventBean($oEventBean->toArray());
$oQueueEventBean = new QueueEventBean($oEventBean->toArrayNotNull());
WalletAddressTransactionQueue::putToQueue($oQueueEventBean);
return;
}

View File

@ -0,0 +1,48 @@
<?php
namespace App\Service\Wallet;
use App\Bean\Model\Wallet\Platform\WalletPlatformBean;
use App\Bean\Queue\Wallet\QueueNotifyToPlatformBean;
use App\Bean\Service\HttpServiceConfigBean;
use App\Cache\Table\Wallet\TableWalletPlatformCache;
use App\Exceptions\PlatformNotifyException;
use App\Jobs\Wallet\WalletNotifyToPlatformQueue;
use App\Tools\Logs;
class PlatformNotifyService
{
const RETURN_SUCCESS = 'success';
function notifyToPlatform(QueueNotifyToPlatformBean $bean): void
{
try {
if(empty($bean->getPlatformId())) return;
$oTableWalletPlatformCache = new TableWalletPlatformCache();
$aWalletPlatform= $oTableWalletPlatformCache->get($bean->getPlatformId());
if(empty($aWalletPlatform)) return;
$oWalletPlatformBean = new WalletPlatformBean($aWalletPlatform);
if(empty($oWalletPlatformBean->getNotifyIp())) return;
//通知到平台
$oHttpService = new \App\Service\HttpService();
$HttpServiceConfigBean = new HttpServiceConfigBean();
$HttpServiceConfigBean->setIsReturnJson(false); //返回不格式化json
$res = $oHttpService->post($oWalletPlatformBean->getNotifyIp(),$bean->toArrayNotNull(),$HttpServiceConfigBean);
if($res !== self::RETURN_SUCCESS){ //通知失败
throw new PlatformNotifyException('notify to platform failed');
}
Logs::SuccLog(__FUNCTION__, $bean->toArrayNotNull());
}catch (\Exception $e) {
Logs::ErrLog(__FUNCTION__, $e, $bean->toArrayNotNull());
$bean->IncrTryTimes();
if (!$bean->checkTryTimes()) { //超出重试次数
return;
}
WalletNotifyToPlatformQueue::putToQueue($bean, $bean->getTryTimes());
}
}
}