通过Notion查看本文
本文同步发布在j000e.com

前言

自从上次用独角数卡做的咩咩超市被阿里云查封,我就一直想重新做一个,这回服务器放美国,应该问题不大了。我的当面付也奇迹般地起死回生,除了当面付,要不多加一个支付方式吧,USDT一定更符合发卡业务的收款媒介,于是在独角的支付支持列表里,我找到了这个开源平台做收款。

项目地址:

https://github.com/assimon/epusdt

项目简介

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

项目特点

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

本文在搭建完独角的基础上,使用同一个机器搭建Epusdt。

效果:

准备工作

  • 请确保已经安装并启动了MysqlredisSupervisord服务
  • 准备一个telgeram机器人🤖(用于操作你的钱包和接收交易通知)

    • @BotFather点/newbot然后按步骤创建机器人,记下token

  • 准备一个收银台域名,并完成解析(例如:upay.j000e.co)。用于支付请求发起和扫码页面

开始使用

一、新增网站

在aaPanel面板网站里新增一个网站,无需phpftp纯静态即可,但是需要数据库.

将提前解析好的收银台域名绑定。

如果需要SSL需要在此处开启http跳转https,如果不需要申请证书则取消勾选自动获取证书。

二、导入Sql

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

以下为示范0.01版本 最新数据库请以 https://github.com/assimon/epusdt/blob/master/sql/ 为准

1.手动下载导入

数据库地址:https://github.com/assimon/epusdt/blob/master/sql/v0.0.1.sql

2.使用phpMyAdmin导入

使用文本编辑器打开.sql文件,如下:

-- auto-generated definition
create table orders
(
    id                   int auto_increment
        primary key,
    trade_id             varchar(32)    not null comment 'epusdt订单号',
    order_id             varchar(32)    not null comment '客户交易id',
    block_transaction_id varchar(128)   null comment '区块唯一编号',
    actual_amount        decimal(19, 4) not null comment '订单实际需要支付的金额,保留4位小数',
    amount               decimal(19, 4) not null comment '订单金额,保留4位小数',
    token                varchar(50)    not null comment '所属钱包地址',
    status               int default 1  not null comment '1:等待支付,2:支付成功,3:已过期',
    notify_url           varchar(128)   not null comment '异步回调地址',
    redirect_url         varchar(128)   null comment '同步回调地址',
    callback_num         int default 0  null comment '回调次数',
    callback_confirm     int default 2  null comment '回调是否已确认? 1是 2否',
    created_at           timestamp      null,
    updated_at           timestamp      null,
    deleted_at           timestamp      null,
    constraint orders_order_id_uindex
        unique (order_id),
    constraint orders_trade_id_uindex
        unique (trade_id)
);

create index orders_block_transaction_id_index
    on orders (block_transaction_id);

-- auto-generated definition
create table wallet_address
(
    id         int auto_increment
        primary key,
    token      varchar(50)   not null comment '钱包token',
    status     int default 1 not null comment '1:启用 2:禁用',
    created_at timestamp     null,
    updated_at timestamp     null,
    deleted_at timestamp     null
)
    comment '钱包表';

create index wallet_address_token_index
    on wallet_address (token);

复制-粘贴至phpmyadmin的SQL面板,然后执行

三、配置Epusdt

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

在‣选最新版本下载合适的架构到服务器。

cd /www/wwwroot/website_name/
wget https://github.com/assimon/epusdt/releases/download/v0.0.3/epusdt_0.0.3_Linux_x86_64.tar.gz
tar -xvf epusdt_0.0.3_Linux_x86_64.tar.gz
rm epusdt_0.0.3_Linux_x86_64.tar.gz

2.将.env.example重命名为.env文件,这个是配置文件

mv .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=
  1. ⚠️注意:配置文件里面不认识的不要修改,留空即可,不会改又要瞎改,除非你对项目源代码很熟悉很有信心😁

四、配置反向代理

由于Epusdt会自动开启http服务并监听配置端口,所以可以直接用ip访问,例如: http://127.0.0.1:8000

这会显得非常不美观,还没有https。

所以我们需要借助nginx的反向代理来为Epusdt绑定一个域名

点击aaPanel->Website->点击刚刚新增网站的设置->反向代理设置

五、赋予Epusdt执行权限

linux服务器需要赋予Epust执行权限方可启动。

1.通过ssh进入服务器终端

2.进入epusdt可执行文件所在目录(目录位置可以参考宝塔面板的网站根目录)

3.执行命令chmod +x epusdt赋予权限(根据你的实际目录来,不用一比一抄我的,每个人的目录都不一样)

cd /www/wwwroot/xxx.j000e.co
chmod +x epusdt

六、配置supervisor

为了保证Epusdt常驻后台运行,我们需要配置supervisor来实现进程监听

打开宝塔supervisor,添加守护进程

启动命令为:epusdt所在目录+epusdt执行文件+空格+http+空格+start(例如:/www/wwwroot/xxx.j000e.co/epusdt http start)

出现如下图则代表成功:

七、测试

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

八、SSL

补充SSL,在网站设置-SSL中填入证书和密钥,在Config中输入如下代码实现http跳转https。

if ($scheme = http ) {
    return 301 https://$host$request_uri;
    }

其他注意事项

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

接入独角数卡

支付选项商户id商户key商户密钥备注
Epusdtapi接口认证tokenepusdt收银台地址+/api/v1/order/create-transaction如果独角数卡和epusdt在同一服务器则填写127.0.0.1不要填域名,例如http://127.0.0.1:8000/api/v1/order/create-transaction

在支付设置中,开启Epusdt,商户ID就是上面设置过的api token

更改Epusdt付款网站标题

Epusdt的网站标题可以在/www/wwwroot/xxx.j000e.co/static/index.html中更改。

THE END
最后修改:2023 年 06 月 06 日 23 : 25
本文链接:https://www.j000e.com/websites/Epusdt_payment.html
版权声明:本文『搭建Epusdt接入独角数卡实现USDT收款(aaPanel)』为『Joe』原创。著作权归作者所有。
转载说明:搭建Epusdt接入独角数卡实现USDT收款(aaPanel) || Joe's Blog』转载许可类型见文末右下角标识。允许规范转载时,转载文章需注明原文出处及地址。
Last modification:June 6, 2023