基于 ThinkPHP 8、SQLite/MySQL、Predis Redis 缓存和虎皮椒支付的网盘资源搜索演示程序。
- 首页、资源搜索、分类/来源/大小/时间筛选和分页
- 支持百度网盘、夸克网盘、阿里云盘、迅雷云盘、UC网盘、115网盘、天翼云盘、移动云盘、PikPak、123网盘、磁力链接、电驴链接共 12 类资源
- 平台筛选支持数字 `restype`、平台代码和常用别名
- 邮箱验证码登录,首次登录自动注册
- 会员套餐、订单创建、订单查询和订单历史
- 虎皮椒支付下单、主动查询、异步回调验签和重复回调幂等
- 会员到期时间累加,购买任意会员解锁全站网盘地址
- Redis 缓存、分布式锁及 Redis 不可用时的文件缓存降级
- 资源网盘地址 AES-256-GCM 加密存储
- 后台统计、资源管理、订单查询和套餐管理
> 资源数据目前是演示数据。正式运营前必须替换为合法授权或开放许可的数据源,并处理版权、隐私和支付合规问题。
## 环境要求
- PHP 8.0+,启用 `curl`、`openssl`、`mbstring`、`pdo_sqlite`
- Composer
- Redis 6+(推荐;故障时可通过 `.env` 启用文件降级)
- Web 服务器/Nginx 或 `php think run`
## 快速启动
```bash
composer install
cp .env.example .env
php database/seed.php --fresh
php think run -H 0.0.0.0 -p 8000
```
访问:
- 前台:`http://127.0.0.1:8000/`
- 后台:`http://127.0.0.1:8000/admin`
- 后台默认令牌:`.env` 中的 `ADMIN_TOKEN`
生产环境必须修改 `AUTH_SECRET`、`ADMIN_TOKEN`、支付密钥和站点域名,并关闭 `APP_DEBUG`。
## 资源平台
前台按固定顺序展示 12 个筛选入口,`restype` 与平台对应关系如下:
| restype | 平台代码 | 平台名称 | 地址类型 |
| --- | --- | --- | --- |
| 1 | baidu | 百度网盘 | 云盘 |
| 3 | quark | 夸克网盘 | 云盘 |
| 2 | aliyun | 阿里云盘 | 云盘 |
| 4 | xunlei | 迅雷云盘 | 云盘 |
| 5 | uc | UC网盘 | 云盘 |
| 6 | pan115 | 115网盘 | 云盘 |
| 7 | tianyi | 天翼云盘 | 云盘 |
| 8 | yidong | 移动云盘 | 云盘 |
| 9 | pikpak | PikPak | 云盘 |
| 10 | pan123 | 123网盘 | 云盘 |
| 11 | magnet | 磁力链接 | 磁力链接 |
| 12 | ed2k | 电驴链接 | 电驴链接 |
搜索接口同时支持 `restype=3`、`restype=quark` 和常用别名;磁力与电驴资源直接保存对应协议地址,不会拼接 `https://`。后台新增或编辑资源时会从 `/api/v1/site` 动态加载平台列表。
## Redis 配置
```dotenv
CACHE_DRIVER = redis
REDIS_HOST = 127.0.0.1
REDIS_PORT = 6379
REDIS_PASSWORD =
REDIS_SELECT = 0
REDIS_PREFIX = feizhupan:
REDIS_FALLBACK = true
```
程序通过 Predis 使用 Redis,支持:
- 邮箱验证码、冷却时间和尝试次数
- 登录令牌
- 搜索结果缓存
- 订单创建/查询/会员开通锁
- `REDIS_FALLBACK=true` 时自动降级到文件缓存
## 虎皮椒正式支付
在 `.env` 中配置:
```dotenv
XUNHUPAY_MODE = live
XUNHUPAY_APPID = 你的APPID
XUNHUPAY_APPSECRET = 你的APPSECRET
XUNHUPAY_GATEWAY = https://api.xunhupay.com
XUNHUPAY_QUERY_GATEWAY = https://api.xunhupay.com
XUNHUPAY_PLUGIN = wechat
XUNHUPAY_ALLOW_MOCK_NOTIFY = false
SITE_URL = https://你的正式域名
```
要求:
1. `SITE_URL` 必须是支付平台可访问的 HTTPS 公网地址。
2. 异步回调地址为 `https://你的域名/api/v1/payment/notify`。
3. 支付采用虎皮椒 1.1 JSON 下单协议,MD5 签名使用 `appsecret`。
4. 回调校验签名、订单号、订单状态和支付金额;重复回调不会重复开通会员。
5. 正式模式会禁用 `/api/v1/order/mock-pay` 模拟支付接口。
本地开发可使用:
```dotenv
XUNHUPAY_MODE = mock
XUNHUPAY_ALLOW_MOCK_NOTIFY = true
```
## 自测
启动服务后执行:
```bash
node tests/e2e.mjs
```
测试内容覆盖:12 个资源平台配置与筛选、平台代码过滤、后台新增平台资源、验证码登录、未登录资源锁定、重复下单复用、支付签名回调、回调幂等、错误签名拒绝、会员开通和网盘地址解锁。


更多功能,请下载后使用。
如果需要修改UI和增加一些功能,欢迎联系客服,客服QQ:703603545
注意:当前仍未接入真实第三方资源聚合源,这部分不是简单前端改造。各网盘没有统一的官方公开搜索接口,真正难点是资源数据采集、去重、失效检测和版权合规。现在统一平台层和数据模型已经完善,资源数据准备好后可以直接导入或接入聚合接口。如果需要,可以联系客服,付费对接。