# 虚拟币支付中间件 **Repository Path**: maozilong/crypto_payment ## Basic Information - **Project Name**: 虚拟币支付中间件 - **Description**: 这是一个使用Node.js实现的虚拟币支付中间件项目,支持TRC20网络的USDT代币,BTC,LTC支付和回调通知 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-05-17 - **Last Updated**: 2025-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Crypto Payment Node.js 实现 这是一个使用Node.js实现的USDT支付中间件项目,支持TRC20网络的USDT代币,BTC,LTC支付和回调通知。 ## 功能特点 * 支持私有化部署,无需担心钱包被篡改和吞单 * Node.js跨平台实现,支持各种操作系统 * 多钱包地址轮询,提高订单并发率 * 异步队列响应,优雅及高性能 * 支持HTTP API,其他系统亦可接入 * Telegram机器人接入,便捷使用和支付消息快速通知 ## 系统要求 * Node.js 16.0.0+ * MySQL 5.7+ ## 安装步骤 ### 1. 克隆项目 ```bash git clone https://your-repository-url/crypto_payment.git cd crypto_payment ``` ### 2. 安装依赖 ```bash npm install # 或者使用yarn yarn install ``` ### 3. 配置环境变量 复制.env.example文件为.env,并根据你的环境修改配置: ```bash cp .env.example .env ``` ### 4. 创建数据库 执行SQL文件创建数据库和表: ```bash mysql -u username -p < sql/install.sql ``` ### 5. 启动服务 ```bash # 开发模式启动 npm run dev # 生产模式启动 npm start ``` ## API文档 ### 创建订单 ``` POST /api/create-order ``` 请求参数: | 参数名 | 类型 | 必须 | 说明 | | ----- | ---- | ---- | ---- | | order_id | string | 是 | 订单ID | | amount | decimal | 是 | 订单金额 | | notify_url | string | 否 | 异步通知地址 | | attach | string | 否 | 附加数据 | | sign | string | 是 | 签名 | 响应示例: ```json { "status": 1, "data": { "trade_id": "5e65a4ecccfa47e88", "order_id": "test123456", "amount": "10.00000000", "actual_amount": "10.00000000", "wallet_address": "TYSAfLGkjCrLppkCiJQQ3PKTT6mHGihZTx", "expired_time": "2023-05-26T15:22:11.000Z", "sign": "A3D8D6139CA5C79E5F" } } ``` ### 查询订单 ``` GET /api/query-order ``` 请求参数: | 参数名 | 类型 | 必须 | 说明 | | ----- | ---- | ---- | ---- | | trade_id | string | 否 | 交易ID | | order_id | string | 否 | 订单ID | | sign | string | 是 | 签名 | trade_id和order_id至少提供一个。 响应示例: ```json { "status": 1, "data": { "trade_id": "5e65a4ecccfa47e88", "order_id": "test123456", "amount": "10.00000000", "actual_amount": "10.00000000", "wallet_address": "TYSAfLGkjCrLppkCiJQQ3PKTT6mHGihZTx", "status": 1, "expired_time": "2023-05-26T15:22:11.000Z", "transaction_id": "6afec7a8e8e132c49950de58342e84b21ab174ddc2d45d2cda2c288", "attach": "", "sign": "C4F9AC3E69C5E5F7D" } } ``` ## 回调通知 当订单支付成功后,系统会向创建订单时提供的`notify_url`发送POST请求,数据格式如下: ```json { "trade_id": "5e65a4ecccfa47e88", "order_id": "test123456", "amount": "10.00000000", "actual_amount": "10.00000000", "status": 1, "transaction_id": "6afec7a8e8e132c49950de58342e84b21ab174ddc2d45d2cda2c288", "attach": "", "timestamp": 1685110931, "sign": "D9A7F5E8C4B3A2D1" } ``` 回调接口需要返回字符串`SUCCESS`,否则系统会认为回调失败并重试。 ## 管理后台 管理后台访问地址:`http://你的域名:端口/admin` 默认管理员账号: - 用户名:admin - 密码:admin123 首次登录后请立即修改默认密码! ## 安全提示 1. 请修改默认的API密钥、JWT密钥和Webhook密钥 2. 在生产环境中,建议使用HTTPS确保数据传输安全 3. 如果启用钱包私钥存储功能,请确保服务器安全性 ## 开发计划 - [ ] 支持Redis缓存改进性能 - [ ] 增加ETH链支持 - [ ] 增加BSC链支持 - [ ] 增加钱包资金汇总功能 - [ ] 完善管理后台UI ## 许可证 本项目基于 GPL-3.0 许可证开源。 ## 声明 本项目仅用于学习交流使用,不得用于非法用途。