TokenPay搭建实现TRX、USDT、ETH支付对接独角发卡、易支付
上次教大家搭建EPUSDT支付,希望你还用得顺手。在这个基础上还要扩展数字货币支付,或者需要不同链上的支付那就来试试TokenPay。TonkenPay支持以动态收款地址或静态收款地址收取波场的TRX、USDT-TRC20以及ETH系原生币以及ETH系ERC20代币的支付解决方案! 理论上支持所有ETH系的区块链,常见的ETH系的区块链有:以太坊(ETH)、币安智能链(BSC)、Polygon等等。
现已支持如下币种:
波场(TRON):
TRX
、USDT
以太坊(ETH):
ETH
、USDT
、USDC
以及其他任意ERC20代币
本次的演示还是搭建在宝塔或aaPanel面板上,在开始之前还是需要先准备老三样。
1. 域名一个
2. 装有宝塔或aaPanel面板的vps一台。
3. Telegram机器人(如何申请机器人请去看上一篇文章)
新建网站
还是和搭建epusdt一样,新建网站填入域名,不创建FTP,不创建数据库,PHP版本选择静态,并申请SSL证书。
回到站点根目录,从github拉取或下载TokenPay文件压缩包并上传解压。在解压文件中找到appsettings.Example.json
,重命名为appsettings.json
。找到
,重命名为EVMChains.Example.json
。EVMChains.json
在 TronGrid.io 注册一个账户,并申请一个API。
然后回到网站根目录对appsettings.json
进行编辑,打开文件代码如下:
{ "Serilog": { "MinimumLevel": { "Default": "Information", "Override": { "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } } }, "AllowedHosts": "*", "ConnectionStrings": { "DB": "Data Source=|DataDirectory|TokenPay.db; Pooling=true;" }, "TRON-PRO-API-KEY": "xxxxxx-xxxx-xxxx-xxxxxxxxxxxx", // 避免接口请求频繁被限制,此处申请 https://www.trongrid.io/dashboard/keys "BaseCurrency": "CNY", //默认货币,支持 CNY、USD、EUR、GBP、AUD、HKD、TWD、SGD "Rate": { //汇率 设置0将使用自动汇率 "USDT": 0, "TRX": 0, "ETH": 0, "USDC": 0 }, "ExpireTime": 1800, //单位秒 "UseDynamicAddress": false, //是否使用动态地址,设为false时,与EPUSDT表现类似;设为true时,为每个下单用户分配单独的收款地址 "Address": { // UseDynamicAddress设为false时在此配置TRON收款地址,EVM可以替代所有ETH系列的收款地址,支持单独配置某条链的收款地址 "TRON": [ "Txxxx1" ], //你的trc20钱包地址 "EVM": [ "0x9966aA2f1dDD7c1174553e687791a96c1Bc20680" ] }, "OnlyConfirmed": true, //默认仅查询已确认的数据,如果想要回调更快,可以设置为false "NotifyTimeOut": 3, //异步通知超时时间 "ApiToken": "666666", //异步通知密钥,请务必修改此密钥为随机字符串,脸滚键盘即可 "WebSiteUrl": "https://yourtokenpay.domain", //配置服务器外网域名 "Telegram": { "AdminUserId": 12345678, // 你的账号ID,如不知道ID,可给https://t.me/EShopFakaBot 发送 /me 获取用户ID "BotToken": "1234567890:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" //从https://t.me/BotFather 创建机器人时,会给你BotToken }}
修改代码中 “TRON-PRO-API-KEY” 值,填入刚才申请的API值,并删除后面的注释。
修改代码中 “TRON” 值,填写你的trc20钱包地址。
修改 “ApiToken” 值,将后面的666666换成你自己的字母和数字组合。
修改 “WebSiteUrl” 值,填写你的tokenpay网址。
修改 “AdminUserId” 值,填写telegram用户ID数字
修改 “BotToken” 值,填写telegram机器人API token,这里我们可以使用上次申请机器人token
至此基本搭建完成,如需ERC20的收款,对应填写自己的信息就好。
赋予TokenPay执行权限
方法一:
SSH终端登录服务器,切换到root用户cd到站点所在目录。例如本次搭建目录位于:/www/wwwroot/tpay.totry.link 具体目录位置请根据实际情况调整。在目录中执行 chmod +x TokenPay,授予 tokenpay 文件权限。
方法二:
在宝塔进入站点根目录,在目录中打开终端窗口,输入root用户名及密码登录。执行 chmod +x TokenPay,授予 tokenpay 文件权限。此操作仅限服务器可以通过root用户名及密码连接的情况。
添加守护进程
还是使用Supervisor或宝塔进程管理器都一样,新建一个进程守护。
名称:tokenpay
启动用户:root
运行目录:网站根目录(例如:/www/wwwroot/tpay.totry.link)
启动命令:网站根目录路径/TokenPay (例如:/www/wwwroot/tpay.totry.link/TokenPay)
进程数:1
对应填写完后,点确定添加。此时telegram应该会出现“你好呀~我是TokenPay通知机器人!”,进程启动成功。
添加反向代理
打开站点设置 ➜ 反向代理 ➜ 添加反向代理。对应填入一下内容。
代理名称:tokenpay
目标URL:http://127.0.0.1:5000 (需在防火墙放行相应端口)
其他保持不变,然后提交。
然后访问你的域名,如出现“服务正常运行中…” 表示搭建完毕。
对接独角数卡
下载TokenPay相应插件,并解压。解压后进入文件目录,找到Plugs ➜ dujiaoka文件夹。将app文件夹和routes文件夹文件对应上传至独角数卡网站相同路径目录,然后打开phpMyAdmin,填写tokenpay数据库用户名密码登录,选择tokenpay数据库,然后在上方导航选择导入,将database文件夹的sql手动导入。
然后登录独角数卡后台,左侧导航栏找到 配置 ➜ 支付配置 此时已经可以看见多出很多支付方式,对应编辑填写信息即可。
这里以USDT举例,设置请参考下图:
对接易支付
对接易支付有什么用?当对接完易支付以后,理论上可以让所有支持易支付接口程序使用 波场(TRON):TRX
、USDT
、以太坊(ETH):ETH
、USDT
、USDC
以及其他任意ERC20代币支付,这是优于epusdt的地方。
同样解压后进入文件目录,找到Plugs ➜ epay文件夹。将文件夹内文件对应上传至独易支付网站对应相同路径目录,替换文件。注意,在 plugins 文件夹下的 TokenPay文件夹需要连文件夹整个上传。然后打开phpMyAdmin,填写易支付数据库用户名密码登录,选择易支付数据库,分别导入epay文件夹下的:增加支付方式.sql、增加字段长度.sql数据库文件。
登录易支付后台,顶部导航栏找到 支付接口 ➜ 支付插件 刷新插件列表,查看是否包含TokenPay插件。继续选择 支付接口 ➜ 支付方式 默认这里已经添加所有支持支付方式,然后选择 支付接口 ➜ 支付通道 ➜ 新增 添加自己需要的支付方式。
添加完后点击配置密钥
API接口地址:tokenpay网址(例如:https://tpay.totry.link,网址后面不要带/)
APP ID:随便填写
API秘钥:ApiToken
添加后点击开启,整个设置完成。在对接完易支付以后,最好服务器添加易支付计划任务,否则可能出现回调慢,不回调的情况。
这里说下易支付的注意事项,有可能你在对接后。产品支付成功后回调到一个payok.html的页面,而不是回调到发起支付的产品页。这种情况可编辑 getshop.php 这个文件,注释掉当中的部分代码即可正常回调。参考如下:
// 支付完成5分钟后禁止跳转回网站 //if(!empty($row['endtime']) && time() - strtotime($row['endtime']) > 300){ //$jumpurl = '/payok.html'; //}else{ $url=creat_callback($row); $jumpurl = $url['return']; //} if($row['status'] == 2){ $jumpurl = '/payerr.html';
相关阅读: