下边介绍基于 比特币网络的usdt做充值

基于比特币网络发行的USDT (基于Omni协议发行)

1.首先现在节点服务器上生成每个用户的钱包地址

  /*** 方法:生成USDT地址* @param $user_id* @return bool*/public function usdtcoin($user_id){$lists=$this->usdt->getaddressesbyaccount("$user_id");if (count($lists)>0){return $lists[0];}$address=$this->usdt->getnewaddress("$user_id");if (strlen($address) != 34) {return false;}return $address;}

$user_id是账号名,需要唯一。

返回的是账户地址。

getnewaddress 是比特币的命令

  /*** 调用返回钱包交易清单,可以使用地址或区块进行过滤* @param $txid* @return mixed*/public function listtransactions($txid){return $this->usdt->omni_listtransactions($txid);}
  • txid:地址过滤器,字符串,可选
  • count:返回结果数量,数值,可选,默认值:10
  • skip:跳过结果数量,数值,可选,默认值:0
  • startblock:检索的起始区块,数值,可选,默认值:0
  • endblock :检索的最后区块,数值,可选,默认值:999999999

    ["txid"] => string(64) "961400b6923d5c2d57ecd27f59e127b01ebe0a7fe3635eca454b0d268a6012a5"//16进制编码的交易哈希["fee"] => string(10) "0.00015762"//交易手续费["sendingaddress"] => string(34) "3KeC2JqGHqW6kuUBJKjAHmmfUThj2RiR1F"//发送方比特币地址["referenceaddress"] => string(34) "18An5WWLHR59NpHdKzPoDjKLKULsMpP1ci"//作为参照的比特币地址["ismine"] => bool(true)//交易是否与钱包内某个地址相关["version"] => int(0)//交易版本["type_int"] => int(0)//交易类型代码["type"] => string(11) "Simple Send"//交易类型字符串["propertyid"] => int(31)["divisible"] => bool(true)["amount"] => string(10) "1.00000000"//交易金额["valid"] => bool(true)//交易是否有效["blockhash"] => string(64) "00000000000000000012a07886b2a27d75cec808c8225f3d38a0b76e159f652f"["blocktime"] => int(1560768796)//交易的区块时间戳["positioninblock"] => int(1872)//交易在区块内的序号["block"] => int(581100)["confirmations"] => int(33)//交易的确认数

最后就是做个定时器,定时扫描钱包地址,出现新的交易然后存入数据库。

如果不会写定时器,请参考我前段时间写的定时器:https://blog.csdn.net/jmkweb/article/details/89684225

下边附上定时扫描钱包,确认充值成功

