# 应用商店插件 **Repository Path**: ywxmz/app-store-plugin ## Basic Information - **Project Name**: 应用商店插件 - **Description**: 站内应用商店生态 面向 Xiuno BBS X 1.1.x的站内应用商店插件集:本地商店 + 远程市场 + 推送桥接,三位一体,构建完整的插件分发闭环。 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-08-08 - **Last Updated**: 2026-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 站内应用商店生态 > 面向 **Xiuno BBS X 1.1.x** 的站内应用商店插件集:本地商店 + 远程市场 + 推送桥接,三位一体,构建完整的插件分发闭环。 ## 项目简介 本仓库包含三个相互协作的 Xiuno BBS X 插件,共同组成一套完整的站内应用商店生态: | 插件 | 版本 | 类型 | 定位 | | --- | --- | --- | --- | | [navgcn_store](#1-navgcn_store-插件应用商店) | 1.1.0 | 前台 + 后台 | 站内应用商店:浏览、搜索、购买、下载 | | [navgcn_market](#2-navgcn_market-插件市场) | 1.0.0 | 后台 | 远程插件市场客户端:双数据源一键安装/升级 | | [navgcn_storepush](#3-navgcn_storepush-商店推送) | 1.0.0 | 后台 + cron | 推送桥接:审核通过的应用自动推送至独立仓库 | 生态协作关系: ``` 开发者提交应用 ──> 后台审核通过 ──> storepush 自动推送 │ ▼ 独立插件仓库(repo-server / Gitee) │ ▼ navgcn_market 拉取清单,一键安装/升级 ▲ 站内用户 ──> navgcn_store 浏览/购买/下载 ``` ## 目录结构 ``` Appstore/ ├── navgcn_market/ # 插件市场(远程插件市场客户端,纯后台) ├── navgcn_store/ # 插件应用商店(站内商店前台 + 后台管理) ├── navgcn_storepush/ # 商店推送(自动/手动推送至独立仓库) ├── LICENSE # MIT 许可证 └── README.md ``` ## 1. navgcn_store 插件应用商店 站内应用商店前台:以站内应用库(`navgcn_store_app` 审核通过的应用)为唯一数据源,提供浏览、搜索、筛选、购买与下载。 **核心功能** - **应用商店前台**:列表/详情页完全以站库数据为准,分类聚合、搜索/筛选/排序/分页,不访问任何远端仓库 - **购买与下载**:免费应用直接下载,付费应用购买后下载;支持金币 / RMB 双支付类型 - **我的插件**:个人中心查看已购买与已安装插件 - **后台管理**:支付/安全/前台显示开关、订单记录、操作日志、分类管理 - **安全扫描**:插件 ZIP 包危险函数黑名单、目录穿越检测,安装前强制校验 - **多语言**:简体中文、繁体中文、英文三语支持 **技术要点**:5 张数据表(utf8mb4)|Bootstrap 5.3 + Tabler Icons|购买流程 `GET_LOCK` 串行化 + 订单失败回滚扣款|`download_count` CAS 原子自增 **入口 URL**:商店首页 `?navgcn_store.htm`|应用详情 `?navgcn_store-detail.htm`|后台管理 `admin/?navgcn_store.htm` ## 2. navgcn_market 插件市场 纯后台插件:远程插件市场客户端,数据源在代码内硬编码(Gitee 仓库 + 自建仓库 repo-server),后台一键浏览清单、安装/升级免费插件,无后台设置项。 **核心功能** - **双源故障转移**:主源(Gitee)失败自动切换自建仓库备用源,降级期间页面缓存秒开,主源恢复自动切回 - **插件状态比对**:`not_installed` / `paid` / `latest` / `need_upgrade`,支持免费/付费筛选、分类筛选与关键词搜索 - **一键安装/升级**:下载 zip → 魔数与结构校验 → 解压 → 移动 → 安装/升级 → 冲突插件自动禁用 - **升级回滚**:升级失败自动恢复旧目录并重同步数据库 - **安全防护**:URL 安全校验(防 SSRF)、zip 校验(魔数/条目数/大小限流/路径穿越/符号链接拒绝)、下载限流 50MB **数据源配置**:硬编码于 `model/NavgcnMarketService.php` 顶部常量(`SOURCE_MAIN` / `GITEE_REPO_URL` / `SELF_BASE_URL` / `CACHE_TTL` 等),修改后生效。 ## 3. navgcn_storepush 商店推送 站内应用商店生态的推送桥接插件:把审核通过(status=1)的应用自动/手动推送到独立插件仓库,使商店前台与仓库保持同步。 **核心功能** - **自动推送**:5 分钟 cron 轮询,每次最多处理 `push_limit` 个(默认 5),单条失败不影响后续 - **手动推送**:单条推送、一键全部推送、对已推送版本强制推送覆盖远端 - **双推送目标**:自建仓库(repo-server,X-Api-Key 鉴权,免费传 zip / 付费登记 detail_url)或 Gitee 仓库(Contents API,免费上传 zip + 图标并同步 `manifest.json`) - **连接测试**:后台分别测试自建仓库 API 与 Gitee 令牌/仓库/分支连通性 - **推送记录**:每次推送写入 `navgcn_storepush_record`,可查历史 ## 系统要求 | 项目 | 要求 | | --- | --- | | 论坛系统 | Xiuno BBS X 1.1.x(bbs_version 1.1) | | PHP | 7.4+(推荐 8.x) | | 数据库 | MySQL / MariaDB(utf8mb4) | | 扩展 | `ZipArchive`、`curl` 或 `allow_url_fopen`(navgcn_market 必需) | ## 安装说明 1. 将对应插件目录(如 `navgcn_store/`)整体上传至论坛根目录 `plugin/` 下; 2. 登录论坛后台,进入「插件管理」→「安装」对应插件; 3. 按需配置: - **navgcn_storepush**:后台「商店推送」配置推送目标、API 密钥 / Gitee 令牌; - **navgcn_market**:如需更换数据源,修改 `model/NavgcnMarketService.php` 顶部常量; 4. 依赖关系:`navgcn_storepush` 依赖 `navgcn_store` 已安装(共享 `navgcn_store_app` 表),未安装时后台提示、cron 静默跳过。 ## 许可证 本项目基于 [MIT License](./LICENSE) 开源。 Copyright (c) 2026 一碗小米粥