DCSHOP 由「发卡商城主程序」和「授权中心/应用商店」两部分组成。主程序负责商品、订单、会员、分店、模板与插件运行;授权中心负责授权码、代理、应用上架、下载、升级和盗版监控。
| 模块 | 关键文件/模型 | 职责 |
|---|---|---|
| 商品与库存 | Goods_Model、Stock_Model、Api::getGoodsInfo() | 商品资料、SKU、会员价、库存、销量、卡密内容。 |
| 订单与发货 | Order_Model::deliver()、user/shop.php、Pay_Controller | 下单、支付、回调、余额支付、自动发货、库存扣减。 |
| 会员等级 | Member_Model、Level_Price、level_service.php | 会员价、等级权益、升级订单、续费、自动升级条件。 |
| 分店体系 | Station_Model、user/station.php | 分店开通、等级权限、分店商品、独立域名、分店收益和自动升级。 |
| 插件系统 | addAction()、doAction()、Storage | 业务钩子扩展、配置存储、支付方式注册、发货增强。 |
| 模板系统 | TplOptions、View、模板目录 | 前台、用户后台、底部导航、博客模板的安装、切换、配置。 |
| 应用市场 | Store_Model、license_server/store_api.php | 应用列表、详情、购买、月付、试用、下载、更新检查。 |
| 授权中心 | license_server/api.php、PluginLicense | 系统授权、插件授权、支付模板授权、版本更新、盗版上报。 |
init.php 加载配置、数据库、缓存、用户登录态、插件。user/shop.php/user/api.php;授权中心走 api.php/store_api.php。Database::getInstance()、各 Model、Option 和缓存读取数据。doAction(),插件可注册 addAction() 介入。用户选择商品/SKU/数量
↓
user/shop.php?action=xiadan
↓
Api::xiadan() 校验库存、价格、附加字段、优惠券
↓
写入 dc_order / dc_order_list / dc_order_required
↓
跳转支付:Pay_Controller::index()
↓
支付成功:同步/异步回调验签,更新 pay_status/status/pay_time
↓
Order_Model::deliver()
↓
触发 order_paid、deliver、deliver_after、deliver_complete 等钩子
↓
扣减库存、增加销量、写入发货内容、检查分店自动升级
不要硬编码表名。发卡主程序与授权中心均使用统一前缀和模型层访问数据,插件如需建表应使用安装 / 升级 SQL,并通过系统提供的前缀常量或模型能力获取真实表名。
$db->escape_string()。defined('DC_ROOT') || exit('access denied!');。PluginLicense::verify('slug'),不要自行绕过授权守护。