结论先说

这是一套体量不小的原生 PHP 项目,用一套后端同时撑起 H5 APP、PC 前台和 21 屏运营后台,没有引入任何框架或 Composer 依赖,数据库 21 张表把担保交易、悬赏托管、钱包提现和端到端加密私信全串了起来。

真正值得研究的不是页面数量,而是它把担保交易状态机和资金恒等式当成了系统底座:下单时固化费率快照,订单走完自动放款,钱包四个余额格子在任何时刻都守恒。

需要提前说明的是,这套系统面向的是”情报买卖”这个敏感品类,用 USDT 计价,文中会单独讲清楚合规问题。

项目构成

项目根目录分成三块,外加一份完整 Android 构建工具链。

部分 技术 规模
后端 原生 PHP 8+ 8 个内核类 + 18 个控制器
数据库 MySQL 5.7+ 主表 21 张 + 扩展表 11 张
H5 APP 原生 JS + CSS 15 屏
运营后台 原生 JS + CSS 21 屏
PC 前台 响应式原生 JS 自适应门户
移动壳 Capacitor 7 Android / iOS
桌面端 Electron Windows / macOS

打包体积 1.47GB,绝大部分是被塞进 .toolchain 的 Android SDK:aapt2、d8、lld、clang 一整套,还有 JDK。刨掉工具链,项目本体其实不大。

内核设计

core/ 目录只有 8 个文件,但把该有的都覆盖了,全程不依赖框架。

文件 作用
DB.php PDO 单例,强制参数绑定
Router.php 静态路由优先,支持参数路由
Request.php 输入封装,类型安全取值
Response.php 统一 JSON 输出
Auth.php Token 签发校验与审计
Biz.php 加密、脱敏、金额计算
Validate.php 入参校验与 HTML 清洗
Config.php / Env.php 点号配置读取与环境变量

路由表在 api-router.php,控制器按业务域拆在 api/ 下,例如 IntelController 管情报、BountyController 管悬赏、OrderController 管验收与仲裁、WalletController 管钱包。

后台控制器单独一组,ManageController 有 66KB,装了 12 个运营扩展模块和 RBAC;AdminController 36KB 管 A1 到 A7 核心运营屏。

数据库结构

sql/ 目录里除了 schema 和种子数据,还有九个 extend-*.sql 增量脚本,全部写成幂等,可以重复执行。

主表按业务域分组:

  • 用户域:ie_user、ie_user_privacy、ie_kyc、ie_admin
  • 情报域:ie_intel,字段含密级(S/A/B/公开)、机审评分、加密正文
  • 悬赏域:ie_bounty,含托管赏金、接单数、线索数、加注上限
  • 交易域:ie_order、ie_dispute
  • 资金域:ie_wallet、ie_asset、ie_flow、ie_withdraw、ie_channel
  • 消息域:ie_conversation、ie_message,只存元数据与密文
  • 论坛域:ie_forum、ie_thread
  • 治理域:ie_audit_log、ie_rule_set、ie_locale、ie_stat_daily

担保交易状态机

订单流转一共五个状态,规则写得很清楚:

1 托管中 ──买家验收──→ 3 已放款
   ├──卖家交付──→ 2 待放款 ──超时 72 小时自动──→ 3 已放款
   └──任一方申诉──→ 4 争议仲裁 ──裁决──→ 3 已放款 / 5 已驳回

三条设计约束值得单独拎出来。

费率快照:下单那一刻把费率固化进订单,之后管理员改规则不会影响进行中的单子。做过分账系统的都知道,这一条能省掉大量对账纠纷。

金额恒等式:买家实付等于原价加平台服务费,卖家到账等于原价减平台服务费,两边永远对得上。

钱包恒等式:总资产等于可用加担保托管加悬赏托管加提现中,交易全程守恒。

超时自动放款靠定时任务,POST /api/cron/auto-release 每 10 分钟跑一次,用独立的 CRON_TOKEN 鉴权。

提现与风控

提现规则在 config/config.php 里可以调,默认值是这样:

项 值
手续费档位 0.10% / 0.30% / 0.60%,支付宝固定 0.60%
单笔限额 50 – 50,000 USDT
日限额 100,000 USDT,每天最多 3 笔
大额复核 单笔 ≥ 10,000 USDT 需双人双签

双人复核不只用在提现。大额放款要填第二复核人 ID,大额仲裁要法务同步审批,规则集变更要二次确认加审计留痕,风控处置全量写 ie_audit_log。

