Initial commit: AIGC项目完整代码

This commit is contained in:
AIGC Developer
2025-10-21 16:50:33 +08:00
commit 47c8e02ab0
137 changed files with 30676 additions and 0 deletions

151
demo/PAYMENT_CONFIG.md Normal file
View File

@@ -0,0 +1,151 @@
# 支付接入功能配置说明
## 功能概述
本项目已成功集成支付宝和PayPal两种支付方式提供完整的支付解决方案。
## 支付方式
### 1. 支付宝 (Alipay)
- **适用场景**: 中国大陆用户
- **支持货币**: 人民币 (CNY)
- **支付流程**: 网页支付
- **回调机制**: 异步通知 + 同步返回
### 2. PayPal
- **适用场景**: 国际用户
- **支持货币**: 美元 (USD)、欧元 (EUR) 等
- **支付流程**: PayPal账户支付
- **回调机制**: Webhook通知 + 同步返回
## 配置参数
### 开发环境配置 (application-dev.properties)
```properties
# 支付宝配置 (开发环境)
alipay.app-id=your_app_id
alipay.private-key=your_private_key
alipay.public-key=your_public_key
alipay.gateway-url=https://openapi.alipaydev.com/gateway.do
alipay.charset=UTF-8
alipay.sign-type=RSA2
alipay.notify-url=http://localhost:8080/payment/alipay/notify
alipay.return-url=http://localhost:8080/payment/alipay/return
# PayPal配置 (开发环境)
paypal.client-id=your_paypal_client_id
paypal.client-secret=your_paypal_client_secret
paypal.mode=sandbox
paypal.return-url=http://localhost:8080/payment/paypal/return
paypal.cancel-url=http://localhost:8080/payment/paypal/cancel
```
### 生产环境配置 (application-prod.properties)
```properties
# 支付宝配置 (生产环境)
alipay.app-id=${ALIPAY_APP_ID}
alipay.private-key=${ALIPAY_PRIVATE_KEY}
alipay.public-key=${ALIPAY_PUBLIC_KEY}
alipay.gateway-url=https://openapi.alipay.com/gateway.do
alipay.charset=UTF-8
alipay.sign-type=RSA2
alipay.notify-url=${ALIPAY_NOTIFY_URL}
alipay.return-url=${ALIPAY_RETURN_URL}
# PayPal配置 (生产环境)
paypal.client-id=${PAYPAL_CLIENT_ID}
paypal.client-secret=${PAYPAL_CLIENT_SECRET}
paypal.mode=live
paypal.return-url=${PAYPAL_RETURN_URL}
paypal.cancel-url=${PAYPAL_CANCEL_URL}
```
## 数据库表结构
### payments 表
```sql
CREATE TABLE payments (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
order_id VARCHAR(50) NOT NULL UNIQUE,
amount DECIMAL(10,2) NOT NULL,
currency VARCHAR(3) NOT NULL DEFAULT 'CNY',
payment_method VARCHAR(20) NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
description VARCHAR(500),
external_transaction_id VARCHAR(100),
callback_url VARCHAR(1000),
return_url VARCHAR(1000),
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
paid_at TIMESTAMP NULL,
user_id BIGINT,
FOREIGN KEY (user_id) REFERENCES users(id)
);
```
## API 端点
### 支付相关端点
- `GET /payment/create` - 显示支付表单
- `POST /payment/create` - 创建支付订单
- `GET /payment/history` - 支付记录列表
- `GET /payment/detail/{id}` - 支付详情
### 支付宝回调端点
- `POST /payment/alipay/notify` - 异步通知
- `GET /payment/alipay/return` - 同步返回
### PayPal回调端点
- `GET /payment/paypal/return` - 支付返回
- `GET /payment/paypal/cancel` - 支付取消
- `POST /payment/paypal/webhook` - Webhook通知
## 支付状态
- `PENDING` - 待支付
- `PROCESSING` - 处理中
- `SUCCESS` - 支付成功
- `FAILED` - 支付失败
- `CANCELLED` - 已取消
- `REFUNDED` - 已退款
## 使用说明
### 1. 配置支付参数
`application-dev.properties` 中配置您的支付参数:
- 支付宝:需要申请支付宝开放平台应用
- PayPal需要申请PayPal开发者账户
### 2. 启动应用
```bash
mvn spring-boot:run
```
### 3. 访问支付功能
- 登录后访问 `/payment/create` 创建支付
- 访问 `/payment/history` 查看支付记录
## 安全注意事项
1. **密钥管理**: 生产环境使用环境变量存储敏感信息
2. **签名验证**: 所有回调都进行签名验证
3. **HTTPS**: 生产环境必须使用HTTPS
4. **权限控制**: 用户只能查看自己的支付记录
## 测试建议
1. **支付宝测试**: 使用支付宝沙箱环境进行测试
2. **PayPal测试**: 使用PayPal沙箱模式进行测试
3. **回调测试**: 使用ngrok等工具测试本地回调
## 扩展功能
可以进一步扩展的功能:
- 退款功能
- 支付统计
- 支付报表
- 批量支付
- 分期付款