Initial commit: AIGC项目完整代码
This commit is contained in:
151
demo/PAYMENT_CONFIG.md
Normal file
151
demo/PAYMENT_CONFIG.md
Normal 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等工具测试本地回调
|
||||
|
||||
## 扩展功能
|
||||
|
||||
可以进一步扩展的功能:
|
||||
- 退款功能
|
||||
- 支付统计
|
||||
- 支付报表
|
||||
- 批量支付
|
||||
- 分期付款
|
||||
|
||||
Reference in New Issue
Block a user