私信加密边界

IM 这块的设计思路比较特别,平台监管会话但看不到正文。

风控只命中元数据特征,比如消息数突增、时间跨度异常、关联订单、模型评分。要调阅正文必须走”申请加审批”两道流程,后台 KPI 明示”0 内容已解密”。留存策略分级,阅后即焚 1 小时或 24 小时,平台留存 90 天或 180 天。处置动作全程留痕并通知双方。

对应的接口是 POST /api/im/send 发加密消息,后台 POST /api/admin/decrypt-req 提交调阅申请。

安全实现

README 列了十条,我逐条核对了代码结构,基本都能对上。

项 做法
SQL 注入 全 PDO 参数绑定,EMULATE_PREPARES=false
XSS 输出侧 htmlspecialchars,富文本走白名单
密码 sha256(salt + pwd + secret),独立 salt 列
Token HMAC-SHA256 签名,带 exp 过期校验
越权 订单与会话详情校验买卖双方归属
角色隔离 用户 Token 与管理员 Token 互斥
目录穿越 静态服务用 realpath() 做前缀校验
敏感数据 证件号 AES-256 加密,IM 正文密文入库
审计 敏感操作写 ie_audit_log,含 IP 与操作者
幂等 已放款订单拒绝重复放款

部署要点

环境要求 PHP 8.0 以上,需要 pdo_mysql、mbstring、openssl、json 四个扩展,数据库 MySQL 5.7 以上用 InnoDB 加 utf8mb4。

初始化三步,先导入 schema.sql、seed.sql,再导 extend.sql 补后台扩展表,然后复制 .env.example 为 .env 填连接信息,最后跑 php install.php 生成密码 hash。

本地调试一条命令就够:

php -S 127.0.0.1:8911 -t public public/index.php

四个入口分别是 /web/ PC 前台、/app 移动端、/admin 后台、/api/* 接口。文档根要指向 public 目录,.env 和 .git 必须在 Nginx 里显式禁掉。

上线前有两件事不能忘:替换 APP_TOKEN_SECRET,否则 Token 可以被伪造;替换后重新执行 php install.php 刷新密码 hash。

项目自带 e2e.php,覆盖 67 项 API 端到端验证,改完接口可以拿它回归。

需要认真对待的合规问题

这部分比技术细节更重要,我按看到的事实直说。

情报交易本身处于法律灰区。 系统里的”情报”没有内容边界,实际可能承载个人信息、商业机密甚至更敏感的数据。国内对个人信息买卖有明确刑事规定,平台方作为交易撮合者难以免责。

USDT 计价与提现是高风险组合。 全站以 USDT 计量,提现走加密货币通道,且预留了支付网关接口。这套结构容易被用于跨境资金转移,涉及外汇与反洗钱监管。

担保交易加悬赏模式容易被灰产利用。 匿名发布、托管放款、仲裁兜底,这套流程如果被用于数据买卖或代做任务,平台既是通道也是见证方。

端到端加密与监管留痕存在张力。 系统一边声称”平台不可解密”,一边保留了调阅审批流程和元数据风控。真运营起来,这个平衡点很难把握,法律上也未必站得住。

演示数据里含 96 条种子记录与多个演示账号,上线前应当清空,避免带着测试数据对外。

技术层面的建议:APP_TOKEN_SECRET 与 CRON_TOKEN 必须换成高强度随机串;.env、sql/、core/ 都要挡在公网外;支付网关回调必须验签且做重放保护;上线前用 e2e.php 全量回归一遍,再补充越权与金额篡改的负向测试。

适合谁研究

纯从工程角度看,这套代码有几个值得学的地方:不依赖框架怎么组织路由与控制器、担保交易状态机怎么设计得不容易出错、资金恒等式怎么在代码里落地校验、多端共用一套设计令牌怎么维护。

但如果你打算真拿它运营,请先把上面合规部分想清楚,并咨询专业法律意见。这类品类不是技术问题,是法律问题。


源码仅供学习研究与技术参考,请勿用于任何违法违规用途。因使用本源码产生的一切后果,由使用者自行承担。

Intel Exchange 情报交易与悬赏平台源码:三端 PHP 系统拆解 Intel Exchange 情报交易与悬赏平台源码:三端 PHP 系统拆解 Intel Exchange 情报交易与悬赏平台源码:三端 PHP 系统拆解