2025-12-24 11:19:48 +08:00
|
|
|
|
# MT Pay - 支付系统
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
|
|
|
|
|
## 项目简介
|
|
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
面向东南亚地区的电商支付系统,支持PayPal支付、商品管理、订单管理、货币转换等功能。
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
|
|
|
|
|
## 功能特性
|
|
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
- ✅ PayPal支付集成(创建订单、捕获支付、Webhook处理)
|
|
|
|
|
|
- ✅ 商品管理(商品、SKU、商品链接)
|
|
|
|
|
|
- ✅ 客户订单管理(支持东南亚地址格式)
|
|
|
|
|
|
- ✅ 货币转换(实时汇率,支持多币种)
|
|
|
|
|
|
- ✅ 百度翻译集成(商品名称、SKU名称自动翻译)
|
|
|
|
|
|
- ✅ 订单状态管理
|
2025-12-18 17:40:15 +08:00
|
|
|
|
- ✅ 支付记录管理
|
|
|
|
|
|
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
|
|
|
|
|
|
|
- Spring Boot 4.0.0
|
2025-12-24 11:19:48 +08:00
|
|
|
|
- MyBatis-Plus
|
|
|
|
|
|
- MySQL 5.7+
|
|
|
|
|
|
- Jackson (JSON处理)
|
2025-12-18 17:40:15 +08:00
|
|
|
|
- Lombok
|
2025-12-24 11:19:48 +08:00
|
|
|
|
- RestTemplate
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
## 快速开始
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
### 1. 数据库配置
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
执行数据库脚本(按顺序):
|
|
|
|
|
|
```sql
|
|
|
|
|
|
-- 1. 商品相关表
|
|
|
|
|
|
source database/customer_order_schema.sql;
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
-- 2. 货币转换字段
|
|
|
|
|
|
source database/customer_order_currency_update.sql;
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
-- 3. 地址字段(混合方案)
|
|
|
|
|
|
source database/customer_order_address_optimized.sql;
|
2025-12-18 17:40:15 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
### 2. 配置文件
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
编辑 `src/main/resources/application-dev.yml`:
|
|
|
|
|
|
- 数据库连接信息
|
|
|
|
|
|
- PayPal API凭证(Client ID、Client Secret)
|
|
|
|
|
|
- 百度翻译配置(App ID、Security Key)
|
|
|
|
|
|
- 阿里云OSS配置
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
### 3. 启动项目
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
mvn spring-boot:run
|
|
|
|
|
|
```
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
或
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
mvn clean package
|
|
|
|
|
|
java -jar target/mt-pay-0.0.1-SNAPSHOT.jar
|
|
|
|
|
|
```
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
### 4. 访问地址
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
- 后端API: http://localhost:8082/api
|
|
|
|
|
|
- Druid监控: http://localhost:8082/druid
|
|
|
|
|
|
- 前端地址: http://localhost:3000
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
## 核心API
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
### 商品管理
|
|
|
|
|
|
- `GET /api/product/{id}` - 获取商品详情
|
|
|
|
|
|
- `GET /api/product/link/{linkCode}` - 通过链接码获取商品
|
|
|
|
|
|
- `POST /api/product` - 创建商品
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
### 订单管理
|
|
|
|
|
|
- `POST /api/order` - 创建客户订单
|
|
|
|
|
|
- `GET /api/order/{orderNo}` - 获取订单详情
|
|
|
|
|
|
- `POST /api/order/calculate-currency-conversion` - 计算货币转换
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
### PayPal支付
|
|
|
|
|
|
- `POST /api/paypal/order` - 创建PayPal订单
|
|
|
|
|
|
- `POST /api/paypal/capture` - 捕获支付
|
|
|
|
|
|
- `POST /api/paypal/webhook` - Webhook回调
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
## 项目结构
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
com.mtkj.mtpay/
|
2025-12-24 11:19:48 +08:00
|
|
|
|
├── config/ # 配置类(PayPal、百度翻译、数据源等)
|
|
|
|
|
|
├── controller/ # REST控制器
|
2025-12-18 17:40:15 +08:00
|
|
|
|
├── dto/ # 数据传输对象
|
2025-12-24 11:19:48 +08:00
|
|
|
|
│ ├── request/ # 请求DTO
|
|
|
|
|
|
│ └── response/ # 响应DTO
|
2025-12-18 17:40:15 +08:00
|
|
|
|
├── entity/ # 实体类
|
|
|
|
|
|
├── exception/ # 异常处理
|
2025-12-24 11:19:48 +08:00
|
|
|
|
├── mapper/ # MyBatis Mapper
|
|
|
|
|
|
├── service/ # 业务服务层
|
|
|
|
|
|
│ └── impl/ # 服务实现
|
|
|
|
|
|
└── util/ # 工具类
|
2025-12-18 17:40:15 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
## 核心服务
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
- **ProductService**: 商品管理服务
|
|
|
|
|
|
- **CustomerOrderService**: 客户订单服务
|
|
|
|
|
|
- **PayPalService**: PayPal支付服务
|
|
|
|
|
|
- **PayPalWebhookService**: PayPal Webhook处理服务
|
|
|
|
|
|
- **ExchangeRateService**: 汇率转换服务
|
|
|
|
|
|
- **BaiduTranslatorUtils**: 百度翻译工具
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
## 配置说明
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
### PayPal配置
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
paypal:
|
|
|
|
|
|
client-id: your-client-id
|
|
|
|
|
|
client-secret: your-client-secret
|
|
|
|
|
|
mode: sandbox # sandbox 或 production
|
|
|
|
|
|
enabled: true
|
|
|
|
|
|
```
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
### 百度翻译配置
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
baidu:
|
|
|
|
|
|
translator:
|
|
|
|
|
|
app-id: your-app-id
|
|
|
|
|
|
securityKey: your-security-key
|
|
|
|
|
|
transApiHost: https://fanyi-api.baidu.com/api/trans/vip/translate
|
2025-12-18 17:40:15 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
## 数据库表
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
2025-12-24 11:19:48 +08:00
|
|
|
|
- `mt_product` - 商品表
|
|
|
|
|
|
- `mt_product_sku` - SKU表
|
|
|
|
|
|
- `mt_product_link` - 商品链接表
|
|
|
|
|
|
- `customer_order` - 客户订单表
|
|
|
|
|
|
- `payment_order` - 支付订单表
|
|
|
|
|
|
- `payment_record` - 支付记录表
|
|
|
|
|
|
|
|
|
|
|
|
## 地址字段设计
|
|
|
|
|
|
|
|
|
|
|
|
采用混合方案:
|
|
|
|
|
|
- **基础字段**(独立列):国家、城市、州/省、邮编、详细地址1/2
|
|
|
|
|
|
- **特殊字段**(JSON存储):各国特殊字段(组屋号、Barangay、泰文地址等)
|
|
|
|
|
|
|
|
|
|
|
|
详见:`database/customer_order_address_optimized.sql`
|
|
|
|
|
|
|
|
|
|
|
|
## 相关文档
|
|
|
|
|
|
|
|
|
|
|
|
- `SYSTEM_ARCHITECTURE.md` - 系统架构文档
|
|
|
|
|
|
- `../PAYPAL_WEBHOOK_GUIDE.md` - PayPal Webhook配置指南
|
|
|
|
|
|
- `../PAYPAL_TEST_ACCOUNT.md` - PayPal测试账号说明
|
2025-12-18 17:40:15 +08:00
|
|
|
|
|
|
|
|
|
|
## 许可证
|
|
|
|
|
|
|
|
|
|
|
|
MIT
|