usdt充值btc网络(非节点钱包地址)
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网络(非节点钱包地址)相关推荐
- usdt充值 btc网络(区块充值)
下边介绍基于 比特币网络的usdt做充值 基于比特币网络发行的USDT (基于Omni协议发行) 1.首先现在节点服务器上生成每个用户的钱包地址 /*** 方法:生成USDT地址* @param $u ...
- 钱包一般链接那个节点_Zcash屏蔽地址漏洞或揭示全节点IP地址(附解决方案)...
免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 投资区块链,猛戳:火星财经App下载 文章来源:巴比特 匿名币的技术之争是非常有 ...
- AMLSafe与CasperLabs开展合作,为Casper网络带来安全的非托管钱包
CasperLabs很高兴宣布与AMLSafe建立合作伙伴关系.这是第一款集成了反洗钱 (AML) 功能和人工智能支持KYC合规性的非托管加密钱包,从而让企业在Casper网络上所进行的交易能自动满足 ...
- api php usdt 以太坊_以太坊智能地址PHP开发包【零GAS归集ERC20】
SmartWallet开发包适用于平台方高效完成对用户地址上的Ether/ERC20代币的归集工作,无需向用户地址注入Ether即可完成Ether/ERC20代币的归集.官方下载地址:以太坊智能钱包P ...
- dz email地址无效_Zcash屏蔽地址漏洞或揭示全节点IP地址(附解决方案)
匿名币的技术之争是非常有意思的,比如KMD核心开发者Duke Leto刚发表了一篇博客文章,披露了关于Zcash及其多数分叉币存在的漏洞,而这个漏洞可能会泄露使用屏蔽地址(zaddr)的全节点 IP地 ...
- BTC隔离见证(3开头)地址离线签名
BTC隔离见证(3开头)地址离线签名(亲测可行) 关于BTC隔离见证(3开头)地址的离线签名,貌似相关介绍比较少,主要以理论介绍居多. 所以在这里,我就不再赘述什么是隔离见证地址以及如何完成相关签名的 ...
- “比特币耶稣”罗杰·沃推特赠币,留下BCH钱包地址就有份
比特币的早期投资者.被称为"比特币耶稣(Bitcoin Jesus)"的Bitcoin.com前首席执行官罗杰·沃(Roger Ver)在Facebook上宣布,他将捐赠一些比特币 ...
- 【Linux网络编程】IP地址介绍
什么是 IP 地址 IP 地址(Internet Protocol Address)也称为网间地址.网际地址.IP地址是指互联网协议地址(英语:Internet Protocol Address,又译 ...
- 公钥 私钥_区块链中私钥、公钥和钱包地址三者关系
在昨天Pi首页更新过内容中,Wes spencer提到了钱包等一系列的问题,那么小编就带大家再来回顾一下数字货币钱包的起源!一.加密数字货币钱包的概念及原理加密货币钱包是指,可以用来存储,发送和接收多 ...
最新文章
- python 开始学习
- [Sdoi2017]硬币游戏 [高斯消元 KMP]
- 无废话-SQL Server 2005新功能(1) - TSQL
- UNITY_MATRIX_IT_MV[Matrix]
- C#学习笔记(一)变量 常量 基本数据类型 其它
- TCP/IP数据包结构分析
- Win10用户远超4亿 Win10 RS2明年年初发布
- u盘引导linux加载raid卡驱动,使用U盘加载SCSI/RAID卡驱动
- 阿里云原生张羽辰:服务发现技术选型那点事儿
- java 抛出异常效率_Java异常处理机制
- android-- apktool反编译工具使用详解
- mac 上搭建SVN
- ftp连接显示被服务器被拒绝,ftp连接服务器被拒绝原因
- 4.4 输入法图片 android,支持安卓4.4!搜狗输入法5.1新版发布
- 游戏音效制作的过程中,需要研发公司怎么配合?
- 微信开发:申请测试公众号
- Ubuntu 18.04 安装 onedrive
- 用 Mindjet MindManager 管理自己的思维
- larval 操作mysql数据库_laravel操作数据库
- 北大四大“疯人院”到底有多牛?天才、怪才在这儿遍地都是!