多网络 USDT 交易监控脚本使用指南

这个脚本可以帮助您自动监控 TRC20、ERC20 和 BEP20 网络上的 USDT 交易,并将匹配的交易与您的支付记录关联起来,实现自动确认支付功能。

1. 准备工作

申请 API 密钥

脚本使用各种区块链 API 来监控 USDT 交易。您需要申请以下 API 密钥:

  1. TronGrid API(用于 TRC20 网络)

  2. Etherscan API(用于 ERC20 网络)

  3. BSCScan API(用于 BEP20 网络)

服务器要求

  • PHP 7.2 或更高版本
  • PDO 扩展(用于数据库连接)
  • cURL 扩展(用于 API 请求)
  • 访问 cron 作业的权限(用于定时运行脚本)

2. 脚本配置

  1. usdt_monitor_multi.php​文件上传到您的服务器
  2. 编辑文件,配置以下信息:
$config = [ 'db_host' => 'localhost', // 数据库主机 'db_user' => 'db_username', // 数据库用户名 'db_password' => 'db_password', // 数据库密码 'db_name' => 'db_name', // 数据库名 'db_prefix' => 'emlog_', // 数据库表前缀,与emlog保持一致 // API密钥配置 'tron_api_key' => 'YOUR_TRONGRID_API_KEY', // TronGrid API密钥 'etherscan_api_key' => 'YOUR_ETHERSCAN_API_KEY', // Etherscan API密钥 'bscscan_api_key' => 'YOUR_BSCSCAN_API_KEY', // BSCScan API密钥 // USDT合约地址 'usdt_contracts' => [ 'ERC20' => '0xdac17f958d2ee523a2206206994597c13d831ec7', // 以太坊USDT合约 'BEP20' => '0x55d398326f99059ff775485246999027b3197955', // 币安智能链USDT合约 ], 'wallet_address' => '', // 留空,脚本会自动从插件设置中获取 'network' => '', // 留空,脚本会自动从插件设置中获取 'log_file' => __DIR__ . '/usdt_monitor.log', // 日志文件路径 'notify_email' => 'your@email.com', // 接收通知的邮箱 'check_period' => 24, // 检查多少小时内的待付款订单 'confirmation_required' => 1, // 留空,脚本会自动从插件设置中获取 ];

3. 设置定时任务

为了定期检查交易,您需要设置一个 cron 任务来运行脚本。建议每 5-10 分钟运行一次。

Linux/Unix 服务器

  1. 通过 SSH 登录到您的服务器
  2. 运行 crontab -e​命令打开 cron 配置
  3. 添加以下行(假设脚本位于 /var/www/html/usdt_monitor_multi.php​):
*/10 * * * * php /var/www/html/usdt_monitor_multi.php >> /var/www/html/usdt_cron.log 2>&1

共享主机

如果您使用的是共享主机,您可以通过主机提供的控制面板(如 cPanel)来设置 cron 任务。

  1. 登录到您的控制面板
  2. 找到"Cron Jobs"或类似的选项
  3. 创建一个新的 cron 任务,运行以下命令:
php /path/to/your/usdt_monitor_multi.php
  1. 设置运行频率为每 10 分钟一次

4. 测试

设置完成后,您可以手动运行脚本来测试其是否正常工作:

php /path/to/your/usdt_monitor_multi.php

查看生成的日志文件以确认脚本运行正常。

5. 脚本工作流程

  1. 连接数据库并获取 USDT 支付插件的设置(包括钱包地址和网络类型)

  2. 获取最近 24 小时内(可配置)状态为"pending"的所有支付记录

  3. 根据配置的网络类型,调用对应的区块链 API:

    • TRC20 网络: 调用 TronGrid API
    • ERC20 网络: 调用 Etherscan API
    • BEP20 网络: 调用 BSCScan API
  4. 匹配交易和支付记录(根据金额和网络类型匹配)

  5. 更新匹配的支付状态:

    • 如果插件设置中启用了"需要手动确认",则只更新交易哈希但保持"pending"状态
    • 如果禁用了"需要手动确认",则自动将状态更新为"completed"
  6. 发送电子邮件通知

6. 不同网络的特点

TRC20 (TRON)

  • 交易费用最低,适合小额支付
  • 确认速度快,通常只需几秒到几分钟
  • 是目前 USDT 交易最常用的网络

ERC20 (以太坊)

  • 交易费用高,尤其是在网络拥堵时
  • 确认时间较长,可能需要几分钟到几小时
  • 安全性高,被广泛接受

BEP20 (币安智能链)

  • 交易费用低,速度快
  • 与 ERC20 兼容,但 Gas 费用更低
  • 适合中小金额的交易

7. 注意事项

  • API 请求限制:

    • TronGrid: 免费账户通常每秒 5 个请求,每天最多 2000 个请求
    • Etherscan: 免费账户每秒 1 个请求,每天最多 100,000 个请求
    • BSCScan: 免费账户每秒 5 个请求,每天最多 100,000 个请求
  • 金额匹配:脚本允许 0.01 USDT 的误差,以应对不同网络的小数位数差异。

  • 网络精确匹配:脚本会优先匹配与支付记录中指定的网络相同的交易,确保不会错误地处理不同网络的交易。

  • 多网络监控:如果插件设置中没有指定网络类型,脚本会检查所有三个网络的交易,但这会增加 API 调用次数。

8. 安全建议

  • 将脚本放在网站根目录之外,防止被直接访问

  • 为脚本设置合适的文件权限(通常是 644)

  • 定期检查日志文件,确保脚本正常运行

  • 考虑为 API 密钥设置 IP 限制

  • 使用 HTTPS 加密来保护 API 请求

  • 定期更新脚本,以便获取最新的安全修复和功能改进

疑难解答

如果脚本无法正常工作,请检查以下几点:

  1. 日志文件:查看日志文件中的错误信息
  2. 数据库连接:确保数据库连接信息正确
  3. API 密钥:确保各个区块链的 API 密钥有效且未超过使用限制
  4. 网络选择:确认 USDT 支付插件中设置的网络类型是否与用户实际支付的网络一致
  5. 合约地址:确认脚本中的 USDT 合约地址是否正确
  6. 解析问题:如果 API 响应解析失败,可能是 API 返回格式发生了变化,需要更新脚本

支持与更新

区块链技术和 API 可能会随时间变化。如果您遇到任何问题,建议:

  1. 检查 API 提供商的文档,看是否有格式变更
  2. 查看日志文件了解详细错误信息
  3. 考虑更新脚本以适应最新的 API 变化

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...