No Description

haojiwen 0431939097 update 3 weeks ago
crontabs 1555be6918 inst 3 weeks ago
key d0dcefafaf init 3 weeks ago
logs d0dcefafaf init 3 weeks ago
nginx d0dcefafaf init 3 weeks ago
php-fpm d0dcefafaf init 3 weeks ago
qita 1555be6918 inst 3 weeks ago
script d0dcefafaf init 3 weeks ago
www 0431939097 update 3 weeks ago
.gitignore d0dcefafaf init 3 weeks ago
AGENTS.md 0431939097 update 3 weeks ago
Dockerfile 1555be6918 inst 3 weeks ago
README.md d0dcefafaf init 3 weeks ago
docker-compose.yml 1555be6918 inst 3 weeks ago
nginx.conf 1555be6918 inst 3 weeks ago
supervisor.conf 1555be6918 inst 3 weeks ago

README.md

祈盟SDK(new_sdk)

内部代号:new_sdk | 业务名:祈盟SDK(Qimeng SDK) 项目类型:多租户游戏SDK聚合平台

为游戏发行商和渠道合作伙伴提供一站式接入与运营能力,核心能力包括:

  • 多渠道游戏发行(一次接入对接 45+ 渠道)
  • 多支付方式集成(聚合 10+ 支付渠道)
  • 跨游戏、跨渠道的用户统一管理
  • 数据统计、分析与风控
  • CPS 公会渠道分层管理

一、技术栈

组件 版本 / 说明
框架 ThinkPHP 5.0.7
PHP 7.0 - 7.2
数据库 MySQL
缓存 Redis
消息队列 Kafka / ThinkPHP queue
对象存储 阿里云 OSS、华为云 OBS
部署 Docker + docker-compose + Nginx + php-fpm

二、目录结构

项目根目录 c:\web\composer\qi_meng\new_sdk

├── docker-compose.yml / Dockerfile   # 容器化部署
├── nginx/                            # Nginx 配置
│   └── default.conf
├── php-fpm/                          # PHP-FPM 配置
│   ├── Dockerfile
│   ├── php-ini-overrides.ini
│   └── sources.list
├── crontabs/ script/                 # 定时任务与脚本
├── logs/                             # 日志目录
├── key/                              # 密钥
└── www/new_sdk/                      # 主项目(ThinkPHP5)
    ├── application/
    │   ├── admin/      # 后台(100+ 控制器)
    │   ├── api/        # 对外 API(v1 / v2 / mlbb / complex)
    │   ├── cps/        # 公会系统
    │   ├── common/     # 公共模型 / 工厂 / 服务
    │   └── crontab/    # 定时任务(14+)
    ├── extend/         # 第三方 SDK(支付宝、抖音游戏开放等)
    ├── public/         # 入口 + 静态资源 + mlbb/complex 特殊入口
    ├── doc/ doc_channel/ docs_12/ md/   # 各类文档
    └── tests/          # 单测

三、业务模块(12 大块)

| # | 模块 | # | 模块 | | - | ---------- | - | ------------ | | 1 | 用户体系 | 7 | 客服系统 | | 2 | 游戏管理 | 8 | 风控系统 | | 3 | 支付处理 | 9 | CPS 公会系统 | | 4 | 渠道管理 | 10 | 运营工具 | | 5 | 数据统计 | 11 | 自动打包 | | 6 | 内容管理 | 12 | MLBB 游戏专项 |


四、对外域名生态

