开发文档

产品使用文档与部署教程,持续更新中

首页>文档>开发文档

云枢交友盲盒系统V1.0 · 开发文档

一、技术架构

  • 形态:原生 PHP(无框架、无 Composer 依赖)手机端交友盲盒系统;PHP 8.2(推荐) / MySQL 5.7+ / MariaDB 10.3+;
  • 必需扩展:PDO、PDO_MySQL、GD(生成推广二维码);建议 php.ini 设 date.timezone = Asia/Shanghai;
  • 自带安装向导:上传源码 → 访问 /install/ 按向导填库信息 → 装完删除 install/ 目录;
  • 后台:/admin/login.php(管理员是全局单账号,存在 mh_config 表);月老(代理)后台:/user/(每个会员自己的推广/收益面板)。

二、目录结构

程序根/
├── index.php         # 前台入口(?mod=xxx 路由到 view/xxx.php)
├── config.php        # 数据库配置(安装向导生成:host/port/user/pwd/dbname/dbqz)
├── install.lock      # 安装锁(删掉可重装)
├── core/
│   ├── core.php      # 引导(配置、站点、登录态、公共变量)
│   ├── db.class.php  # 数据库类($DB->getRow/getColumn/query)
│   └── function.php  # 公共函数(config()/pwd_make()/pwd_check()/chouqu() 等)
├── admin/            # 管理后台(盲盒列表/用户/分站/收支/设置/轮播/支付配置)
├── user/             # 月老后台(首页/用户列表/代理列表/收支明细/推广图片/提现/站点设置)
├── view/             # 前台手机端页面(index 首页 / toudi 存信息 / manghe 我的记录 /
│                     #   user 我的 / set 资料 / login 登录 / jiameng 加盟)
├── pay/              # 易支付接入(epay.config.php / notify_url.php / return_url.php)
├── public/           # 静态资源(前台 + 后台 CSS/JS/图片)
└── install/ install.sql   # 安装向导与建库脚本(装完删 install/)

三、数据库

  • 表前缀默认 mh(安装时可改),共 7 张表:
  • mh_config:全局配置(k/v 两列)—— 站点信息、客服、抽取/投递/加盟价格、积分规则、提现开关、易支付参数(epay_url/epay_id/epay_key)、管理员账号 name/pwd;
  • mh_user:会员(user / bcrypt 密码 pwd / 余额 rmb / 积分 jifen / 月老到期 dltime / 状态 status);
  • mh_manghe:盲盒池(资料的性别/微信/城市/头像,ok=1 表示审核通过可抽,for_user 记录被谁抽走、from_user 记录谁投递的);
  • mh_site:月老分站(user 关联月老账号,url 支持绑定二级域名,toudi/chouqu/daili 是该分站自定义价格);
  • mh_point:收支明细(user 账号名 + money + type/content);
  • mh_tixian:提现申请(user 存账号名,status 审核状态);
  • mh_pay:充值/支付订单。

四、关键机制

4.1 抽盲盒流程

前台「抽对象/抽女神」调用 view/ajax.php?act=manghe → core/function.php 的 chouqu():从 mh_manghe 里挑一条 for_user IS NULL AND ok='1' AND sex=目标 AND from_user!=自己 的记录,写入 for_user/endtime/ip 即视为被抽走。做二开(例如「放回池子」)就是把这几个字段置回 NULL。

4.2 登录态

前台登录:(view/ajax.php?act=user_login)成功后种 cookie userName + userToken(= md5(账号 . 密码哈希));账号不存在时会自动注册(首次登录即注册)。月老后台 /user/ 额外要求:dltime 未过期 且 mh_site 里有本账号的行。

4.3 密码

会员密码 bcrypt(pwd_make() = password_hash,pwd_check() 兼容旧明文并在首次登录时自动升级)。管理员密码同样存 mh_config.pwd(bcrypt)。

4.4 支付

易支付接入在 pay/:配置在后台「支付配置」(mh_config 的 epay_url/pid/key),回调 notify_url.php(异步)/ return_url.php(同步),协议与彩虹易支付一致。

五、二次开发指引

  • 改前台:模板在 view/(手机端页面),样式在 public/index/css/;
  • 加前台页面:新建 view/xxx.php,访问 ?mod=xxx 即可(入口按文件名分发);
  • 加后台页面:照 admin/ 下现成页面(head.php + foot.php 复用),并在 admin/head.php 加菜单;
  • 改配置:后台「系统管理 → 盲盒设置」对应 mh_config 的键;新加配置直接往 mh_config 插一行,代码里用 config('键名') 读;
  • 注意:config.php、install.lock 别外泄/别删;分站绑定二级域名要在站点解析里把泛解析指过来。

六、部署与运维

  • 安装:上传 → /install/ 填库 → 删除 install/ 目录 → 后台确认「程序信息」正常;
  • 计划任务:可每天定时清理过期的月老资格与超时未支付订单(按业务自行加脚本);
  • 备份:库(7 张表)+ 站点目录即可;换域名后前台/后台/分站的站点配置都要核对一遍。