这是一个基于 Next.js 和 Pi Network 的支付应用,支持一对多批量转账功能。
- 🔐 Pi Network 登录认证
- 💸 一对一转账
- 🎯 一对多批量转账(支持 U2A → A2U 自动分发)
- 📊 转账历史记录
- 🧧 红包功能
- 🏪 商户收款码
- 📈 实时汇率查询
用户 → 应用钱包 → 多个收款地址
用户只需签名一次,资金会自动分发到多个收款地址。
详细配置请查看:批量转账快速开始指南
First, install dependencies and run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
创建 .env 文件:
DATABASE_URL="postgresql://user:password@localhost:5432/paypi?schema=public"
PI_API_KEY="your_pi_api_key"
PI_WALLET_PRIVATE_SEED="S_YOUR_WALLET_SEED"# 执行批量转账功能的数据库迁移
npm run db:migrate:batch
# 或使用脚本
./scripts/migrate-batch-transfer.sh # macOS/Linux
scripts\migrate-batch-transfer.bat # Windows- 前端: Next.js 15, React 19, TailwindCSS
- 后端: Next.js API Routes
- 数据库: PostgreSQL + Prisma ORM
- 支付: Pi Network SDK (
pi-backend) - 认证: Pi Network OAuth
| 路由 | 功能 |
|---|---|
/ |
首页 |
/oneton |
一对多批量转账 |
/transfer |
一对一转账 |
/history |
转账历史 |
/red-envelope |
红包功能 |
/merchant-code |
商户收款码 |
/me |
个人中心 |
sequenceDiagram
participant User as 用户
participant Pi as Pi Browser
participant App as 应用钱包
participant API as 后端 API
participant DB as 数据库
User->>Pi: 发起批量转账
Pi->>App: U2A 支付(总金额)
App->>API: 支付完成回调
API->>DB: 创建批量任务
loop 每个收款人
API->>Pi: 创建 A2U 支付
API->>Pi: 提交到区块链
API->>Pi: 完成支付
API->>DB: 更新支付状态
end
API->>DB: 更新任务状态
User->>API: 轮询查询状态
API->>User: 返回进度信息
# 启动开发服务器
npm run dev
# 打开 Prisma Studio 查看数据
npm run db:studio
# 运行 linter
npm run lint| 命令 | 说明 |
|---|---|
npm run db:migrate |
执行数据库迁移 |
npm run db:migrate:batch |
批量转账功能迁移 |
npm run db:deploy |
生产环境部署迁移 |
npm run db:studio |
打开 Prisma Studio |
npm run db:generate |
生成 Prisma Client |
- 安全性:
PI_WALLET_PRIVATE_SEED是敏感信息,切勿泄露或提交到版本控制 - 用户注册: 批量转账的收款人必须在应用中注册
- 钱包余额: 应用钱包需要有足够余额支付 A2U 转账的网络费用
- 测试环境: 建议先在 Pi Testnet 上充分测试
欢迎提交 Issue 和 Pull Request!
MIT License
如有问题,请查看: