Files
MTKJPAY/mt-pay
qiube 9c622324a5 feat(util): 添加Token工具类实现
- 实现了基于MD5+Base64的Token生成功能
- 实现了Token验证和用户信息解析功能
- 添加了Token过期时间检查机制
- 提供了7天默认过期时间配置
- 集成了日志记录和异常处理
- 包含了Token密钥安全配置机制
2025-12-25 10:03:53 +08:00
..

MT Pay - 支付系统

项目简介

面向东南亚地区的电商支付系统支持PayPal支付、商品管理、订单管理、货币转换等功能。

功能特性

  • PayPal支付集成创建订单、捕获支付、Webhook处理
  • 商品管理商品、SKU、商品链接
  • 客户订单管理(支持东南亚地址格式)
  • 货币转换(实时汇率,支持多币种)
  • 百度翻译集成商品名称、SKU名称自动翻译
  • 订单状态管理
  • 支付记录管理

技术栈

  • Spring Boot 4.0.0
  • MyBatis-Plus
  • MySQL 5.7+
  • Jackson (JSON处理)
  • Lombok
  • RestTemplate

快速开始

1. 数据库配置

执行数据库脚本(按顺序):

-- 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. 启动项目

mvn spring-boot:run

mvn clean package
java -jar target/mt-pay-0.0.1-SNAPSHOT.jar

4. 访问地址

核心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配置

paypal:
  client-id: your-client-id
  client-secret: your-client-secret
  mode: sandbox  # sandbox 或 production
  enabled: true

百度翻译配置

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