1.此充值具有一定的交易风险(请一定做好判断)

步骤:用户绑定其他交易所的地址,往平台充值(只能使用用户绑定的钱包地址充值,否则无法确认充值成功),用户先填写充值金额->生成充值订单->通过平台设置的收币钱包地址充值->填写充值产生的hash值->根据hash值查询转账是否确认成功

下边是数据表设计:

CREATE TABLE `yy_recharge` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`user_id` int(11) DEFAULT NULL COMMENT '用户id',`order_num` varchar(255) DEFAULT NULL COMMENT '充值单号',`usdt_order_num` varchar(255) DEFAULT NULL COMMENT 'USDT交易单号',`money` decimal(18,8) NOT NULL DEFAULT '0.00000000' COMMENT '充值金额',`sender` varchar(255) DEFAULT NULL COMMENT '充值地址',`recipient` varchar(255) DEFAULT NULL COMMENT '接受地址',`status` tinyint(4) DEFAULT '1' COMMENT '状态:1=确认中,2=确认成功,3=确认失败',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`qr_time` datetime DEFAULT NULL COMMENT '确认时间',`block_time` datetime DEFAULT NULL COMMENT '区块交易时间',`block_t_time` varchar(255) DEFAULT '' COMMENT '区块交易时间戳',`remarks` varchar(255) DEFAULT NULL COMMENT '描述',PRIMARY KEY (`id`),UNIQUE KEY `ordernum` (`order_num`)
) ENGINE=InnoDB AUTO_INCREMENT=145 DEFAULT CHARSET=utf8;

omni_gettransaction

omni_gettransaction调用获取指定Omni交易的详细信息。

txid:交易哈希,字符串,必需

    /*** 获取交易详情* @return mixed*/function gettransaction($txid){return $this->usdt->omni_gettransaction($txid);}

  ["txid"] => string(64) "c41525d0de0b5d5668f44995570184e6a4c52931a0ebb7e10205676f6bb9a40f"//16进制编码的交易哈希["fee"] => string(10) "0.00015975"//手续费["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) "0.10000000"//转账金额["valid"] => bool(true)//交易是否有效["blockhash"] => string(64) "0000000000000000000158c6c5f5f58f912a03c9b4d6af383e9f727203ab4e1e"["blocktime"] => int(1560766900)//区块时间戳["positioninblock"] => int(931)["block"] => int(581098)["confirmations"] => int(36)//区块确认书

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

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

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

