# Active eCommerce Offline Payment Addon
## 项目概述
- **项目类型**:Laravel电商系统插件/Addon
- **主要功能**:为Active eCommerce CMS提供离线支付方式支持,允许客户通过银行转账、现金等离线方式完成支付
- **技术栈**:PHP、Laravel、Blade模板引擎、MySQL
## 模块结构
```
offline_payment/
├── assets/
│ └── offline_banner.jpg # 插件横幅图片
├── controllers/
│ └── ManualPaymentMethodController.php # 手动支付方式控制器
├── documentation/
│ └── documentation.pdf # 插件文档
├── sql/
│ ├── 1.1.sql ~ 1.6.sql # 版本更新SQL脚本
│ └── update.sql # 数据库更新脚本
├── views/
│ └── manual_payment_methods/
│ ├── create.blade.php # 创建支付方式页面
│ ├── edit.blade.php # 编辑支付方式页面
│ ├── index.blade.php # 支付方式列表
│ ├── table.blade.php # 支付方式表格
│ ├── customer_package_payment_request.blade.php # 客户套餐支付请求
│ ├── seller_package_payment_request.blade.php # 卖家套餐支付请求
│ ├── wallet_modal.blade.php # 钱包模态框
│ ├── wallet_request.blade.php # 钱包请求页面
│ └── frontend/ # 前端视图
│ ├── offline_customer_package_purchase_modal.blade.php
│ ├── offline_order_re_payment_modal.blade.php
│ ├── offline_seller_package_purchase_modal.blade.php
│ ├── payment_receipt.blade.php
│ └── payment_receipt_modal.blade.php
└── config.json # 插件配置文件
```
## 核心业务逻辑
### 1. 离线支付流程
1. **支付方式管理**:管理员可在后台创建和管理多种离线支付方式(银行转账、现金支付等)
2. **支付请求处理**:
- 客户选择离线支付方式后提交支付请求
- 上传支付凭证(收据截图)
- 等待管理员审核确认
3. **订单状态管理**:
- 待确认 (Pending)
- 已确认 (Confirmed)
- 已拒绝 (Rejected)
4. **多场景支持**:
- 普通订单支付
- 客户套餐购买
- 卖家套餐购买
- 钱包充值
### 2. 核心功能模块
- **ManualPaymentMethodController**:处理所有离线支付相关的业务逻辑
- **支付凭证上传**:支持图片上传作为支付证明
- **审核系统**:管理员可审核、批准或拒绝支付请求
- **通知系统**:支付状态变更时通知相关用户
## 核心代码分析
### config.json 配置分析
```json
{
"name": "Offline Payment",
"unique_identifier": "offline_payment",
"version": "1.7",
"minimum_item_version": "10.4.1",
"addon_banner": "offline_banner.jpg",
"directory": [...],
"files": [...]
}
```
- 版本:1.7
- 最低主程序版本要求:10.4.1
- 采用文件映射方式安装到主系统
### 控制器核心方法
**ManualPaymentMethodController** 主要功能:
- `index()` - 显示支付方式列表
- `create()` / `store()` - 创建新支付方式
- `edit()` / `update()` - 编辑支付方式
- `paymentRequest()` - 处理支付请求
- `verifyPayment()` - 验证支付凭证
### 数据库设计
SQL脚本包含以下核心表结构:
- 支付方式配置表
- 支付请求记录表
- 支付凭证附件表
- 订单支付状态关联表
## 技术特点
1. **插件化架构**:作为Addon扩展主系统功能,不影响核心代码
2. **模块化设计**:MVC架构,业务逻辑与视图分离
3. **多语言支持**:支持多语言界面
4. **安全验证**:文件上传验证、支付金额校验
5. **版本兼容**:支持Active eCommerce CMS 10.4.1+
## 适用场景
- 需要支持银行转账的电商网站
- 现金支付需求的线下业务
- 需要人工审核支付凭证的场景
- 发展中国家/地区支付方式受限的场景