hafiz-asad-2554/E-Commerce-Fraud-Detection-Prevention
GitHub: hafiz-asad-2554/E-Commerce-Fraud-Detection-Prevention
一套融合 Laravel 电商平台与 FastAPI 机器学习引擎的全栈电商欺诈检测与防范系统,通过规则与 ML 模型双重机制在结账环节实时识别风险交易。
Stars: 0 | Forks: 0
# 电子商务欺诈检测与防范系统
**店铺:** 安全购物
**提交者:** Hafiz Muhammad Asad Mustafa (S23NDOCS1M01042)
**大学:** The Islamia University of Bahawalpur, Bahawalnagar Campus
带有**基于规则的欺诈检查 (Laravel)** 和 **ML 欺诈引擎 (FastAPI)** 的全栈电子商务系统。
## 项目结构
```
E-Commerce Fraud Detection & Prevention/
├── ecommerce Site/
│ ├── frontend/ # HTML/CSS/JS storefront (port 5500)
│ ├── backend/ # Laravel 12 API + admin (port 8000)
│ ├── start-backend.bat
│ └── start-frontend.bat
└── fraud detection engine/
├── backend/ # FastAPI + ML (port 8001)
├── datasets/ # Training CSV samples
├── model/ # Trained model artifacts
├── database/ # Sample transactions DB scripts
├── setup-ml-and-db.bat
└── start-engine.bat
```
## 前置条件
- PHP 8.2+ 和 [Composer](https://getcomposer.org/)
- Python 3.11+
- Git
## 一次性设置
### 1. Laravel 后端
```
cd "ecommerce Site\backend"
composer install
copy .env.example .env
php artisan key:generate
php artisan migrate --seed
php artisan storage:link
```
可选 — 主页轮播图和 Kaggle 风格的产品图片:
```
php artisan db:seed --class=HeroSlideSeeder
php artisan db:seed --class=KaggleProductSeeder
php artisan products:sync-local-images --max=4
php artisan db:seed --class=ContactSeeder
```
产品图片从 `ecommerce Site\frontend\assets\images\products\` 读取 (CSV + `e-commerce/images/`)。
### 2. 欺诈检测引擎
```
cd "fraud detection engine\backend"
python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
cd ..
.\setup-ml-and-db.bat
```
这将训练模型 (`model/fraud_model.joblib`) 并创建示例 SQLite 数据库 (`database/fraud_transactions.db`)。
## 运行(需要 3 个终端)
| # | 命令 | URL |
|---|---------|-----|
| 1 | `ecommerce Site\start-backend.bat` | http://127.0.0.1:8000 |
| 2 | `fraud detection engine\start-engine.bat` | http://127.0.0.1:8001/docs |
| 3 | `ecommerce Site\start-frontend.bat` | http://127.0.0.1:5500 |
| 页面 | URL |
|------|-----|
| 商城 | http://127.0.0.1:5500/index.html |
| 结账 | http://127.0.0.1:5500/checkout.html |
| 管理后台 | http://127.0.0.1:8000/admin/login |
| ML 仪表盘 | http://127.0.0.1:8001/dashboard |
**管理员登录:** `admin@iub.edu.pk` / `password`
如果需要,请在 `ecommerce Site/frontend/js/config.js` 中将 `API_BASE_URL` 设置为 `http://127.0.0.1:8000/api`。
## 测试
### FastAPI 健康检查与预测
```
curl.exe http://127.0.0.1:8001/health
curl.exe -X POST http://127.0.0.1:8001/predict -H "Content-Type: application/json" -d "{\"amount_pkr\":200000,\"city\":\"Lahore\",\"ip_region\":\"sindh\",\"payment_method\":\"card\",\"previous_orders_24h\":5,\"account_age_days\":0.3,\"is_new_account\":true,\"items_count\":1}"
```
对于上面的示例数据,预期会有较高的 `combined_score` / `"risk_level": "High"`。
### 示例交易数据库
```
cd "fraud detection engine\database"
python ..\database\seed_database.py
.\view-sample-db.bat
```
或者使用 [DB Browser for SQLite](https://sqlitebrowser.org/) 打开 `fraud_transactions.db`。
### 店铺欺诈演示(Laravel 规则)
1. **高金额** — 笔记本电脑 Rs. 145,000+
2. **位置不匹配** — 城市为 Lahore,而模拟区域为 Karachi
3. **频率** — 同一用户在 30 分钟内下单 3 次以上
在 **管理后台 → 欺诈检测** 中查看被标记的订单。
## 功能
- 客户商城:产品、购物车、多步骤结账、地理提示、支付验证
- 管理后台:产品(多图上传)、分类、订单、用户、主页轮播图、欺诈模块
- FastAPI:混合 ML + 规则,`/predict`,带有预测日志记录的 `/dashboard`
## API (Laravel)
Base URL: `http://127.0.0.1:8000/api`
| 方法 | Endpoint | 描述 |
|--------|----------|-------------|
| POST | `/register`, `/login` | 认证 (Sanctum) |
| GET | `/products`, `/categories`, `/slides` | 目录与首页 |
| GET | `/checkout/geo` | IP 地理位置提示 |
| POST | `/orders` | 下单(欺诈检查) |
管理面板路由位于 `/admin/*` 下 (session 认证)。
## 重新训练 ML 模型
```
cd "fraud detection engine\backend"
.\venv\Scripts\activate
python train.py
python ..\database\seed_database.py
```
## 故障排除
| 问题 | 解决方案 |
|---------|-----|
| 登录出现 `Failed to fetch` | 启动 `start-backend.bat`;释放 8000 端口 |
| FastAPI 出现 `model not trained` | 运行 `setup-ml-and-db.bat` |
| 8001 端口被占用 | 停止其他 Python/uvicorn 进程 |
| 产品图片缺失 | 运行 `php artisan storage:link` 并执行图片填充器 |
| 旧的缓存结账页面 | 在结账页面强制刷新 (`Ctrl+F5`) |
## 联系方式
**Hafiz Muhammad Asad Mustafa** — hafizasad2554@gmail.com — S23NDOCS1M01042
*学期项目 — 计算机科学系 — Islamia University of Bahawalpur — (Bahawalnagar Campus) *
标签:Apex, AV绕过, FastAPI, ffuf, Laravel, 反欺诈, 机器学习, 电子商务, 风险控制