<?php
/*** Created by PhpStorm.* User: 江雪* Date: 2019/6/6* Time: 17:58*/namespace app\common\controller;#充值扫描
use app\admin\controller\usdts\Coins;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\Db;
use think\Exception;class Recharge extends Command
{protected function configure(){$this->setName('recharge')->setDescription('usdt充值');}protected function execute(Input $input, Output $output){//每隔1000ms触发一次$id = \swoole_timer_tick(5000, function ($timer_id) {try{
//                file_put_contents('recharge.log',date('Y-m-d H:i:s').'进入定时'.PHP_EOL,FILE_APPEND);$recharge=Db::name('recharge')->where(['status'=>1,'usdt_order_num'=>['<>','']])->select();foreach ($recharge as $v){file_put_contents('recharge.log',date('Y-m-d H:i:s').'进入充值--'.$v['user_id'].'--ID--'.$v['id'].PHP_EOL,FILE_APPEND);
//                    $post['query']=$v['usdt_order_num'];$usdt=(new Coins())->getCoins();$rc=$usdt->omni_gettransaction($v['usdt_order_num']);if (!is_array($rc)){$message='交易hash错误';goto STOP;continue;}file_put_contents('recharge.log',date('Y-m-d H:i:s').json_encode($rc).PHP_EOL,FILE_APPEND);$message='';if (!empty($rc)){if ($rc['amount']!=$v['money']){$message='充值金额错误';goto STOP;continue;}#判断充值时间是否大于创建时间$create_time=strtotime($v['create_time']);if ($rc['blocktime']<$create_time){$message='充值时间异常';goto STOP;continue;}if (!$rc['valid']){$message='区块确认异常';goto STOP;continue;}
//                        if ($rc['sendingaddress']!=$v['sender']){
//                            $message='充值地址异常';
//                            goto STOP;
//                            continue;
//                        }if ($rc['referenceaddress']!=$v['recipient']){$message='接受地址异常';goto STOP;continue;}#判断交易是否有效
//                    if (!$rc->valid){
//                        continue;
//                    }if ($rc['valid']){file_put_contents('recharge.log',date('Y-m-d H:i:s').'充值成功--'.$v['user_id'].'--ID--'.$v['id'].PHP_EOL,FILE_APPEND);#交易成功Db::name('recharge')->where(['id'=>$v['id']])->update(['status'=>2,'qr_time'=>date('YmdHis'),'block_t_time'=>$rc['blocktime'],'block_time'=>date('Y-m-d H:i:s',$rc['blocktime'])]);Db::name('users_asset')->where(['user_id'=>$v['user_id']])->setInc('usdt',$v['money']);$log=['user_id'=>$v['user_id'],'money'=>$v['money'],'type'=>1,'message'=>'充值','status'=>2,'class'=>2,'create_time'=>date('YmdHis')];Db::name('users_account_log')->insert($log);}else{STOP:file_put_contents('recharge.log',date('Y-m-d H:i:s').'--'.$message.'--充值失败--'.$v['user_id'].'--ID--'.$v['id'].PHP_EOL,FILE_APPEND);Db::name('recharge')->where(['id'=>$v['id']])->update(['status'=>3,'remarks'=>$message]);}}}
//                file_put_contents('recharge.log',date('Y-m-d H:i:s').'退出定时'.PHP_EOL,FILE_APPEND);}catch (Exception $exception){file_put_contents('recharge.log',date('Y-m-d H:i:s').$exception->getMessage().PHP_EOL,FILE_APPEND);}});}
}

usdt充值btc网络(非节点钱包地址)相关推荐

  1. usdt充值 btc网络(区块充值)

    下边介绍基于 比特币网络的usdt做充值 基于比特币网络发行的USDT (基于Omni协议发行) 1.首先现在节点服务器上生成每个用户的钱包地址 /*** 方法:生成USDT地址* @param $u ...

  2. 钱包一般链接那个节点_Zcash屏蔽地址漏洞或揭示全节点IP地址(附解决方案)...

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 投资区块链,猛戳:火星财经App下载 文章来源:巴比特 匿名币的技术之争是非常有 ...

  3. AMLSafe与CasperLabs开展合作,为Casper网络带来安全的非托管钱包

    CasperLabs很高兴宣布与AMLSafe建立合作伙伴关系.这是第一款集成了反洗钱 (AML) 功能和人工智能支持KYC合规性的非托管加密钱包,从而让企业在Casper网络上所进行的交易能自动满足 ...

  4. api php usdt 以太坊_以太坊智能地址PHP开发包【零GAS归集ERC20】

    SmartWallet开发包适用于平台方高效完成对用户地址上的Ether/ERC20代币的归集工作,无需向用户地址注入Ether即可完成Ether/ERC20代币的归集.官方下载地址:以太坊智能钱包P ...

  5. dz email地址无效_Zcash屏蔽地址漏洞或揭示全节点IP地址(附解决方案)

    匿名币的技术之争是非常有意思的,比如KMD核心开发者Duke Leto刚发表了一篇博客文章,披露了关于Zcash及其多数分叉币存在的漏洞,而这个漏洞可能会泄露使用屏蔽地址(zaddr)的全节点 IP地 ...

  6. BTC隔离见证(3开头)地址离线签名

    BTC隔离见证(3开头)地址离线签名(亲测可行) 关于BTC隔离见证(3开头)地址的离线签名,貌似相关介绍比较少,主要以理论介绍居多. 所以在这里,我就不再赘述什么是隔离见证地址以及如何完成相关签名的 ...

  7. “比特币耶稣”罗杰·沃推特赠币,留下BCH钱包地址就有份

    比特币的早期投资者.被称为"比特币耶稣(Bitcoin Jesus)"的Bitcoin.com前首席执行官罗杰·沃(Roger Ver)在Facebook上宣布,他将捐赠一些比特币 ...

  8. 【Linux网络编程】IP地址介绍

    什么是 IP 地址 IP 地址(Internet Protocol Address)也称为网间地址.网际地址.IP地址是指互联网协议地址(英语:Internet Protocol Address,又译 ...

  9. 公钥 私钥_区块链中私钥、公钥和钱包地址三者关系

    在昨天Pi首页更新过内容中,Wes spencer提到了钱包等一系列的问题,那么小编就带大家再来回顾一下数字货币钱包的起源!一.加密数字货币钱包的概念及原理加密货币钱包是指,可以用来存储,发送和接收多 ...

最新文章

  1. python 开始学习
  2. [Sdoi2017]硬币游戏 [高斯消元 KMP]
  3. 无废话-SQL Server 2005新功能(1) - TSQL
  4. UNITY_MATRIX_IT_MV[Matrix]
  5. C#学习笔记(一)变量 常量 基本数据类型 其它
  6. TCP/IP数据包结构分析
  7. Win10用户远超4亿 Win10 RS2明年年初发布
  8. u盘引导linux加载raid卡驱动,使用U盘加载SCSI/RAID卡驱动
  9. 阿里云原生张羽辰:服务发现技术选型那点事儿
  10. java 抛出异常效率_Java异常处理机制
  11. android-- apktool反编译工具使用详解
  12. mac 上搭建SVN
  13. ftp连接显示被服务器被拒绝,ftp连接服务器被拒绝原因
  14. 4.4 输入法图片 android,支持安卓4.4!搜狗输入法5.1新版发布
  15. 游戏音效制作的过程中,需要研发公司怎么配合?
  16. 微信开发:申请测试公众号
  17. Ubuntu 18.04 安装 onedrive
  18. 用 Mindjet MindManager 管理自己的思维
  19. larval 操作mysql数据库_laravel操作数据库
  20. 北大四大“疯人院”到底有多牛?天才、怪才在这儿遍地都是!

热门文章

  1. Kyuubi 实践 | Apache Kyuubi on Spark 在CDH上的深度实践
  2. 辞狗迎猪,共赢美好未来!
  3. SAP接口设计-概览
  4. 如何用单片机实现基于电磁感应的无线充电系统
  5. html正方形边框颜色,css边框颜色样式设置 css border颜色
  6. 自学uni-app (7)项目搭建的详细步骤、注意事项和遇到的问题
  7. 不同方式读入图片与HWC与RGB
  8. 银河麒麟操作系统获知系统安装时间
  9. 花火,汪峰,鲍家街43号
  10. 视频播放器测试用例分析(PC/web端)