正文

开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt

Epusdt(全称:Easy Payment Usdt)是一个由Go语言编写的私有化部署Usdt支付中间件(Trc20网络)
站长或开发者可通过Epusdt提供的http api集成至您的任何系统,无需过多的配置,仅仅依赖mysql和redis
可实现USDT的在线支付和消息回调,这一切在优雅和顷刻间完成!🎉
私有化搭建使得无需额外的手续费和签约费用,Usdt代币直接进入您的钱包💰。

相关链接:https://github.com/assimon/epusdt

本站备份:2022年3月30日备份(OneDrive)

项目特点

支持私有化部署,无需担心钱包被篡改和吞单😁
Go语言跨平台实现,支持x86和arm芯片架构的win/linux设备
多钱包地址轮询,提高订单并发率
异步队列响应,优雅及高性能
无需额外环境配置,仅运行一个编译后二进制文件即可使用
支持http api,其他系统亦可接入
Telegram机器人接入,便捷使用和支付消息快速通知

项目结构

Epusdt
├── plugins ---> (已集成的插件库,例如dujiaoka)
├── src ---> (项目核心目录)
├── sdk ---> (接入SDK)
├── sql ---> (安装sql文件或更新sql文件)
└── wiki ---> (知识库)

已适配系统插件

独角数卡:插件地址https://github.com/assimon/epusdt/tree/master/plugins/dujiaoka

其他程序的插件作者还在开发当中,whmcs、wordpress、算算panel等。多关注GitHub地址吧。

工作原理

Epusdt的实现方式与其他项目原理类似,都是通过监听trc20网络的api或节点,
监听钱包地址usdt代币入账事件,通过金额差异和时效性来判定交易归属信息。
可参考下方流程图

开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt
简单的原理:
1.客户需要支付20.05usdt
2.服务器有一个hash表存储钱包地址对应的待支付金额 例如:address_1 : 20.05
3.发起支付的时候,我们可以判定钱包address_1的20.05金额是否被占用,如果没有被占用那么可以直接返回这个钱包地址和金额给客户,告知客户需按规定金额20.05准确支付,少一分都不行。且将钱包地址和金额 address_1:20.05锁起来,有效期10分钟。
4.如果订单并发下,又有一个20.05元需要支付,但是在第3步的时候上一个客户已经锁定了该金额,还在等待支付中...,那么我们将待支付金额加上0.0001,再次尝试判断address_1:20.0501金额是否被占用?如果没有则重复第三步,如果还是被占用就继续累加尝试,直到加了100次后都失败
5.新开一个线程去监听所有钱包的USDT入账事件,网上有公开的api或rpc节点。如果发现有入账金额与待支付的金额相等。则判断该笔订单支付成功!

使用教程

宝塔运行epusdt教程

一、新增网站

在宝塔面板网站里新增一个网站,无需php和ftp纯静态即可,但是需要数据库!
将提前解析好的收银台域名绑定。

开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt

二、导入Sql

登录管理刚刚新增数据库,导入Epusdt所需的sql文件。

开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt

三、配置Epusdt

1.将编译好的Epusdt项目压缩包上传至刚刚新增的网站目录,随后解压。

开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt

2.将.env.example重命名为.env文件,这个是配置文件
3.编辑.env文件,填入你的配置

app_name=epusdt
#下面配置你的域名,收银台会需要
app_uri=https://upay.dujiaoka.com
#是否开启debug,默认false
app_debug=false
#http服务监听端口
http_listen=:8000

#静态资源文件目录
static_path=/static
#缓存路径
runtime_root_path=/runtime

#日志配置
log_save_path=/logs
log_max_size=32
log_max_age=7
max_backups=3

# mysql配置
mysql_host=127.0.0.1
mysql_port=3306
mysql_user=mysql账号
mysql_passwd=mysql密码
mysql_database=数据库
mysql_table_prefix=
mysql_max_idle_conns=10
mysql_max_open_conns=100
mysql_max_life_time=6

# redis配置
redis_host=127.0.0.1
redis_port=6379
redis_passwd=
redis_db=5
redis_pool_size=5
redis_max_retries=3
redis_idle_timeout=1000

# 消息队列配置
queue_concurrency=10
queue_level_critical=6
queue_level_default=3
queue_level_low=1

#机器人Apitoken
tg_bot_token=
#telegram代理url(大陆地区服务器可使用一台国外服务器做反代tg的url),如果运行的本来就是境外服务器,则无需填写
tg_proxy=
#管理员userid
tg_manage=

#api接口认证token(用于发起交易的签名认证,请勿外泄)
api_auth_token=

#订单过期时间(单位分钟)
order_expiration_time=10

#强制汇率(设置此参数后每笔交易将按照此汇率计算,例如:6.4)
forced_usdt_rate=

4.⚠️注意:配置文件里面不认识的不要修改,留空即可,不会改又要瞎改,除非你对项目源代码很熟悉很有信心😁

四、配置反向代理

由于Epusdt会自动开启http服务并监听配置端口,所以可以直接用ip访问,例如: http://127.0.0.1:8000。
这会显得非常不美观,还没有https。
所以我们需要借助nginx的反向代理来为Epusdt绑定一个域名
点击宝塔->网站->点击刚刚新增网站的设置->反向代理设置

开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt

五、赋予Epusdt执行权限

linux服务器需要赋予Epust执行权限方可启动。
1.通过ssh进入服务器终端
2.进入epusdt可执行文件所在目录(目录位置可以参考宝塔面板的网站根目录)
3.执行命令chmod +x epusdt赋予权限(根据你的实际目录来,不用一比一抄我的,每个人的目录都不一样)

开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt

六、配置supervisor

为了保证Epusdt常驻后台运行,我们需要配置supervisor来实现进程监听
打开宝塔supervisor,添加守护进程

开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt

启动命令为:epusdt所在目录+epusdt执行文件+空格+http+空格+start(例如:/www/wwwroot/upay/epusdt-dev/epusdt http start)
出现如下图则代表成功:

开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt

七、测试

以上步骤完成无误后,进入telegram机器人🤖,如果机器人有反馈则代表运行正常!

开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt开源免费的跨平台usdt收付款中间件 Easy Payment USDT——epsdt

其他注意事项

1.所有.env配置文件有了修改后都需要重启supervisor进程
2.教程所示的目录均为参考,请勿1:1照抄,根据自己实际情况来
3.windows与linux不同,windows请直接运行epusdt.exe即可,无需赋予执行权限