IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> TRC20-ThinkPhP5.0-转账,余额查询,离线签名等功能 -> 正文阅读

[PHP知识库]TRC20-ThinkPhP5.0-转账,余额查询,离线签名等功能

TRC20-ThinkPhP5.0

源码地址:源码下载地址


  • 当前SDK目前支持波场的 TRX 和 TRC20 中常用生成地址,转账,余额查询,离线签名等功能。
  • 一套写法兼容 TRON 网络中 TRX 货币和 TRC 系列所有通证
  • 接口方法可可灵活增减

[danger] 当前项目演示的合约地址为 TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t 精度为 6,如下所示

/*基础配置*/
$this->config = [
    'contract_address' => 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',// USDT TRC20
    'decimals' => 6, /*精度*/
];

[warning] 可以加我QQ 1113249273,对于目前的应用当中的查询余额,转账,查账等几个功能可以做技术支持。之外的功能不在技术支持范围内,请悉知。
QQ 群:925283872 ,问题回答正确才能入群,PHP基本知识。

[info] 代码以及返回参数摘要

生成地址 generateAddress() 回参

{
    "privateKey": "0xe2ad74294c273467027f80*********6cc2e9a9cd4214ef3418b818d48e66",
    "address": "TLowZwvVHCQSKH8Pjwgo67TPe2dea7grWa",
    "hexAddress": "4176e8c1d6e77d1ce87a0b242366c26f550556b689"
}

交易转账 transfer( f r o m , from, from,to,$acount) 回参

[info] 交易转账回参不能判断是否交易成功,还需要根据回参的 txID 参数去调用另一个API来实现,继续往下看

{
   "code": 200,
   "data": {
      "signature": [],
      "txID": "eb150f82dde7eec67bfa84a433397769d6beccac781e01b62fd5dc76515153dc",
      "raw_data": {
         "contract": [
            {
               "parameter": {
                  "value": {
                     "data": "a9059cbb00032200000000000000004144967f55976c06c4fb55b2e310843c25105ba78d00000000000000000000000000000000000000000000000000000000000f4243",
                     "owner_address": "4144967f222206c4fb55b2e310843c25105ba78d",
                     "contract_address": "41a614f803b22280986a42c78ec9c7f77e6ded13c"
                  },
                  "type_url": "type.googleapis.com/protocol.TriggerSmartContract"
               },
               "type": "TriggerSmartContract"
            }
         ],
         "ref_block_bytes": "cb77",
         "ref_block_hash": "904b72d42bb7d1b8",
         "expiration": 1649065326000,
         "fee_limit": 100000000,
         "timestamp": 1649065268704
      },
      "contractRet": "PACKING"
   }
}

根据交易哈希查询信息 transactionReceipt($txID)

[danger] 回参的contractRet参数为SUCCESS为成功,别的均为不成功。虽然上面的交易api也有这个回参,但是并不会告诉你成功与否,你还得单独调用一次这个接口才能知道结果。

{
   "code": 1,
   "data": {
      "signature": [],
      "txID": "fad174a7b0fcbd10c2e1c9a***974505f7af6609b8e080956dc2111223e6d",
      "raw_data": {
         "contract": [
            {
               "parameter": {
                  "value": {
                     "data": "a9059cbb00000000000000000004144967f55976c06c4fb55b2e310843c25105ba78d0000000000000000000000000000000000000000000000000000000077359400",
                     "owner_address": "4144967f55976c06c4fb52e3143c25105ba78d",
                     "contract_address": "41a614f803b6fd780986c79c7f77e6ded13c"
                  },
                  "type_url": "type.googleapis.com/protocol.TriggerSmartContract"
               },
               "type": "TriggerSmartContract"
            }
         ],
         "ref_block_bytes": "dfef",
         "ref_block_hash": "a0e7bd2508835fe",
         "expiration": 16488814348000,
         "fee_limit": 100000000,
         "timestamp": 1648884290694
      },
      "contractRet": "SUCCESS"
   }
}

开发环境要求

  • php版本 >=7.3
  • php扩展务必装 gmp 扩展,否则转账不成功
  • ThinkPHP5基本运行要求,这个不需要额外多说

