当前位置: 旋风说(旋风PHPer分享网)> 技术文章> 正文
我这里只讲一下windows下的安装,linux和windows基本一样,所需的软件也都一样,大家看完windows教程后,linux版本也就触类旁通了.当然,linux中我也会简单说几句.言归正传,开始:
第一步:你需要安装composer,win下安装非常方便,直接去composer官网下载最新版,安装即可,但是,要注意的几个地方分别是:
1.php版本要在5.3.2以上
2.安装过程中需要选择php.exe的路径,也就是安装中的:"Choose the command-line PHP you want to be"这个选项
然后下一步下一步安装即可,安装完成之后,看一下环境变量中有没有composer和php的路径,如果没有,请加上php.exe的路径和composer安装的路径到环境变量.
什么????你不知道环境变量?!!!此教程对你来说已经结束,出门左拐,慢走不送.
然后,再把composer切换成中国区镜像就行了:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
这第一步,在linux中的话,那就简单了,下面三行代码逐行复制执行即可(如果下载失败,请重试,国外地址不稳定):
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer composer config -g repo.packagist composer https://packagist.phpcomposer.com
上面三行,分别是:"下载composer" "移动composer到可执行环境下" "使用composer国内镜像(国外很慢呢)"
第二步:查看composer是否安装成功,linux和win同步,如下:
composer -v
如果出现版本号,说明安装成功.
第三步:开启你电脑的gmp拓展,linux的不多说了,网上有的是教程,我着重说一下win的.
首先找到你的php版本所在目录的ext文件夹,里面有所有的php的拓展,看看有没有php_gmp.dll这个文件,如果有,找到php.ini,看看里面的gmp拓展有没有打开,如果没有打开,那就打开就行了.如果没有,也好说,去https://windows.php.net/downloads/releases/archives/ 地址里面,找到你那个版本的php和你电脑对应的位数(一般是64位或者32位,我的电脑,属性),如果是64位就下64位的php包,如果是32位就下x86的包,下载后,解压zip得到一个完整的php版本,里面有gpm拓展,把里面的php_gmp.dll放到你的php,然后在php.ini中添加这个拓展就行了.
补充:如果你是linux还安装了宝塔,恭喜你,php图形页面拓展位置,找到gmp拓展,点击一键安装,重启php-fpm就行了.
第三步:找到你项目根目录,安装tron就行了.安装方式有两种,一种是直接修改根目录的composer.json,在composer里面加上两行:
"iexbase/tron-api": "^3.1", "guzzlehttp/guzzle": "^7.3"
然后在dos中切换到根目录路径,运行composer update
另一种方式也是切换到根目录路径,先
composer require iexbase/tron-api
再:
composer require guzzlehttp/guzzle
然后运行composer update,安装tron插件
至此,tron就安装完了.(当然,现实中经常会出现composer update 失败的情况,请自寻百度google来解决出现的错误码,因为错误类型太多,不一一列举,但是99%的情况是composer.json文件里面参数有问题)
第二种方式为推荐安装方式,因为第一种安装的是固定版本,第二种安装方式是最新版本.
安装完之后那就是调用了.接下来说说怎么调用tron接口来生成用户\为自己冻结代币\为他人冻结代币
tron接口使用篇:
我这边用的是tp,所以我就用tp为使用方法说明tron的接口调用.
首先在项目的application里面,找到index里面的controller文件夹,复制index.php,改名为Test.php,并写入内容:
<?php namespace app\index\controller; use \IEXBase\TronAPI\Tron; class Test { public function index() { echo 'we are close this function!';exit; $tron = new Tron(); $generateAddress = $tron->generateAddress(); // or createAddress() $isValid = $tron->isAddress($generateAddress->getAddress()); echo 'Address hex: '. $generateAddress->getAddress(); echo 'Address base58: '. $generateAddress->getAddress(true); echo 'Private key: '. $generateAddress->getPrivateKey(); echo 'Public key: '. $generateAddress->getPublicKey(); echo 'Is Validate: '. $isValid; $d = $generateAddress->getRawData(); print_r($d);exit; } } ?>
这样就可以调用创建用户方法了.
如果是为自己冻结,也是在该文件中,调用方法如下:
/*为自己冻结*/ function Frees(){ $tron = new Tron(); $tron->setPrivateKey('4CDEC8801AC71310D1BD84E520343C1D731A940E95C4188A2A0FEA9E97F12345'); //第一个参数 amount 是 $generate = $tron->freezeBalance(1, 3, 'BANDWIDTH', 'TNjtED4x69Ct2wRVmJLhSfJRyJZiCFbSN2'); echo '<pre>'; print_R($generate);exit; }
这样就给自己冻结了.这里要注意,里面写的privatekey和账号,都是我随便添加的,不是真实的.你要是用的时候一定要换成你自己的账号和privatekey
同样,为他人冻结也是一个样,不过需要自己改一下接口,我就改了一个,把上面的freezeBalance这个方法的文件中,找到freezebalance这个方法,复制一份,改成允许传入其他账号的方法,我改好了,路径为:
找到 tp目录里面的vendor文件夹,找到iexbase/tron-api/src/Tron.php,找到freezebalance里面,复制freezebalance为freezebalanceother,内容改为:
/* * 2021-04-19 为他人冻结*/ public function freezeBalanceother(float $amount = 0, int $duration = 3, string $resource = 'BANDWIDTH', string $owner_address = null,string $reciveuser=null) { if($owner_address == null) { $owner_address = $this->address['hex']; } if($reciveuser == null) { $reciveuser = $this->address['hex']; } $freeze = $this->transactionBuilder->freezeBalanceother($amount, $duration, $resource, $owner_address,$reciveuser); $signedTransaction = $this->signTransaction($freeze); $response = $this->sendRawTransaction($signedTransaction); return array_merge($response, $signedTransaction); }
,然后上面这个方法还调用了freezeBalance,所以还需要进入:
iexbase/tron-api/src/TransCtionBuilder里面,复制freezeBalance为freezeBalanceother,然后改内容为:
/* * 2021-04-19 为他人冻结*/ public function freezeBalanceother(float $amount = 0, int $duration = 3, string $resource = 'BANDWIDTH', string $owner_address = null,string $reciveuser=null) { if($owner_address == null) { $owner_address = $this->address['hex']; } if($reciveuser == null) { $reciveuser = $this->address['hex']; } $freeze = $this->transactionBuilder->freezeBalanceother($amount, $duration, $resource, $owner_address,$reciveuser); $signedTransaction = $this->signTransaction($freeze); $response = $this->sendRawTransaction($signedTransaction); return array_merge($response, $signedTransaction); }
然后test.php中正常调用即可.
为了防止你不会写,我把调用接口给他人转账的方法贴出来:
/*为他人冻结*/ function freesother(){ $tron = new Tron(); $tron->setPrivateKey('4CDEC8801AC71310D1BD84E520343C1D731A940E95C4188A2A0FEA9E97F12345'); $generate = $tron->freezeBalanceother(1, 3, 'ENERGY', 'TNjtED4x69Ct2wRVmJLhSfJRyJZiCFbWK5','TBRRMXTdskcfKgiTrkQXzMH4H844ErCHUi'); echo '<pre>'; print_R($generate);exit; }
当您发现内容错误或代码bug,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。
上一篇: centos6源停止更新了更换新源
下一篇: FIL创建用户等相关接口
相关文章
评论:
文明上网理性发言,请遵守 新闻评论服务协议