HandleEnergyOrder.php 67 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066
  1. <?php
  2. namespace App\Task;
  3. use App\Model\Energy\EnergyWalletTradeList;
  4. use App\Model\Energy\EnergyPlatformPackage;
  5. use App\Model\Energy\EnergyPlatformOrder;
  6. use App\Model\Energy\EnergyPlatform;
  7. use App\Model\Energy\EnergyAiBishu;
  8. use App\Model\Energy\EnergyThirdPart;
  9. use App\Model\Energy\EnergyQuickOrder;
  10. use App\Service\RsaServices;
  11. use App\Library\Log;
  12. class HandleEnergyOrder
  13. {
  14. public function execute()
  15. {
  16. //trx闪租能量
  17. try {
  18. $data = EnergyWalletTradeList::from('energy_wallet_trade_list as a')
  19. ->join('energy_platform_bot as b','a.transferto_address','b.receive_wallet')
  20. ->where('a.process_status',1)
  21. ->where('a.coin_name','trx')
  22. ->select('a.rid','a.transferfrom_address','a.amount','b.poll_group','b.status','b.bot_rid','b.rid as energy_platform_bot_rid')
  23. ->limit(100)
  24. ->get();
  25. if($data->count() > 0){
  26. $time = nowDate();
  27. foreach ($data as $k => $v) {
  28. if($v->status == 1){
  29. $save_data = [];
  30. $save_data['process_status'] = 6; //能量钱包未启用
  31. $save_data['process_comments'] = '能量钱包未启用'; //处理备注
  32. $save_data['process_time'] = $time; //处理时间
  33. $save_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  34. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  35. continue;
  36. }
  37. //匹配金额
  38. $res = EnergyPlatformPackage::where('bot_rid',$v->bot_rid)->where('trx_price',$v->amount)->first();
  39. if(empty($res)){
  40. $save_data = [];
  41. $save_data['process_status'] = 7; //金额无对应套餐
  42. $save_data['process_comments'] = '金额无对应套餐'; //处理备注
  43. $save_data['process_time'] = $time; //处理时间
  44. $save_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  45. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  46. continue;
  47. }
  48. $energy_amount = $res->energy_amount;
  49. //轮询,自己质押时判断能量是否足够,用平台则判断平台的trx
  50. $model = EnergyPlatform::where('poll_group',$v->poll_group)
  51. ->where('status',0)
  52. ->whereNotNull('platform_apikey')
  53. ->where(function ($query) use($energy_amount) {
  54. $query->where(function ($query1) use($energy_amount){
  55. $query1->where('platform_name', 3)->where('platform_balance', '>=', $energy_amount);
  56. });
  57. $query->orwhere(function ($query2) {
  58. $query2->orwhereIn('platform_name', [1,2,4,5])->where('platform_balance', '>', '0');
  59. });
  60. })
  61. ->orderBy('seq_sn','desc')
  62. ->get();
  63. if($model->count() > 0){
  64. $errorMessage = '';
  65. $rsa_services = new RsaServices();
  66. foreach ($model as $k1 => $v1){
  67. $signstr = $rsa_services->privateDecrypt($v1->platform_apikey);
  68. if(empty($signstr)){
  69. // $save_data = [];
  70. // $save_data['process_status'] = 5; //能量钱包未配置私钥
  71. // $save_data['process_comments'] = '能量钱包未配置私钥2'; //处理备注
  72. // $save_data['process_time'] = $time; //处理时间
  73. // $save_data['energy_platform_rid'] = $v1->rid;
  74. // $save_data['energy_package_rid'] = $res['rid'];
  75. // $save_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  76. // EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  77. $errorMessage = $errorMessage."能量平台:".$v1->platform_name." 平台私钥为空。";
  78. $save_data = [];
  79. $save_data['process_status'] = 5; //下单失败
  80. $save_data['process_comments'] = $errorMessage; //处理备注
  81. $save_data['process_time'] = $time; //处理时间
  82. $save_data['energy_platform_rid'] = $v1->rid;
  83. $save_data['energy_package_rid'] = $res['rid'];
  84. $save_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  85. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  86. continue;
  87. }
  88. $save_data = [];
  89. $save_data['process_status'] = 8; //下单中
  90. $save_data['process_comments'] = '下单中'; //处理备注
  91. $save_data['process_time'] = $time; //处理时间
  92. $save_data['energy_platform_rid'] = $v1->rid;
  93. $save_data['energy_package_rid'] = $res['rid'];
  94. $save_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  95. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  96. $energy_day = $res['energy_day'];
  97. //neee.cc平台
  98. if($v1->platform_name == 1){
  99. $header = [
  100. "Content-Type:application/json"
  101. ];
  102. $param = [
  103. "uid" => strval($v1->platform_uid),
  104. "resource_type" => "0", //0能量
  105. "receive_address" => $v->transferfrom_address,
  106. "amount" => strval($energy_amount),
  107. "freeze_day" => strval($energy_day), //0:一小时,1:一天,3:三天
  108. "time" => strval(time())
  109. ];
  110. ksort($param);
  111. reset($param);
  112. foreach($param as $ka => $va){
  113. if($ka != "sign" && $ka != "sign_type" && $va!=''){
  114. $signstr .= $ka.$va;
  115. }
  116. }
  117. $sign = md5($signstr);
  118. $param['sign'] = $sign;
  119. $balance_url = 'https://api.tronqq.com/openapi/v2/order/submit';
  120. $dlres = Get_Pay($balance_url,json_encode($param),$header);
  121. }
  122. //RentEnergysBot平台
  123. elseif($v1->platform_name == 2){
  124. //0:一小时,1:一天,3:三天
  125. switch ($energy_day) {
  126. case 1:
  127. $type = 'day';
  128. break;
  129. case 3:
  130. $type = '3day';
  131. break;
  132. default:
  133. $type = 'hour';
  134. break;
  135. }
  136. //该平台最低33000
  137. $energy_amount = $energy_amount < 33000 ?33000:$energy_amount;
  138. $balance_url = 'https://api.wallet.buzz?api=getEnergy&apikey='.$signstr.'&address='.$v->transferfrom_address.'&amount='.$energy_amount.'&type='.$type;
  139. $dlres = Get_Pay($balance_url);
  140. }
  141. //自己质押代理
  142. elseif($v1->platform_name == 3){
  143. $params = [
  144. 'pri' => $signstr,
  145. 'fromaddress' => $v1->platform_uid,
  146. 'receiveaddress' => $v->transferfrom_address,
  147. 'resourcename' => 'ENERGY',
  148. 'resourceamount' => $energy_amount,
  149. 'resourcetype' => 1,
  150. 'permissionid' => $v1->permission_id
  151. ];
  152. $dlres = Get_Pay(base64_decode('aHR0cHM6Ly90cm9ud2Vibm9kZWpzLndhbGxldGltLnZpcC9kZWxlZ2VhbmR1bmRlbGV0ZQ=='),$params);
  153. }
  154. //trongas.io平台
  155. elseif($v1->platform_name == 4){
  156. //0:一小时,1:一天,3:三天
  157. switch ($energy_day) {
  158. case 1:
  159. $rentTime = 24;
  160. break;
  161. case 3:
  162. $rentTime = 72;
  163. break;
  164. default:
  165. $rentTime = 1;
  166. break;
  167. }
  168. $param = [
  169. "username" => $v1->platform_uid, // 用户名
  170. "password" => $signstr, // 用户密码
  171. "resType" => "ENERGY", // 资源类型,ENERGY:能量,BANDWIDTH:带宽
  172. "payNums" => $energy_amount, // 租用数量
  173. "rentTime" => $rentTime, // 单位小时,只能1时或1到30天按天租用其中不能租用2天
  174. "resLock" => 0, // 租用锁定,0:不锁定,1:锁定。能量租用数量不小于500万且租用时间不小于3天才能锁定。带宽租用数量不小于30万租用时间不小于3天才能锁定
  175. "receiveAddress" => $v->transferfrom_address // 接收资源地址(请勿输入合约地址或没激活地址)
  176. ];
  177. $balance_url = 'https://trongas.io/api/pay';
  178. $dlres = Get_Pay($balance_url,$param);
  179. }
  180. //机器人开发代理
  181. elseif($v1->platform_name == 5){
  182. $balance_url = env('THIRD_URL');
  183. if(empty($balance_url)){
  184. $errorMessage = $errorMessage."使用开发者能量代理时,env中url为空";
  185. $save_data = [];
  186. $save_data['process_status'] = 4; //下单失败
  187. $save_data['process_time'] = $time; //处理时间
  188. $save_data['process_comments'] = $time.$errorMessage; //处理备注
  189. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  190. continue;
  191. }
  192. //0:一小时,1:一天,3:三天
  193. switch ($energy_day) {
  194. case 1:
  195. $rentTime = 24;
  196. break;
  197. case 3:
  198. $rentTime = 72;
  199. break;
  200. default:
  201. $rentTime = 1;
  202. break;
  203. }
  204. //使用开发者能量代理,仅支持32000 65000能量代理1小时
  205. if($rentTime != 1){
  206. $errorMessage = $errorMessage."使用开发者能量代理时,时长只能为1小时";
  207. $save_data = [];
  208. $save_data['process_status'] = 4; //下单失败
  209. $save_data['process_time'] = $time; //处理时间
  210. $save_data['process_comments'] = $time.$errorMessage; //处理备注
  211. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  212. continue;
  213. }
  214. $param = [
  215. "tg_uid" => $v1->platform_uid, // 用户名,此处是tg的uid,因为是机器人能量代理模式
  216. "payNums" => $energy_amount, // 租用数量
  217. "rentTime" => $rentTime, // 单位小时,只能1时或1到30天按天租用其中不能租用2天
  218. "receiveAddress" => $v->transferfrom_address // 接收资源地址(请勿输入合约地址或没激活地址)
  219. ];
  220. $balance_url = $balance_url.'/api/thirdpart/shanzuorder';
  221. $dlres = Get_Pay($balance_url,$param);
  222. }
  223. // MeFree.NET 平台
  224. elseif($v1->platform_name == 6){
  225. // API 配置信息
  226. $base_url = "https://api.mefree.net"; // Mefree API 基础地址
  227. $api_key = $v1->platform_uid; // 替换为实际的 API Key
  228. $secret_key = $signstr; // 替换为实际的 Secret Key
  229. // 代理的周期,值可能为:0,1,2,3,4...30。其中0:速充;1:一小时;2:1天;3:3天;4:4天...最多30天。
  230. $period = 1;
  231. $tron_address = $v->transferfrom_address ; // 接收资源地址(请勿输入合约地址或没激活地址)
  232. // 创建订单
  233. $request_path = "/api/order?quantity=$energy_amount&target_address=$tron_address&period=$period"; // API 请求路径
  234. $response = send_request("POST", $request_path, $base_url, $api_key, $secret_key);
  235. $dlres = $response;
  236. }
  237. if(empty($dlres)){
  238. // $save_data = [];
  239. // $save_data['process_status'] = 4; //下单失败
  240. // $save_data['process_comments'] = '下单失败,接口请求空'; //处理备注
  241. // $save_data['process_time'] = $time; //处理时间
  242. // $save_data['energy_platform_rid'] = $v1->rid;
  243. // $save_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  244. // EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  245. $errorMessage = $errorMessage."能量平台:".$v1->platform_name." 能量平台接口返回为空。";
  246. $save_data = [];
  247. $save_data['process_status'] = 4; //下单失败
  248. $save_data['process_comments'] = $errorMessage; //处理备注
  249. $save_data['process_time'] = $time; //处理时间
  250. $save_data['energy_platform_rid'] = $v1->rid;
  251. $save_data['energy_package_rid'] = $res['rid'];
  252. $save_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  253. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  254. continue;
  255. }else{
  256. $dlres = json_decode($dlres,true);
  257. if(
  258. (isset($dlres['status']) && $dlres['status'] == 200 && $v1->platform_name == 1) ||
  259. (isset($dlres['status']) && $dlres['status'] == 'success' && $v1->platform_name == 2) ||
  260. (isset($dlres['code']) && $dlres['code'] == 200 && $v1->platform_name == 3) ||
  261. (isset($dlres['code']) && $dlres['code'] == 10000 && $v1->platform_name == 4) ||
  262. (isset($dlres['code']) && $dlres['code'] == 200 && $v1->platform_name == 5) ||
  263. (isset($dlres['status_code']) && $dlres['status_code'] == 200 && $v1->platform_name == 6)
  264. ){
  265. if($v1->platform_name == 1){
  266. $orderNo = $dlres['data']['order_no'];
  267. $use_trx = 0;
  268. }elseif($v1->platform_name == 2){
  269. $orderNo = $dlres['txid'];
  270. $use_trx = 0;
  271. }elseif($v1->platform_name == 3){
  272. $orderNo = $dlres['data']['txid'];
  273. $use_trx = $dlres['data']['use_trx'];
  274. }elseif($v1->platform_name == 4){
  275. $orderNo = $dlres['data']['orderId'];
  276. $use_trx = $dlres['data']['orderMoney'];
  277. }elseif($v1->platform_name == 5){
  278. $orderNo = $dlres['data']['orderId'];
  279. $use_trx = $dlres['data']['orderMoney'];
  280. }elseif($v1->platform_name == 6){
  281. $orderNo = $dlres['data']['client_order_id'];
  282. $use_trx = $dlres['data']['amount_sun'];
  283. }
  284. $insert_data = [];
  285. $insert_data['energy_platform_rid'] = $v1->rid;
  286. $insert_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  287. $insert_data['platform_name'] = $v1->platform_name;
  288. $insert_data['platform_uid'] = $v1->platform_uid;
  289. $insert_data['receive_address'] = $v->transferfrom_address;
  290. $insert_data['platform_order_id'] = $orderNo;
  291. $insert_data['energy_amount'] = $energy_amount;
  292. $insert_data['energy_day'] = $energy_day;
  293. $insert_data['energy_time'] = $time;
  294. $insert_data['source_type'] = 2; //自动下单
  295. $insert_data['recovery_status'] = $v1->platform_name == 3 ?2:1; //回收状态:1不用回收,2待回收,3已回收
  296. $insert_data['use_trx'] = $use_trx;
  297. $platform_order_rid = EnergyPlatformOrder::insertGetId($insert_data);
  298. $save_data = [];
  299. $save_data['process_status'] = 9; //下单成功
  300. $save_data['process_comments'] = 'SUCCESS'; //处理备注
  301. $save_data['platform_order_rid'] = $platform_order_rid; //能量订单表ID
  302. $save_data['process_time'] = $time; //处理时间
  303. $save_data['energy_platform_rid'] = $v1->rid;
  304. $save_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  305. $save_data['tg_notice_status_send'] = 'N'; //重新通知
  306. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  307. break; //跳出不轮询了
  308. }else{
  309. if($v1->platform_name == 1){
  310. $msg = '下单失败,接口返回:'.$dlres['msg'];
  311. }elseif($v1->platform_name == 2){
  312. $msg = '下单失败,接口返回:'.json_encode($dlres);
  313. }elseif($v1->platform_name == 3){
  314. $msg = '下单失败,检查质押是否足够';
  315. }elseif($v1->platform_name == 4){
  316. $msg = ' 下单失败,接口返回:'.json_encode($dlres);
  317. }elseif($v1->platform_name == 5){
  318. $msg = ' 下单失败,接口返回:'.json_encode($dlres);
  319. }elseif($v1->platform_name == 6){
  320. $msg = ' 下单失败,接口返回:'.json_encode($dlres);
  321. $msg = ' 下单失败,接口返回-aaaa:'.$signstr;
  322. }
  323. $errorMessage = $errorMessage."能量平台:".$v1->platform_name.$msg;
  324. $save_data = [];
  325. $save_data['process_status'] = 4; //下单失败
  326. $save_data['process_comments'] = $errorMessage; //处理备注
  327. $save_data['process_time'] = $time; //处理时间
  328. $save_data['energy_platform_rid'] = $v1->rid;
  329. $save_data['energy_package_rid'] = $res['rid'];
  330. $save_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  331. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  332. continue;
  333. }
  334. }
  335. }
  336. }else{
  337. $save_data = [];
  338. $save_data['process_status'] = 4; //下单失败
  339. $save_data['process_comments'] = "机器人无可用能量平台,请质押或者充值平台"; //处理备注
  340. $save_data['process_time'] = $time; //处理时间
  341. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  342. }
  343. }
  344. }else{
  345. // $this->log('shanduibonus','----------没有数据----------');
  346. }
  347. }catch (\Exception $e){
  348. // $this->log('shanduibonus','----------任务执行报错,请联系管理员。报错原因:----------'.$e->getMessage());
  349. }
  350. //能量快捷余额购买
  351. try {
  352. $data = EnergyQuickOrder::from('energy_quick_order as a')
  353. ->join('energy_platform_bot as b','a.bot_rid','b.bot_rid')
  354. ->where('a.status',1)
  355. ->where('a.energy_amount','>',0)
  356. ->select('a.rid','a.wallet_addr','a.energy_amount','a.energy_day','b.poll_group','b.status','b.bot_rid','b.rid as energy_platform_bot_rid')
  357. ->limit(100)
  358. ->get();
  359. if($data->count() > 0){
  360. $time = nowDate();
  361. foreach ($data as $k => $v) {
  362. if($v->status == 1){
  363. $save_data = [];
  364. $save_data['status'] = 6; //能量钱包未启用
  365. $save_data['comments'] = '能量钱包未启用'; //处理备注
  366. $save_data['process_time'] = $time; //处理时间
  367. EnergyQuickOrder::where('rid',$v->rid)->update($save_data);
  368. continue;
  369. }
  370. $energy_amount = $v->energy_amount;
  371. //轮询,自己质押时判断能量是否足够,用平台则判断平台的trx
  372. $model = EnergyPlatform::where('poll_group',$v->poll_group)
  373. ->where('status',0)
  374. ->whereNotNull('platform_apikey')
  375. ->where(function ($query) use($energy_amount) {
  376. $query->where(function ($query1) use($energy_amount){
  377. $query1->where('platform_name', 3)->where('platform_balance', '>=', $energy_amount);
  378. });
  379. $query->orwhere(function ($query2) {
  380. $query2->orwhereIn('platform_name', [1,2,4,5,6])->where('platform_balance', '>', '0');
  381. });
  382. })
  383. ->orderBy('seq_sn','desc')
  384. ->get();
  385. if($model->count() > 0){
  386. $errorMessage = '';
  387. $rsa_services = new RsaServices();
  388. foreach ($model as $k1 => $v1){
  389. $signstr = $rsa_services->privateDecrypt($v1->platform_apikey);
  390. if(empty($signstr)){
  391. $errorMessage = $errorMessage."能量平台:".$v1->platform_name." 平台私钥为空。";
  392. $save_data = [];
  393. $save_data['status'] = 5; //下单失败
  394. $save_data['comments'] = $errorMessage; //处理备注
  395. $save_data['process_time'] = $time; //处理时间
  396. EnergyQuickOrder::where('rid',$v->rid)->update($save_data);
  397. continue;
  398. }
  399. $save_data = [];
  400. $save_data['status'] = 8; //下单中
  401. $save_data['comments'] = '下单中'; //处理备注
  402. $save_data['process_time'] = $time; //处理时间
  403. EnergyQuickOrder::where('rid',$v->rid)->update($save_data);
  404. $energy_day = $v->energy_day;
  405. //neee.cc平台
  406. if($v1->platform_name == 1){
  407. $header = [
  408. "Content-Type:application/json"
  409. ];
  410. $param = [
  411. "uid" => strval($v1->platform_uid),
  412. "resource_type" => "0", //0能量
  413. "receive_address" => $v->wallet_addr,
  414. "amount" => strval($energy_amount),
  415. "freeze_day" => strval($energy_day), //0:一小时,1:一天,3:三天
  416. "time" => strval(time())
  417. ];
  418. ksort($param);
  419. reset($param);
  420. foreach($param as $ka => $va){
  421. if($ka != "sign" && $ka != "sign_type" && $va!=''){
  422. $signstr .= $ka.$va;
  423. }
  424. }
  425. $sign = md5($signstr);
  426. $param['sign'] = $sign;
  427. $balance_url = 'https://api.tronqq.com/openapi/v2/order/submit';
  428. $dlres = Get_Pay($balance_url,json_encode($param),$header);
  429. }
  430. //RentEnergysBot平台
  431. elseif($v1->platform_name == 2){
  432. //0:一小时,1:一天,3:三天
  433. switch ($energy_day) {
  434. case 1:
  435. $type = 'day';
  436. break;
  437. case 3:
  438. $type = '3day';
  439. break;
  440. default:
  441. $type = 'hour';
  442. break;
  443. }
  444. //该平台最低33000
  445. $energy_amount = $energy_amount < 33000 ?33000:$energy_amount;
  446. $balance_url = 'https://api.wallet.buzz?api=getEnergy&apikey='.$signstr.'&address='.$v->wallet_addr.'&amount='.$energy_amount.'&type='.$type;
  447. $dlres = Get_Pay($balance_url);
  448. }
  449. //自己质押代理
  450. elseif($v1->platform_name == 3){
  451. $params = [
  452. 'pri' => $signstr,
  453. 'fromaddress' => $v1->platform_uid,
  454. 'receiveaddress' => $v->wallet_addr,
  455. 'resourcename' => 'ENERGY',
  456. 'resourceamount' => $energy_amount,
  457. 'resourcetype' => 1,
  458. 'permissionid' => $v1->permission_id
  459. ];
  460. $dlres = Get_Pay(base64_decode('aHR0cHM6Ly90cm9ud2Vibm9kZWpzLndhbGxldGltLnZpcC9kZWxlZ2VhbmR1bmRlbGV0ZQ=='),$params);
  461. }
  462. //trongas.io平台
  463. elseif($v1->platform_name == 4){
  464. //0:一小时,1:一天,3:三天
  465. switch ($energy_day) {
  466. case 1:
  467. $rentTime = 24;
  468. break;
  469. case 3:
  470. $rentTime = 72;
  471. break;
  472. default:
  473. $rentTime = 1;
  474. break;
  475. }
  476. $param = [
  477. "username" => $v1->platform_uid, // 用户名
  478. "password" => $signstr, // 用户密码
  479. "resType" => "ENERGY", // 资源类型,ENERGY:能量,BANDWIDTH:带宽
  480. "payNums" => $energy_amount, // 租用数量
  481. "rentTime" => $rentTime, // 单位小时,只能1时或1到30天按天租用其中不能租用2天
  482. "resLock" => 0, // 租用锁定,0:不锁定,1:锁定。能量租用数量不小于500万且租用时间不小于3天才能锁定。带宽租用数量不小于30万租用时间不小于3天才能锁定
  483. "receiveAddress" => $v->wallet_addr // 接收资源地址(请勿输入合约地址或没激活地址)
  484. ];
  485. $balance_url = 'https://trongas.io/api/pay';
  486. $dlres = Get_Pay($balance_url,$param);
  487. }
  488. //机器人开发代理
  489. elseif($v1->platform_name == 5){
  490. $balance_url = env('THIRD_URL');
  491. if(empty($balance_url)){
  492. $errorMessage = $errorMessage."使用开发者能量代理时,env中url为空";
  493. $save_data = [];
  494. $save_data['status'] = 4; //下单失败
  495. $save_data['process_time'] = $time; //处理时间
  496. $save_data['comments'] = $time.$errorMessage; //处理备注
  497. EnergyQuickOrder::where('rid',$v->rid)->update($save_data);
  498. continue;
  499. }
  500. //0:一小时,1:一天,3:三天
  501. switch ($energy_day) {
  502. case 1:
  503. $rentTime = 24;
  504. break;
  505. case 3:
  506. $rentTime = 72;
  507. break;
  508. default:
  509. $rentTime = 1;
  510. break;
  511. }
  512. //使用开发者能量代理,仅支持32000 65000能量代理1小时
  513. if($rentTime != 1){
  514. $errorMessage = $errorMessage."使用开发者能量代理时,时长只能为1小时";
  515. $save_data = [];
  516. $save_data['status'] = 4; //下单失败
  517. $save_data['process_time'] = $time; //处理时间
  518. $save_data['comments'] = $time.$errorMessage; //处理备注
  519. EnergyQuickOrder::where('rid',$v->rid)->update($save_data);
  520. continue;
  521. }
  522. $param = [
  523. "tg_uid" => $v1->platform_uid, // 用户名,此处是tg的uid,因为是机器人能量代理模式
  524. "payNums" => $energy_amount, // 租用数量
  525. "rentTime" => $rentTime, // 单位小时,只能1时或1到30天按天租用其中不能租用2天
  526. "receiveAddress" => $v->wallet_addr // 接收资源地址(请勿输入合约地址或没激活地址)
  527. ];
  528. $balance_url = $balance_url.'/api/thirdpart/shanzuorder';
  529. $dlres = Get_Pay($balance_url,$param);
  530. }
  531. // MeFree.NET 平台
  532. elseif($v1->platform_name == 6){
  533. // API 配置信息
  534. $base_url = "https://api.mefree.net"; // Mefree API 基础地址
  535. $api_key = $v1->platform_uid; // 替换为实际的 API Key
  536. $secret_key = $signstr; // 替换为实际的 Secret Key
  537. // 代理的周期,值可能为:0,1,2,3,4...30。其中0:速充;1:一小时;2:1天;3:3天;4:4天...最多30天。
  538. $period = 1;
  539. $tron_address = $v->wallet_addr ; // 接收资源地址(请勿输入合约地址或没激活地址)
  540. // 创建订单
  541. $request_path = "/api/order?quantity=$energy_amount&target_address=$tron_address&period=$period"; // API 请求路径
  542. $response = send_request("POST", $request_path, $base_url, $api_key, $secret_key);
  543. // $this->log('shanduibonus','----------response----------');
  544. // $this->log('shanduibonus',$response['response']);
  545. $dlres = $response['response']; // $dlres 为json格式,与其他统一共用
  546. }
  547. if(empty($dlres)){
  548. $errorMessage = $errorMessage."能量平台:".$v1->platform_name." 能量平台接口返回为空。";
  549. $save_data = [];
  550. $save_data['status'] = 4; //下单失败
  551. $save_data['comments'] = $errorMessage; //处理备注
  552. $save_data['process_time'] = $time; //处理时间
  553. EnergyQuickOrder::where('rid',$v->rid)->update($save_data);
  554. continue;
  555. }else{
  556. $dlres = json_decode($dlres,true);
  557. if(
  558. (isset($dlres['status']) && $dlres['status'] == 200 && $v1->platform_name == 1) ||
  559. (isset($dlres['status']) && $dlres['status'] == 'success' && $v1->platform_name == 2) ||
  560. (isset($dlres['code']) && $dlres['code'] == 200 && $v1->platform_name == 3) ||
  561. (isset($dlres['code']) && $dlres['code'] == 10000 && $v1->platform_name == 4) ||
  562. (isset($dlres['code']) && $dlres['code'] == 200 && $v1->platform_name == 5) ||
  563. (isset($dlres['code']) && $dlres['code'] === 0 && $v1->platform_name == 6)
  564. ){
  565. if($v1->platform_name == 1){
  566. $orderNo = $dlres['data']['order_no'];
  567. $use_trx = 0;
  568. }elseif($v1->platform_name == 2){
  569. $orderNo = $dlres['txid'];
  570. $use_trx = 0;
  571. }elseif($v1->platform_name == 3){
  572. $orderNo = $dlres['data']['txid'];
  573. $use_trx = $dlres['data']['use_trx'];
  574. }elseif($v1->platform_name == 4){
  575. $orderNo = $dlres['data']['orderId'];
  576. $use_trx = $dlres['data']['orderMoney'];
  577. }elseif($v1->platform_name == 5){
  578. $orderNo = $dlres['data']['orderId'];
  579. $use_trx = $dlres['data']['orderMoney'];
  580. }elseif($v1->platform_name == 6){
  581. $orderNo = $dlres['data']['pay_hash'];
  582. $use_trx = $dlres['data']['amount_sun'];
  583. }
  584. $insert_data = [];
  585. $insert_data['energy_platform_rid'] = $v1->rid;
  586. $insert_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  587. $insert_data['platform_name'] = $v1->platform_name;
  588. $insert_data['platform_uid'] = $v1->platform_uid;
  589. $insert_data['receive_address'] = $v->wallet_addr;
  590. $insert_data['platform_order_id'] = $orderNo;
  591. $insert_data['energy_amount'] = $energy_amount;
  592. $insert_data['energy_day'] = $energy_day;
  593. $insert_data['energy_time'] = $time;
  594. $insert_data['source_type'] = 2; //自动下单
  595. $insert_data['recovery_status'] = $v1->platform_name == 3 ?2:1; //回收状态:1不用回收,2待回收,3已回收
  596. $insert_data['use_trx'] = $use_trx;
  597. $platform_order_rid = EnergyPlatformOrder::insertGetId($insert_data);
  598. $save_data = [];
  599. $save_data['status'] = 9; //下单成功
  600. $save_data['comments'] = 'SUCCESS'; //处理备注
  601. $save_data['process_time'] = $time; //处理时间
  602. $save_data['daili_time'] = $time; //代理时间
  603. $save_data['is_notice'] = 'Y'; //重新通知
  604. EnergyQuickOrder::where('rid',$v->rid)->update($save_data);
  605. break; //跳出不轮询了
  606. }else{
  607. if($v1->platform_name == 1){
  608. $msg = '下单失败,接口返回:'.$dlres['msg'];
  609. }elseif($v1->platform_name == 2){
  610. $msg = '下单失败,接口返回:'.json_encode($dlres);
  611. }elseif($v1->platform_name == 3){
  612. $msg = '下单失败,检查质押是否足够';
  613. }elseif($v1->platform_name == 4){
  614. $msg = ' 下单失败,接口返回:'.json_encode($dlres);
  615. }elseif($v1->platform_name == 5){
  616. $msg = ' 下单失败,接口返回:'.json_encode($dlres);
  617. }elseif($v1->platform_name == 6){
  618. $msg = ' 下单失败,接口返回:'.$response['response'];
  619. }
  620. $errorMessage = "能量平台:".$v1->platform_name.$msg;
  621. $save_data = [];
  622. $save_data['status'] = 4; //下单失败
  623. $save_data['comments'] = $errorMessage; //处理备注
  624. $save_data['process_time'] = $time; //处理时间
  625. EnergyQuickOrder::where('rid',$v->rid)->update($save_data);
  626. continue;
  627. }
  628. }
  629. }
  630. }else{
  631. $save_data = [];
  632. $save_data['status'] = 4; //下单失败
  633. $save_data['comments'] = "机器人无可用能量平台,请质押或者充值平台"; //处理备注
  634. $save_data['process_time'] = $time; //处理时间
  635. EnergyQuickOrder::where('rid',$v->rid)->update($save_data);
  636. }
  637. }
  638. }else{
  639. // $this->log('shanduibonus','----------没有数据----------');
  640. }
  641. }catch (\Exception $e){
  642. $this->log('shanduibonus','----------任务执行报错,请联系管理员。报错原因:----------'.$e->getMessage());
  643. }
  644. //机器人开发代理-闪租下单
  645. try {
  646. $data = EnergyThirdPart::from('energy_third_part as a')
  647. ->join('energy_platform_bot as b','a.bot_rid','b.bot_rid')
  648. ->where('a.process_status',1)
  649. ->where('a.order_type',2)
  650. ->select('a.rid','a.wallet_addr','a.cishu_energy','b.poll_group','b.status','b.bot_rid','b.rid as energy_platform_bot_rid')
  651. ->limit(100)
  652. ->get();
  653. if($data->count() > 0){
  654. $time = nowDate();
  655. foreach ($data as $k => $v) {
  656. if($v->status == 1){
  657. $save_data = [];
  658. $save_data['process_status'] = 6; //能量钱包未启用
  659. $save_data['process_comments'] = '能量钱包未启用'; //处理备注
  660. $save_data['process_time'] = $time; //处理时间
  661. EnergyThirdPart::where('rid',$v->rid)->update($save_data);
  662. continue;
  663. }
  664. $energy_amount = $v->cishu_energy;
  665. //轮询,自己质押时判断能量是否足够,用平台则判断平台的trx
  666. $model = EnergyPlatform::where('poll_group',$v->poll_group)
  667. ->where('status',0)
  668. ->whereNotNull('platform_apikey')
  669. ->where(function ($query) use($energy_amount) {
  670. $query->where(function ($query1) use($energy_amount){
  671. $query1->where('platform_name', 3)->where('platform_balance', '>=', $energy_amount);
  672. });
  673. $query->orwhere(function ($query2) {
  674. $query2->orwhereIn('platform_name', [1,2,4])->where('platform_balance', '>', '0'); //这里不能有5这个平台
  675. });
  676. })
  677. ->orderBy('seq_sn','desc')
  678. ->get();
  679. if($model->count() > 0){
  680. $errorMessage = '';
  681. $rsa_services = new RsaServices();
  682. foreach ($model as $k1 => $v1){
  683. $signstr = $rsa_services->privateDecrypt($v1->platform_apikey);
  684. if(empty($signstr)){
  685. $errorMessage = $errorMessage."能量平台:".$v1->platform_name." 平台私钥为空。";
  686. $save_data = [];
  687. $save_data['process_status'] = 5; //下单失败
  688. $save_data['process_comments'] = $errorMessage; //处理备注
  689. $save_data['process_time'] = $time; //处理时间
  690. EnergyThirdPart::where('rid',$v->rid)->update($save_data);
  691. continue;
  692. }
  693. $save_data = [];
  694. $save_data['process_status'] = 8; //下单中
  695. $save_data['process_comments'] = '下单中'; //处理备注
  696. $save_data['process_time'] = $time; //处理时间
  697. EnergyThirdPart::where('rid',$v->rid)->update($save_data);
  698. $energy_day = 0; //该方式下单只能是1小时
  699. //neee.cc平台
  700. if($v1->platform_name == 1){
  701. $header = [
  702. "Content-Type:application/json"
  703. ];
  704. $param = [
  705. "uid" => strval($v1->platform_uid),
  706. "resource_type" => "0", //0能量
  707. "receive_address" => $v->wallet_addr,
  708. "amount" => strval($energy_amount),
  709. "freeze_day" => strval($energy_day), //0:一小时,1:一天,3:三天
  710. "time" => strval(time())
  711. ];
  712. ksort($param);
  713. reset($param);
  714. foreach($param as $ka => $va){
  715. if($ka != "sign" && $ka != "sign_type" && $va!=''){
  716. $signstr .= $ka.$va;
  717. }
  718. }
  719. $sign = md5($signstr);
  720. $param['sign'] = $sign;
  721. $balance_url = 'https://api.tronqq.com/openapi/v2/order/submit';
  722. $dlres = Get_Pay($balance_url,json_encode($param),$header);
  723. }
  724. //RentEnergysBot平台
  725. elseif($v1->platform_name == 2){
  726. //0:一小时,1:一天,3:三天
  727. switch ($energy_day) {
  728. case 1:
  729. $type = 'day';
  730. break;
  731. case 3:
  732. $type = '3day';
  733. break;
  734. default:
  735. $type = 'hour';
  736. break;
  737. }
  738. //该平台最低33000
  739. $energy_amount = $energy_amount < 33000 ?33000:$energy_amount;
  740. $balance_url = 'https://api.wallet.buzz?api=getEnergy&apikey='.$signstr.'&address='.$v->wallet_addr.'&amount='.$energy_amount.'&type='.$type;
  741. $dlres = Get_Pay($balance_url);
  742. }
  743. //自己质押代理
  744. elseif($v1->platform_name == 3){
  745. $params = [
  746. 'pri' => $signstr,
  747. 'fromaddress' => $v1->platform_uid,
  748. 'receiveaddress' => $v->wallet_addr,
  749. 'resourcename' => 'ENERGY',
  750. 'resourceamount' => $energy_amount,
  751. 'resourcetype' => 1,
  752. 'permissionid' => $v1->permission_id
  753. ];
  754. $dlres = Get_Pay(base64_decode('aHR0cHM6Ly90cm9ud2Vibm9kZWpzLndhbGxldGltLnZpcC9kZWxlZ2VhbmR1bmRlbGV0ZQ=='),$params);
  755. }
  756. //trongas.io平台
  757. elseif($v1->platform_name == 4){
  758. //0:一小时,1:一天,3:三天
  759. switch ($energy_day) {
  760. case 1:
  761. $rentTime = 24;
  762. break;
  763. case 3:
  764. $rentTime = 72;
  765. break;
  766. default:
  767. $rentTime = 1;
  768. break;
  769. }
  770. $param = [
  771. "username" => $v1->platform_uid, // 用户名
  772. "password" => $signstr, // 用户密码
  773. "resType" => "ENERGY", // 资源类型,ENERGY:能量,BANDWIDTH:带宽
  774. "payNums" => $energy_amount, // 租用数量
  775. "rentTime" => $rentTime, // 单位小时,只能1时或1到30天按天租用其中不能租用2天
  776. "resLock" => 0, // 租用锁定,0:不锁定,1:锁定。能量租用数量不小于500万且租用时间不小于3天才能锁定。带宽租用数量不小于30万租用时间不小于3天才能锁定
  777. "receiveAddress" => $v->wallet_addr // 接收资源地址(请勿输入合约地址或没激活地址)
  778. ];
  779. $balance_url = 'https://trongas.io/api/pay';
  780. $dlres = Get_Pay($balance_url,$param);
  781. }
  782. // MeFree.NET 平台
  783. elseif($v1->platform_name == 6){
  784. // API 配置信息
  785. $base_url = "https://api.mefree.net"; // Mefree API 基础地址
  786. $api_key = $v1->platform_uid; // 替换为实际的 API Key
  787. $secret_key = $v1->platform_apikey; // 替换为实际的 Secret Key
  788. // 代理的周期,值可能为:0,1,2,3,4...30。其中0:速充;1:一小时;2:1天;3:3天;4:4天...最多30天。
  789. $period = 1;
  790. $tron_address = $v->transferfrom_address ; // 接收资源地址(请勿输入合约地址或没激活地址)
  791. // 创建订单
  792. $request_path = "/api/order?quantity=$energy_amount&target_address=$tron_address&period=$period"; // API 请求路径
  793. $response = send_request("POST", $request_path, $base_url, $api_key, $secret_key);
  794. $dlres = $response;
  795. }
  796. if(empty($dlres)){
  797. $errorMessage = $errorMessage."能量平台:".$v1->platform_name." 能量平台接口返回为空。";
  798. $save_data = [];
  799. $save_data['process_status'] = 4; //下单失败
  800. $save_data['process_comments'] = $errorMessage; //处理备注
  801. $save_data['process_time'] = $time; //处理时间
  802. EnergyThirdPart::where('rid',$v->rid)->update($save_data);
  803. continue;
  804. }else{
  805. $dlres = json_decode($dlres,true);
  806. if(
  807. (isset($dlres['status']) && $dlres['status'] == 200 && $v1->platform_name == 1) ||
  808. (isset($dlres['status']) && $dlres['status'] == 'success' && $v1->platform_name == 2) ||
  809. (isset($dlres['code']) && $dlres['code'] == 200 && $v1->platform_name == 3) ||
  810. (isset($dlres['code']) && $dlres['code'] == 10000 && $v1->platform_name == 4) ||
  811. (isset($dlres['status_code']) && $dlres['status_code'] == 200 && $v1->platform_name == 6)
  812. ){
  813. if($v1->platform_name == 1){
  814. $orderNo = $dlres['data']['order_no'];
  815. $use_trx = 0;
  816. }elseif($v1->platform_name == 2){
  817. $orderNo = $dlres['txid'];
  818. $use_trx = 0;
  819. }elseif($v1->platform_name == 3){
  820. $orderNo = $dlres['data']['txid'];
  821. $use_trx = $dlres['data']['use_trx'];
  822. }elseif($v1->platform_name == 4){
  823. $orderNo = $dlres['data']['orderId'];
  824. $use_trx = $dlres['data']['orderMoney'];
  825. }elseif($v1->platform_name == 6){
  826. $orderNo = $dlres['data']['client_order_id'];
  827. $use_trx = $dlres['data']['amount_sun'];
  828. }
  829. $insert_data = [];
  830. $insert_data['energy_platform_rid'] = $v1->rid;
  831. $insert_data['energy_platform_bot_rid'] = $v->energy_platform_bot_rid;
  832. $insert_data['platform_name'] = $v1->platform_name;
  833. $insert_data['platform_uid'] = $v1->platform_uid;
  834. $insert_data['receive_address'] = $v->wallet_addr;
  835. $insert_data['platform_order_id'] = $orderNo;
  836. $insert_data['energy_amount'] = $energy_amount;
  837. $insert_data['energy_day'] = $energy_day;
  838. $insert_data['energy_time'] = $time;
  839. $insert_data['source_type'] = 2; //自动下单
  840. $insert_data['recovery_status'] = $v1->platform_name == 3 ?2:1; //回收状态:1不用回收,2待回收,3已回收
  841. $insert_data['use_trx'] = $use_trx;
  842. $platform_order_rid = EnergyPlatformOrder::insertGetId($insert_data);
  843. $save_data = [];
  844. $save_data['process_status'] = 9; //下单成功
  845. $save_data['process_comments'] = 'SUCCESS'; //处理备注
  846. $save_data['process_time'] = $time; //处理时间
  847. // $save_data['tg_notice_status_send'] = 'N'; //重新通知
  848. EnergyThirdPart::where('rid',$v->rid)->update($save_data);
  849. break; //跳出不轮询了
  850. }else{
  851. if($v1->platform_name == 1){
  852. $msg = '下单失败,接口返回:'.$dlres['msg'];
  853. }elseif($v1->platform_name == 2){
  854. $msg = '下单失败,接口返回:'.json_encode($dlres);
  855. }elseif($v1->platform_name == 3){
  856. $msg = '下单失败,检查质押是否足够';
  857. }elseif($v1->platform_name == 4){
  858. $msg = ' 下单失败,接口返回:'.json_encode($dlres);
  859. }elseif($v1->platform_name == 6){
  860. $msg = ' 下单失败,接口返回:'.json_encode($dlres);
  861. }
  862. $errorMessage = $errorMessage."能量平台:".$v1->platform_name.$msg;
  863. $save_data = [];
  864. $save_data['process_status'] = 4; //下单失败
  865. $save_data['process_comments'] = $errorMessage; //处理备注
  866. $save_data['process_time'] = $time; //处理时间
  867. EnergyThirdPart::where('rid',$v->rid)->update($save_data);
  868. continue;
  869. }
  870. }
  871. }
  872. }else{
  873. $save_data = [];
  874. $save_data['process_status'] = 4; //下单失败
  875. $save_data['process_comments'] = "机器人无可用能量平台,请质押或者充值平台"; //处理备注
  876. $save_data['process_time'] = $time; //处理时间
  877. EnergyThirdPart::where('rid',$v->rid)->update($save_data);
  878. }
  879. }
  880. }else{
  881. // $this->log('shanduibonus','----------没有数据----------');
  882. }
  883. }catch (\Exception $e){
  884. // $this->log('shanduibonus','----------任务执行报错,请联系管理员。报错原因:----------'.$e->getMessage());
  885. }
  886. //usdt笔数套餐
  887. try {
  888. $data = EnergyWalletTradeList::from('energy_wallet_trade_list as a')
  889. ->join('energy_platform_bot as b','a.transferto_address','b.receive_wallet')
  890. ->leftJoin('telegram_bot as c','b.bot_rid','c.rid')
  891. ->where('a.process_status',1)
  892. ->where('a.coin_name','usdt')
  893. ->select('a.rid','a.transferfrom_address','a.amount','b.bot_rid','b.per_bishu_usdt_price','b.tg_notice_obj_send','c.bot_token','c.bot_username','c.bot_admin_username')
  894. ->limit(100)
  895. ->get();
  896. if($data->count() > 0){
  897. $time = nowDate();
  898. foreach ($data as $k => $v) {
  899. //查询笔数套餐钱包是否存在
  900. $energyAiBishu = EnergyAiBishu::where('wallet_addr',$v->transferfrom_address)->first();
  901. if($energyAiBishu){
  902. $save_data = [];
  903. $save_data['total_buy_usdt'] = $energyAiBishu->total_buy_usdt + $v->amount;
  904. $save_data['max_buy_quantity'] = $energyAiBishu->max_buy_quantity + floor($v->amount / $v->per_bishu_usdt_price);
  905. EnergyAiBishu::where('rid',$energyAiBishu->rid)->update($save_data);
  906. }else{
  907. $insert_data = [];
  908. $insert_data['bot_rid'] = $v->bot_rid;
  909. $insert_data['wallet_addr'] = $v->transferfrom_address;
  910. $insert_data['status'] = 0;
  911. $insert_data['total_buy_usdt'] = $v->amount;
  912. $insert_data['max_buy_quantity'] = floor($v->amount / $v->per_bishu_usdt_price);
  913. $insert_data['create_time'] = $time;
  914. EnergyAiBishu::insert($insert_data);
  915. }
  916. $save_data = [];
  917. $save_data['process_status'] = 9; //下单成功
  918. $save_data['process_comments'] = "成功,笔数套餐增加:".floor($v->amount / $v->per_bishu_usdt_price); //处理备注
  919. $save_data['process_time'] = $time; //处理时间
  920. EnergyWalletTradeList::where('rid',$v->rid)->update($save_data);
  921. //通知到群
  922. if(!empty($v->tg_notice_obj_send) && $v->tg_notice_obj_send != ''){
  923. $replytext = "<b>✳️笔数套餐购买成功</b> \n"
  924. ."➖➖➖➖➖➖➖➖\n"
  925. ."<b>下单模式</b>:笔数套餐\n"
  926. ."<b>免费转账</b>:". floor($v->amount / $v->per_bishu_usdt_price) ." 次\n"
  927. ."<b>下单地址</b>:".mb_substr($v->transferfrom_address,0,8).'****'.mb_substr($v->transferfrom_address,-8,8) ."\n\n"
  928. ."<b>笔数套餐转账不扣TRX,智能监控地址补足能量</b>\n"
  929. ."发送 /buyenergy 继续购买能量!\n"
  930. ."➖➖➖➖➖➖➖➖";
  931. //内联按钮
  932. $keyboard = [
  933. 'inline_keyboard' => [
  934. [
  935. ['text' => '能量闪租', 'url' => 'https://t.me/'.$v->bot_username],
  936. ['text' => '笔数套餐', 'url' => 'https://t.me/'.$v->bot_username]
  937. ],
  938. [
  939. ['text' => '联系客服', 'url' => 'https://t.me/'.mb_substr($v->bot_admin_username,1)],
  940. ['text' => 'TRX闪兑', 'url' => 'https://t.me/'.$v->bot_username]
  941. ]
  942. ]
  943. ];
  944. $encodedKeyboard = json_encode($keyboard);
  945. $sendlist = explode(',',$v->tg_notice_obj_send);
  946. foreach ($sendlist as $x => $y) {
  947. $sendmessageurl = 'https://api.telegram.org/bot'.$v->bot_token.'/sendMessage?chat_id='.$y.'&text='.urlencode($replytext).'&parse_mode=HTML&reply_markup='.urlencode($encodedKeyboard);
  948. Get_Pay($sendmessageurl);
  949. }
  950. }
  951. }
  952. }else{
  953. // $this->log('shanduibonus','----------没有数据----------');
  954. }
  955. }catch (\Exception $e){
  956. // $this->log('shanduibonus','----------任务执行报错,请联系管理员。报错原因:----------'.$e->getMessage());
  957. }
  958. }
  959. /**
  960. * 记入日志
  961. * @param $log_title [日志路径]
  962. * @param $message [内容,不支持数组]
  963. * @param $remarks [备注]
  964. */
  965. protected function log($log_title,$message,$remarks='info'){
  966. Log::get($remarks,$log_title)->info($message);
  967. }
  968. }