案例使用方法

[info] 在当前的项目中开发,可以看下面这个配置调整,如果需要将当前代码作为接口开放,可以看下一章节

application/index/controller/Trc20.php 里面的 $this->privateKey 私钥改成您自己的私钥

剩下的就是 application/index/controller/Trc20.php里面封装的几个常用方法稍微看下就明白了。实在不明白,就部署好代码,使用接口测试。

[info] API 源码对应目录地址 application/api/controller/Index.php ,接口文档如下所示


转账接口

请求URL
  • /api/index/transfer
请求方式
  • POST/GET
参数
参数名必选类型说明
toaddressstring接收方地址
amountfloat转账金额(最低为1,精度为6)
返回示例
{
   "code": 1,
   "data": {
      "signature": [],
      "txID": "eb150f82dde7eec67bfa84a433397769d6beccac781e01b62fd5dc76515153dc",
      "raw_data": {
         "contract": [
            {
               "parameter": {
                  "value": {
                     "data": "a9059cbb00032200000000000000004144967f55976c06c4fb55b2e310843c25105ba78d00000000000000000000000000000000000000000000000000000000000f4243",
                     "owner_address": "4144967f222206c4fb55b2e310843c25105ba78d",
                     "contract_address": "41a614f803b22280986a42c78ec9c7f77e6ded13c"
                  },
                  "type_url": "type.googleapis.com/protocol.TriggerSmartContract"
               },
               "type": "TriggerSmartContract"
            }
         ],
         "ref_block_bytes": "cb77",
         "ref_block_hash": "904b72d42bb7d1b8",
         "expiration": 1649065326000,
         "fee_limit": 100000000,
         "timestamp": 1649065268704
      },
      "contractRet": "PACKING"
   }
}
返回参数说明
参数名类型说明
txIDstring交易哈希值(用于查询转账交易)
备注
  • txID 用来查询订单信息从而确定是否交易成功
  • 可以查询余额后再转账,否则余额不够转死都转不成功。查询余额的方法返回的是一个负点数金额。
/**
 * 获取余额  完整代码可以下载项目源码查看
 * $address 地址对象,通过私钥可以用获取
 * 这里查询的是转账用户的余额
 */
private function getBalance($address)
{
    ...
    /*私钥地址*/
    $balance = $TRC20->balance($address);
    return $balance;
}
/**
 * 根据私钥获取地址 完整代码可以下载项目源码查看
 * $privateKey 私钥
 */
private function getAddress()
{
    ...
    /*私钥地址*/
    $privateKeyToAddress = $TRC20->privateKeyToAddress($this->privateKey);
    return $privateKeyToAddress;
}

查单接口

请求URL
  • /api/index/transData
请求方式
  • POST/GET
参数
参数名必选类型说明
txIDstring交易哈希值
返回示例
{
   "code": 1,
   "data": {
      "signature": [],
      "txID": "fad174a7b0fcbd10c2e1c9a***974505f7af6609b8e080956dc2111223e6d",
      "raw_data": {
         "contract": [
            {
               "parameter": {
                  "value": {
                     "data": "a9059cbb00000000000000000004144967f55976c06c4fb55b2e310843c25105ba78d0000000000000000000000000000000000000000000000000000000077359400",
                     "owner_address": "4144967f55976c06c4fb52e3143c25105ba78d",
                     "contract_address": "41a614f803b6fd780986c79c7f77e6ded13c"
                  },
                  "type_url": "type.googleapis.com/protocol.TriggerSmartContract"
               },
               "type": "TriggerSmartContract"
            }
         ],
         "ref_block_bytes": "dfef",
         "ref_block_hash": "a0e7bd2508835fe",
         "expiration": 16488814348000,
         "fee_limit": 100000000,
         "timestamp": 1648884290694
      },
      "contractRet": "SUCCESS"
   }
}
返回参数说明
参数名类型说明
contractRetstring交易结果:SUCCESS 代表成功,否则为失败)
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-04-13 22:06:44  更:2022-04-13 22:20:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 7:49:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码