用途 生产(7dgames.cn / qmgames.cn 测试(前缀加 dev
后台 sdkadmin devsdkadmin
支付回调 + API sdkapi devsdkapi
渠道 SDK 对接 sdkjhgame devsdkjhgame
公会后台 sdkcps devsdkcps
公会 API sdkcpsapi devsdkcpsapi
官网 sdkwww
渠道包下载 sdkdownapp devsdkdownapp
导出下载(Go) sdkdownreport devsdkdownreport
图片静态资源 sdkstatic devsdkstatic

五、关联仓库

仓库 职责
new_sdk(本仓库) 后台 + API + CPS_API
new_sdk_cps-admin CPS 公会后台
new_sdk_cps-py CPS 打包(Python)
new_sdk_ws 相关通知服务(WebSocket)
new_sdk_go Excel 导出 & 发放游戏礼包

六、核心架构

┌────────────────────────────────────────────────────────────┐
│ 用户接入层   游戏App │ Web端 │ 渠道SDK │ 公会系统           │
├────────────────────────────────────────────────────────────┤
│ API 网关层   v1 / v2 / mlbb / complex                       │
├────────────────────────────────────────────────────────────┤
│ 业务逻辑层   支付中心 │ 用户中心 │ 渠道适配 │ 统计聚合       │
├────────────────────────────────────────────────────────────┤
│ 数据访问层   用户 / 支付 / 游戏 / 统计 模型                  │
├────────────────────────────────────────────────────────────┤
│ 基础设施层   MySQL │ Redis │ Kafka │ OSS │ 短信/推送 │ 钉钉 │
└────────────────────────────────────────────────────────────┘

关键流程

  • 游戏接入:接入 → 渠道配置 → SDK 打包 → 分发 → 数据采集
  • 支付:下单(nw_pay)→ 调用支付 SDK → 用户支付 → 异步回调(nw_pay_cpinfo)→ 验签 → 发货(nw_member_coin)→ 通知游戏服务器
  • 渠道分层:平台 → B+ 级(总代)→ B 级(分销)→ B- 级(子分销)→ 推广员

核心数据表

nw_members / nw_subaccount / nw_bind         用户体系
nw_channel / nw_channel_ca / nw_channel_frozen  渠道
cy_game / cy_game_package                    游戏
nw_pay / nw_member_coin                      支付 & 余额
nw_complex_summary_*                         统计汇总
nw_channel_share                             CPS 分成配置

七、外部依赖

  • 支付渠道(10+):支付宝(APP/H5/扫码)、微信支付(H5/小程序/扫码)、易宝、联动优势、趣智连、喜钛游、全民付…
  • 云服务:阿里云 OSS、华为云 OBS、阿里云短信、钉钉告警机器人
  • 第三方 API:176Park、MLBB、抖音广告追踪

八、项目现状与重构规划

现状特征

  • 功能完整,覆盖游戏 SDK 全链路
  • 业务复杂,多租户、多渠道、多支付
  • 技术债务:ThinkPHP 5.0.7 已过时、PHP 7.0-7.2 官方停止维护
  • 代码质量:缺乏统一规范、无测试覆盖、耦合度高

主要痛点

  1. PaymentController 约 2000 行,逻辑混乱
  2. 45+ 个 Channel SDK 存在大量重复代码
  3. 80+ 个数据模型缺乏统一规范
  4. 无测试覆盖,改一处可能影响多处
  5. 大量同步阻塞调用影响性能

重构文档索引(www/new_sdk/docs_12/

01_项目概览.md              全局认知
02_痛点清单.md              痛点盘点
03_模块矩阵.md              模块划分
04_架构设计方案.md          目标架构
05_重构实施方案.md          落地方案
06_SDK渠道架构优化方案.md   45+ 渠道 SDK 标准化
07_极简SDK重构方案.md       SDK 极简版
08_签名系统终极方案.md      签名体系重构
09_全部文档总结.md          总结
README_SDK重构总结.md
README_决策版.md

九、环境要求

类型 配置
服务器 2 核 4G
打包服务器 2 核 8G
数据库 2 核 8G
Redis 2 核 4G
带宽 5M
开发栈 PHP + MySQL + Redis + WS + Go + Python

必备:mysql / redis / docker / git。

需要准备的第三方资源

  • 域名
  • 阿里云 OSS(或华为云 OBS)
  • 阿里云短信
  • 支付宝支付(wap / 扫码)
  • 微信支付(h5 / 扫码)
  • 钉钉预警机器人(可选,充值异常 / 特殊回调异常)

十、部署与构建

容器化部署(推荐)

docker-compose up -d --build

目录配置要点

  • nginx/default.conf:Nginx 站点配置
  • php-fpm/php-ini-overrides.ini:PHP 配置覆盖
  • docker-compose.yml:容器编排
  • Dockerfile:PHP-FPM 镜像构建

队列(支付异步回调)

# 生产:守护进程(性能最高,改代码需重启)
php think queue:work --queue asyncCallback --daemon

# 调试:热更新
php think queue:listen --queue asyncCallback

# 后台挂起
nohup php think queue:work --queue asyncCallback --daemon > /dev/null 2>&1 &
参数 说明
delay 任务失败后延迟多少秒重试(默认 0)
force 维护模式下仍强制运行
memory 允许占用的最大内存(默认 128M)
sleep 队列空闲时进程休眠秒数(默认 3)
tries 任务失败最大重试次数(默认 0 = 无限重试)

十一、API 响应码约定

100 = 登录失效
110 = 请求参数有误
120 = 请求处理过程提示
130 = 执行异常
200 = 正常

十二、常用运维命令

# 查询某天的日志文件列表及对应时间
ls runtime/log/apilog/202603/*02.log | awk -F'/' '{print $NF}' \
  | awk -F'-' '/^[0-9]+-/{cmd="date -d @"$1" +\"%Y-%m-%d %H:%M:%S\""; cmd | getline date; close(cmd); print date,$0}'

# 查询某天日志中是否包含某订单号
ls runtime/log/apilog/202603/*23.log | while read f; do \
  grep -q "WL17742374917242139316" "$f" && { \
    d=$(date -d @"$(basename "$f" | awk -F'-' '{print $1}')" +"%F %T"); \
    echo "$d $(basename "$f")"; \
  }; \
done

十三、其他代码入口

  • WS 通知管理

    • www/new_sdk/public/static/js/wsbusiness.js
    • www/new_sdk/public/static/js/link_to_wsocket.js
  • 当前仓库缺少 / 需另行对接

    • 报表生成服务(app\common\library\MakeReportGo,关联 Go 程序)
    • 渠道打包(app\common\logic\SubPackage,关联 Python 程序)
    • Workerman 相关配置

十四、上手建议

如果你要上手或推进工作,推荐按此顺序:

  1. www/new_sdk/docs_12/01_项目概览.md + 02_痛点清单.md 建立全局认知
  2. 09_全部文档总结.md 把握重构总体思路
  3. 支付模块重点看 application/common/factory/Pay.phpapplication/api/controller/v1/PayNotify.php
  4. 渠道 SDK 看 06_SDK渠道架构优化方案.md + extend/ 目录
  5. 风控看根目录 risk_control_tables.sqlapplication/admin/controller/ 下风控相关控制器

参考