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