USDT自动上分是通过官方 https://api.trongrid.io 查询接口实现的
在给一个客户做大富彩票自动充值的时候保存的代码,分享给有需要的朋友,不用再去找网上那些带后门的程序了,当然前提是 你得会PHP
只是一个前端充值自动查询并处理的代码,仅供参考,需要前端传参(订单号)后才能进行处理,同样数据库字段也得处理
代码如下:
function timibbs_usdtautopay($apiparam=array()){ $apiparam = self::_cheacktoken($apiparam); if(!$apiparam['sign'])return $apiparam; $trano = $apiparam['trano']; $payorder = M('recharge')->where(['trano'=>$trano,'state'=>0])->find(); //查询平台收款地址 $usdtpayaddress = M('payset')->field("ftitle")->where("isonline=-1 AND state=1 AND paytype='USDT'")->find(); $to_address = $usdtpayaddress['ftitle']; //获取地址交易记录 $url = "https://api.trongrid.io/v1/accounts/$to_address/transactions/trc20?limit=10&contract_address=TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"; $getData = file_get_contents($url); $jsonData = json_decode($getData,true); //循环查询链上记录 foreach ($jsonData["data"] as $k=>$v){ //这里注释掉了,单一订单查询没必要循环所有订单 // foreach ($payorder as $a=>$b){ $from_address = $payorder["from_address"]; $usdtnum = $payorder["usdtnum"]; //转账时间必须大于创建订单时间 if($v['block_timestamp']/1000 > $payorder['oddtime']){ //转账地址、数量完全匹配 if($v['to'] == $to_address && $v['from'] == $from_address && $v['value']/1000000 == $usdtnum){ $userinfo = M('member')->where(['id'=>$payorder['uid']])->find(); $add['oldaccountmoney'] = $userinfo["balance"]; $add['newaccountmoney'] = $userinfo["balance"] + $payorder['amount']; $add['state'] = 1; $add['transaction_id'] = $v["transaction_id"];//哈希值 M('recharge')->where(['trano'=>$trano])->setField($add); //如果上链有数据了就增加余额 M('member')->where(['id'=>$payorder['uid']])->setInc('balance',$payorder['amount']); //返回 $return['sign'] = true; $return['state'] = 1; $return['message'] = '充值成功!'; return $return;exit; } }else{ $return['sign'] = false; $return['message'] = '未发现订单!'; return $return; } // } } }