TokenPay是一款同时支持动态和静态收款地址收取TRX、USDT-TRC20、ETH系列区块链所有代币的支付解决方案!
TokenPay是一款开源的,支持以动态收款地址或静态收款地址收取波场的TRX、USDT-TRC20以及ETH系原生币以及ETH系ERC20代币的支付解决方案! 理论上支持所有ETH系的区块链,常见的ETH系的区块链有:以太坊(ETH)、币安智能链(BSC)、Polygon等等。
今昔网iMJX讲解一下安装步骤以及注意事项,争取让大家一步到位,少走弯路。

软件下载
主程序
GitHub:https://github.com/LightCountry/TokenPay/releases
TokenPay-v1.0.9.2-linux-x64:本站底部免费下载
插件
独角数卡插件:github.com/LightCountry/TokenPay/blob/master/Plugs/dujiaoka
v2board插件:github.com/LightCountry/TokenPay/blob/master/Plugs/v2board
card-system插件:github.com/LightCountry/TokenPay/blob/master/Plugs/card-system
彩虹易支付插件:github.com/LightCountry/TokenPay/blob/master/Plugs/epay
彩虹易支付插件:也可本站底部免费下载
安装教程
务必保存好TokenPay.db文件,此文件内保存了系统生成的收款地址和私钥,一旦丢失,你将损失所收取的款项就没有咯
1.下载release对应平台的主包(上面有地址),解压到指定目录