<?php
/*** Created by PhpStorm.* User: 江雪* Date: 2019/6/17* Time: 22:18*/namespace app\common\controller;use app\admin\controller\usdts\Coins;
use app\v2\model\AssetMode;
use app\v2\model\UsersAccountLog;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\Db;
use think\Exception;class Usdt extends Command
{protected function configure(){$this->setName('usdt')->setDescription('充值');}protected function execute(Input $input, Output $output){//每隔1000ms触发一次$id = \swoole_timer_tick(5000, function ($timer_id) {try{$log=[];$user_asset=[];$account_log=[];file_put_contents('usdt.log',date('Y-m-d H:i:s').'进入充值'.PHP_EOL,FILE_APPEND);$user=Db::name('users')->where(['status'=>1,'token_address'=>['<>','']])->select();foreach ($user as $k=>$v){sleep(2);$user_address=(new Coins())->listtransactions($v['token_address']);file_put_contents('usdt.log',json_encode($user_address,true).PHP_EOL,FILE_APPEND);if (!empty($user_address)){$user_txids=Db::name('recharge')->where(['user_id'=>$v['id']])->column('usdt_order_num');file_put_contents('usdt.log','有交易信息'.PHP_EOL,FILE_APPEND);$txids=$user_address[0]['txid'];$last_txid=$txids;
//                        $last_txid=end($txids);if (!in_array($last_txid,$user_txids)){$transaction=(new Coins())->gettransaction($last_txid);file_put_contents('usdt.log','交易记录存在'.json_encode($transaction).PHP_EOL,FILE_APPEND);if (is_array($transaction)){if ($transaction['referenceaddress']==$v['token_address']){if ($transaction['valid']){file_put_contents('usdt.log','交易记录存在11'.PHP_EOL,FILE_APPEND);$log[]=['user_id'=>$v['id'],'order_num'=>Checking::ordeSnByUnique('order_num',Db::name('recharge')),'usdt_order_num'=>$last_txid,'money'=>$transaction['amount'],'sender'=>$transaction['sendingaddress'],'recipient'=>$transaction['referenceaddress'],'status'=>2,'create_time'=>date('YmdHis'),'qr_time'=>date('YmdHis'),'block_time'=>date('Y-m-d H:i:s',$transaction['blocktime']),'block_t_time'=>$transaction['blocktime']];$account_log[]=['user_id'=>$v['id'],'money'=>$transaction['amount'],'type'=>1,'message'=>'充值','status'=>2,'class'=>2,'create_time'=>date('YmdHis')];$user_asset[]=['user_id'=>$v['id'],'usdt'=>['inc',$transaction['amount']]];}}file_put_contents('usdt.log',date('Y-m-d H:i:s').'交易无效'.PHP_EOL,FILE_APPEND);}}}}if (!empty($log)){Db::name('recharge')->insertAll($log);}if (!empty($user_asset)){$asset= new AssetMode();$asset->isUpdate(true)->saveAll($user_asset);}if (!empty($account_log)){$asset= new UsersAccountLog();$asset->isUpdate(true)->saveAll($account_log);}}catch (Exception $exception){file_put_contents('usdt.log',date('Y-m-d H:i:s').$exception->getMessage().PHP_EOL,FILE_APPEND);}});}
}

usdt充值 btc网络(区块充值)相关推荐

  1. usdt充值btc网络(非节点钱包地址)

    1.此充值具有一定的交易风险(请一定做好判断) 步骤:用户绑定其他交易所的地址,往平台充值(只能使用用户绑定的钱包地址充值,否则无法确认充值成功),用户先填写充值金额->生成充值订单->通 ...

  2. 淘宝充值中心 老是提示 充值失败 网络异常 解决方法

    淘宝充值中心 老是提示 充值失败 网络异常 解决方法 原因: 供货商突然修改了进货价..而售价低于进价.导致失败

  3. 一图看懂BCH和BTC的区块费用差距到底有多大?

    比特币现金和比特币是经常被拿来比较的两种加密货币,比较的范围莫过于两者的价格.算力.交易确认的速度.交易的手续费等. 众所周知,比特币现金相比于比特币的一个非常重要的优势就是手续费非常低,但是到底两者 ...

  4. TokenInsight:BTC网络活跃度保持历史高位,人气居高不下

    陀螺财经消息,据tokeninsight.com数据显示,反映区块链行业整体表现的TI指数北京时间01月13日8时报2342.41点,较昨日同期下跌102.07点,跌幅为4.18%.此外,在Token ...

  5. 微信多开软件苹果版_快手充值快币微信充值苹果版;

    点上方关注充值快手币 ☀臻悦服务平台专注于:快手充值,快手科技充值,快手充值快币,快币充值窗口,快手充值中心,快手币充值中心,快手充值平台,您身边的快手充值助理7*24h自动充值!支持ios和安卓手机 ...

  6. 以太坊网络区块浏览器blocksout技术简要分析

    以太坊网络浏览器 以太坊网络区块浏览器目前主要是etherscan.io提供.官方正规的区块浏览器没有etherscan.io强大,不具有合约内联交易,Token交易分析功能,而etherscan.i ...

  7. 鸿蒙手机王者荣耀怎么充值,苹果手机王者荣耀怎么充值?苹果系统充值王者荣耀教程...

    在苹果系统中其实是可以充值王者荣耀的,具体该怎么充值呢?一起来看吧. 苹果系统充值王者荣耀教程 首先,请大家登录苹果系统中安装的王者荣耀游戏,这里我以iPad为例,打开IOS系统中安装的王者荣耀游戏主 ...

  8. 区块链学习笔记五 BTC网络

  9. 闪电网络——区块链领域基于 Golang 的核心技术之一

    在 2019年第五届 Gopher China 大会上,讲师方圆进行了主题为<闪电网络--BTC小额支付解决方案>的演讲,以下为演讲实录. 00 前言 今天我分享的主要内容包括以下两部分: ...

最新文章

  1. Direct2D (23) : 复合几何对象之 ID2D1GeometryGroup
  2. 【个人总结】知识晶体的前中后台
  3. android+studio+选择+苹方字体,启动欢迎页面时,Android Studio设置全屏Activity
  4. RabbitMQ使用简述
  5. 使用ajax完成python flask前端与后台数据的交互
  6. 【转】Azure 命令行工具大混战,都是什么,该选哪个?
  7. eclipse提示方法已过时_提高效率,eclipse上你可能不知道的技巧
  8. php进程数是指什么,25.查看php 某个服务的进程数
  9. anaconda下python中matplotlib画图无法显示中文
  10. 【值得学习】售前工程师的成长(四)---一个老员工的经验之谈
  11. 插入排序(Insert Sort)
  12. 开源公司黄页之阿里巴巴开源软件推荐(一)
  13. SAS对决Ultra320(下):MAX3147RC小胜Ultrastar 15K147
  14. 对学术不怎么热爱,只想当大学老师而去读博可以么?
  15. 《Delta-Sigma数据转换器从入门到精通》笔记之漫谈均值
  16. 交换机有哪几种端口类型
  17. 腾讯短链接在线生成工具
  18. A BERT Baseline for the Natural Questions
  19. AndLua加密解密
  20. 华为中央软件院编译器与编程语言实验室人才招募

热门文章

  1. 基于ESP32-CAM的图传探勘小车项目(代码开源)
  2. 还在用ps处理图片?分享几款好用的图片编辑工具
  3. Linux下vmware虚拟机中永久激活Windows7
  4. 柯洁宣布:明年4月,将再次与围棋AI交锋
  5. 大数据规划所需的五个步骤和三种能力
  6. excel文件操作、多线程
  7. 物联网毕设 -- 智能热水器(GPRS+APP+OneNET)
  8. ci/cd工具_CI / CD工具的简要历史
  9. 符号表之二:组织和运营策略
  10. 用java实现微信支付,退款,部分退款服务端