get('key'); if($checkKey != $key){ return showJson(1003, false); } $cachekey = "caches:wallet:trc_"; $page = RedisService::get($cachekey."rechargePage"); $page = $page? $page : 1; $members = MemberService::make()->getCatchMember($page, 500); if(empty($members)){ RedisService::set($cachekey."rechargePage", 1, 600); return showJson(1019, false); } $count = 0; $failedCount = 0; foreach ($members as $v){ $result = UsdtWalletService::make()->getTrc20RechargeLog($v['id'], $v['trc_address']); if($result){ $count++; RedisService::set($cachekey."catchRecharge:{$v['id']}_result", $result, 600); }else{ $failedCount++; $error = lang(UsdtWalletService::make()->getError()); RedisService::set($cachekey."catchRecharge:{$v['id']}_result", $error, 600); } } RedisService::set($cachekey."rechargePage", $page+1, 600); if($count>0){ return showJson(1020, true,['success'=> $count,'fail'=> $failedCount]); }else{ return showJson(1021, false); } } /** * 监听处理用户ERC子钱包存币(转账-进账) * @return array|mixed */ public function catchErcRecharge() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } $cachekey = "caches:wallet:erc_"; $page = RedisService::get($cachekey."rechargePage"); $page = $page? $page : 1; $members = MemberService::make()->getCatchMember($page, 500); if(empty($members)){ RedisService::set($cachekey."rechargePage", 1, 600); return showJson(1019, false); } $count = 0; $failedCount = 0; foreach ($members as $v){ $result = UsdtWalletService::make()->getErc20RechargeLog($v['id'], $v['trc_address']); if($result){ $count++; RedisService::set($cachekey."catchRecharge:{$v['id']}_result", $result, 600); }else{ $failedCount++; $error = lang(UsdtWalletService::make()->getError()); RedisService::set($cachekey."catchRecharge:{$v['id']}_result", $error, 600); } } RedisService::set($cachekey."rechargePage", $page+1, 600); if($count>0){ return showJson(1020, true,['success'=> $count,'fail'=> $failedCount]); }else{ return showJson(1021, false); } } /** * 监听平台TRC平台出账钱包交易记录(提币回调确认完成交易) * @return array|mixed */ public function catchTrcTransferByOtc() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } // 出账手续费钱包 $otcOutAddress = ConfigService::make()->getConfigByCode('trc_out_address'); if(empty($otcOutAddress)){ return showJson(2210, false); } $cacheKey = "caches:wallets:listen:trc_{$otcOutAddress}"; if(RedisService::get($cacheKey.'_lock')){ return showJson(1025, false); } $result = UsdtWalletService::make()->getTrc20TransferLogByOtc($otcOutAddress, 1,200); RedisService::set($cacheKey.'_lock', 1, rand(5, 10)); if($result){ RedisService::set($cacheKey, $result, 3600); return showJson(1020, true,['success'=> count($result)]); }else{ return showJson(1021, false); } } /** * 监听平台TRC平台入账钱包交易记录(提币回调确认完成交易) * @return array|mixed */ public function catchTrcTransferByOtcIn() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } // 出账手续费钱包 $otcOutAddress = ConfigService::make()->getConfigByCode('trc_out_address'); if(empty($otcOutAddress)){ return showJson(2210, false); } $cacheKey = "caches:wallets:listen:trc_in_{$otcOutAddress}"; if(RedisService::get($cacheKey.'_lock')){ return showJson(1025, false); } $result = UsdtWalletService::make()->getTrc20TransferLogByOtc($otcOutAddress, 2,200); RedisService::set($cacheKey.'_lock', 1, rand(5, 10)); if($result){ RedisService::set($cacheKey, $result, 3600); return showJson(1020, true,['success'=> count($result)]); }else{ return showJson(1021, false); } } /** * 监听平台ERC平台出账钱包交易记录(提币回调确认完成交易) * @return array|mixed */ public function catchErcTransferByOtc() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } // 出账手续费钱包 $otcOutAddress = ConfigService::make()->getConfigByCode('erc_out_address'); if(empty($otcOutAddress)){ return showJson(2210, false); } $cacheKey = "caches:wallets:listen:erc_{$otcOutAddress}"; if(RedisService::get($cacheKey.'_lock')){ return showJson(1025, false); } $result = UsdtWalletService::make()->getErc20TransferLogByOtc($otcOutAddress,1, 200); RedisService::set($cacheKey.'_lock', 1, rand(5, 10)); if($result){ RedisService::set($cacheKey, $result, 3600); return showJson(1020, true,['success'=> count($result)]); }else{ return showJson(1021, false); } } /** * 监听平台ERC平台入账钱包交易记录(提币回调确认完成交易) * @return array|mixed */ public function catchErcTransferByOtcIn() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } // 出账手续费钱包 $otcOutAddress = ConfigService::make()->getConfigByCode('erc_out_address'); if(empty($otcOutAddress)){ return showJson(2210, false); } $cacheKey = "caches:wallets:listen:erc_in_{$otcOutAddress}"; if(RedisService::get($cacheKey.'_lock')){ return showJson(1025, false); } $result = UsdtWalletService::make()->getErc20TransferLogByOtc($otcOutAddress,2, 200); RedisService::set($cacheKey.'_lock', 1, rand(5, 10)); if($result){ RedisService::set($cacheKey, $result, 3600); return showJson(1020, true,['success'=> count($result)]); }else{ return showJson(1021, false); } } /** * 自动归集TRC总钱包 * @return array * @throws \Tron\Exceptions\TransactionException * @throws \Tron\Exceptions\TronErrorException */ public function catchTrcTruggerByOtc() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } if($result = UsdtWalletService::make()->usdtTrcTrigger()){ return showJson(1002, true, $result); }else{ return showJson(UsdtWalletService::make()->getError(), false); } } /** * 自动归集ERC总钱包 * @return array * @throws \Tron\Exceptions\TransactionException * @throws \Tron\Exceptions\TronErrorException */ public function catchErcTruggerByOtc() { $key = md5('OTC'); $checkKey = request()->get('key'); if($checkKey != $key){ return showJson(1003, false); } if($result = UsdtWalletService::make()->usdtErcTrigger()){ return showJson(1002, true, $result); }else{ return showJson(UsdtWalletService::make()->getError(), false); } } /** * 自动取消派单订单任务 * @return array|mixed */ public function catchTradeOrderCancel() { $key = md5('OTC'); $checkKey = request()->get('key'); if ($checkKey != $key) { return showJson(1003, false); } if($result = TradeOrderService::make()->catchInvalidOrder()){ return showJson(1002, true, $result); }else{ return showJson(TradeOrderService::make()->getError(), false); } } /** * 自动取消派单订单任务 * @return array|mixed */ public function catchAdvertOrderCancel() { $key = md5('OTC'); $checkKey = request()->get('key'); if ($checkKey != $key) { return showJson(1003, false); } if($result = AdvertOrderService::make()->catchInvalidOrder()){ return showJson(1002, true, $result); }else{ return showJson(AdvertOrderService::make()->getError(), false); } } /** * 派单订单状态通知 * @return array|mixed */ public function catchTradeOrderNotify() { $key = md5('OTC'); $checkKey = request()->get('key'); if ($checkKey != $key) { return showJson(1003, false); } if($result = TradeOrderService::make()->catchOrderNotify()){ return showJson(1002, true, $result); }else{ return showJson(TradeOrderService::make()->getError(), false); } } }