2.重命名appsettings.Example.json为appsettings.json,并修改配置文件
{ "Serilog": { "MinimumLevel": { "Default": "Information", "Override": { "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } } }, "AllowedHosts": "*", "ConnectionStrings": { "DB": "Data Source=TokenPay.db;" }, "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": [ "xxxxxxxxxxxx" ], "EVM": [ "0x07b7Cf80ee9F9d79AeB404502cfD99afB7651BF9" ] }, "OnlyConfirmed": false, //默认仅查询已确认的数据,如果想要回调更快,可以设置为false "NotifyTimeOut": 3, //异步通知超时时间 "ApiToken": "88888", //异步通知密钥,请务必修改此密钥为随机字符串,脸滚键盘即可 "WebSiteUrl": "https://tokenpay.xxx.com", //配置服务器外网域名 "Collection": { //需要 UseDynamicAddress 为 true 才有使用归集功能的意义,静态地址收款TokenPay无法归集 "Enable": false, //是否启用归集功能,false 表示关闭,true 表示启用 "UseEnergy": true, //是否租用能量归集,降低归集成本,false 表示直接燃烧trx转账 "ForceCheckAllAddress": false, //强制检查所有地址的余额 "RetainUSDT": true, //归集USDT时是否保留0.000001,用于降低用户下次支付的成本 "CheckTime": 1, //归集任务运行间隔,默认1小时运行一次,单位:小时 "MinUSDT": 0.1, //只归集USDT余额大于此金额的地址 "NeedEnergy": 65000, //归集USDT所需能量,此配置项通常不需要修改,发生变化时会在GitHub更新 "EnergyPrice": 210, //波场当前能量单价,此配置项通常不需要修改,发生变化时会在GitHub更新 "Address": "xxxxxxxxxxxx" //归集收款地址,配置你自己的收款地址 }, "Telegram": { "AdminUserId": 123456, // 你的TG账号ID,如不知道ID,可给 https://t.me/QueryCoinBot 发送 /tgid 获取ID "BotToken": "123456:XXXXXXXXXXXXXXXXXX" //从https://t.me/BotFather 创建机器人时,会给你BotToken }, "RateMove": { //汇率微调,支持设置正负数,仅支持两位小数 "TRX_CNY": 0, "USDT_CNY": 0 }, "DynamicAddressConfig": { "AmountMove": false, //使用动态地址收款时启用动态金额,支持非准确金额支付,用于优化中心化钱包或交易所提币扣除手续费后金额不匹配的情况,可自行决定是否开启,默认false表示不启用 "TRX": [ 0, 2 ], //表示下浮0,上浮2,如果实际支付金额为100TRX,根据此配置,用户支付金额在100-102TRX订单都会成功 "USDT": [ 1, 2 ], //表示下浮1,上浮2,如果实际支付金额为100USDT,根据此配置,用户支付金额在99-102USDT订单都会成功 "ETH": [ 0.1, 0.15 ] //表示下浮0.1,上浮0.1,如果实际支付金额为0.5ETH,根据此配置,用户支付金额在0.4-0.65ETH订单都会成功 } }
- TRON-PRO-API-KEY:https://www.trongrid.io/dashboard/keys这里申请放进来
- TRON:你的TRX地址
- ApiToken:88888(随便写数字)
- WebSiteUrl:https://tokenpay.xxx.com(有S一定要记得加,结尾不要/)
- Address:你的TRX地址
- Telegram AdminUserId:你的TG账号ID,如不知道ID,可给 https://t.me/QueryCoinBot 发送 /tgid 获取ID
- Telegram BotToken:从https://t.me/BotFather 创建机器人时,会给你BotToken
3.重命名EVMChains.Example.json为EVMChains.json,并配置需要支持的区块链
只需修改配置中的Enable和ApiKey,其他配置项请勿修改!!!
{ "EVMChains": [ { "Enable": true, // false 表示不启用此区块链, true 表示启用 "ChainName": "以太坊", "ChainNameEN": "ETH", "BaseCoin": "ETH", "Decimals": 6, "ScanHost": "https://etherscan.io", "ApiHost": "https://api.etherscan.io", "ApiKey": "", // 此处申请 https://etherscan.io/myapikey "ERC20Name": "ERC20", "ERC20": [ { "Name": "USDT", "ContractAddress": "" }, { "Name": "USDC", "ContractAddress": "" } ] }, { "Enable": false, // false 表示不启用此区块链, true 表示启用 "ChainName": "币安智能链", "ChainNameEN": "BSC", "BaseCoin": "BNB", "Decimals": 18, "ScanHost": "https://www.bscscan.com", "ApiHost": "https://api.bscscan.com", "ApiKey": "", // 此处申请 https://bscscan.com/myapikey "ERC20Name": "BEP20", "ERC20": [ { "Name": "USDT", "ContractAddress": "" }, { "Name": "USDC", "ContractAddress": "" } ] }, { "Enable": false, // false 表示不启用此区块链, true 表示启用 "ChainName": "Polygon", "ChainNameEN": "Polygon", "BaseCoin": "POL", "Decimals": 18, "ScanHost": "https://polygonscan.com", "ApiHost": "https://api.polygonscan.com", "ApiKey": "", // 此处申请 https://polygonscan.com/myapikey "ERC20Name": "ERC20", "ERC20": [ { "Name": "USDT", "ContractAddress": "" }, { "Name": "USDC", "ContractAddress": "" } ] } ] }
- Enable:false 表示不启用此区块链, true 表示启用
- ApiKey:此处申请 https://etherscan.io/myapikey
- ContractAddress:自己的钱包地址写一下
配置文件中已添加ETH、BSC、Polygon三条区块链,如需其他ETH系的区块链可自由拓展。每条区块链配置都带有一个Enable参数,表示是否启用此区块链,默认的三条区块链的此项配置都为false,请将需要启用的区块链Enable参数更改为true
字段 | 类型 | 说明 |
---|---|---|
Enable | bool | 是否启用此区块链,支持的值: true 、false |
ChainName | string | 区块链名称 |
ChainNameEN | string | 区块链英文名称 |
BaseCoin | string | 基本币名称 |
Decimals | int | 基本币精度,如:18表示小数点后有18位,6表示小数点后有6位 |
ApiHost | string | api请求地址 |
ApiKey | string | api请求的授权key |
ERC20Name | string | ERC20代币名称,比如币安的就叫BEP-20 ,而不叫ERC20 ,所以特意加了这个 |
ERC20 | object[] | 要支持的代币 |
字段 | 类型 | 说明 |
---|---|---|
Name | string | 代币名称,不管是哪条链的USDT,都是写USDT。USDC同理,此参数会用于向OKX服务器查询币价,填写了错误的名称会导致无法自动获取币价 |
ContractAddress | string | 合约地址,错误的合约地址将导致收款无法回调 |
4.为二进制文件TokenPay增加可执行权限
打开网站根目录,在此目录下,点击 终端 执行下面命令
chmod +x TokenPay

5.宝塔进程守护管理器或Supervisor管理器添加应用
没有安装进程守护管理器的可以宝塔软件商店安装一下
- 应用名称:TokenPay
- 运行身份:root 应用环境:无 (Supervisor管理器无此项)
- 执行目录:/xxx (你解压文件的目录)
- 启动文件:/xxx/TokenPay
- 如有其他选项保持默认
注意:如需修改项目启动端口 可以增加启动参数 –urls=http://+:5001 如: ./xxx/xxx/TokenPay –urls=http://+:5001
5001可以改为任意未被占用的端口,建议大于5000

配置反向代理
添加一个纯静态网站,配置反向代理 http://127.0.0.1:5000

去安全中心开放5000端口

注意:如启动失败,可尝试将整个TokenPay目录循环设置777权限,再重新尝试启动
原创文章,作者:iMJX,如若转载,请注明出处:https://www.imjx.com/5728.html
TG:@erbao857