140 lines
3.7 KiB
Markdown
140 lines
3.7 KiB
Markdown
|
|
# 支付配置说明
|
|||
|
|
|
|||
|
|
## 支付宝配置
|
|||
|
|
|
|||
|
|
### 1. 申请支付宝开放平台应用
|
|||
|
|
1. 访问 [支付宝开放平台](https://open.alipay.com/)
|
|||
|
|
2. 注册开发者账号
|
|||
|
|
3. 创建应用,选择"网页&移动应用"
|
|||
|
|
4. 获取应用信息:
|
|||
|
|
- APPID
|
|||
|
|
- 应用私钥
|
|||
|
|
- 支付宝公钥
|
|||
|
|
|
|||
|
|
### 2. 配置沙箱环境
|
|||
|
|
1. 在开放平台控制台启用沙箱环境
|
|||
|
|
2. 获取沙箱应用信息
|
|||
|
|
3. 下载沙箱版支付宝APP进行测试
|
|||
|
|
|
|||
|
|
### 3. 更新配置文件
|
|||
|
|
在 `application-dev.properties` 中更新以下配置:
|
|||
|
|
|
|||
|
|
```properties
|
|||
|
|
# 支付宝沙箱配置
|
|||
|
|
alipay.app-id=你的沙箱APPID
|
|||
|
|
alipay.private-key=你的应用私钥
|
|||
|
|
alipay.public-key=支付宝公钥
|
|||
|
|
alipay.gateway-url=https://openapi.alipaydev.com/gateway.do
|
|||
|
|
alipay.notify-url=http://你的域名:8080/api/payments/alipay/notify
|
|||
|
|
alipay.return-url=http://你的域名:8080/api/payments/alipay/return
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## PayPal配置
|
|||
|
|
|
|||
|
|
### 1. 申请PayPal开发者账号
|
|||
|
|
1. 访问 [PayPal开发者中心](https://developer.paypal.com/)
|
|||
|
|
2. 注册开发者账号
|
|||
|
|
3. 创建应用,选择"Sandbox"环境
|
|||
|
|
4. 获取应用信息:
|
|||
|
|
- Client ID
|
|||
|
|
- Client Secret
|
|||
|
|
|
|||
|
|
### 2. 更新配置文件
|
|||
|
|
在 `application-dev.properties` 中更新以下配置:
|
|||
|
|
|
|||
|
|
```properties
|
|||
|
|
# PayPal沙箱配置
|
|||
|
|
paypal.client-id=你的沙箱Client ID
|
|||
|
|
paypal.client-secret=你的沙箱Client Secret
|
|||
|
|
paypal.mode=sandbox
|
|||
|
|
paypal.return-url=http://你的域名:8080/api/payments/paypal/return
|
|||
|
|
paypal.cancel-url=http://你的域名:8080/api/payments/paypal/cancel
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 生产环境配置
|
|||
|
|
|
|||
|
|
### 1. 环境变量配置
|
|||
|
|
生产环境建议使用环境变量:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 支付宝生产环境
|
|||
|
|
export ALIPAY_APP_ID=你的生产APPID
|
|||
|
|
export ALIPAY_PRIVATE_KEY=你的生产私钥
|
|||
|
|
export ALIPAY_PUBLIC_KEY=支付宝生产公钥
|
|||
|
|
export ALIPAY_NOTIFY_URL=https://你的域名/api/payments/alipay/notify
|
|||
|
|
export ALIPAY_RETURN_URL=https://你的域名/api/payments/alipay/return
|
|||
|
|
|
|||
|
|
# PayPal生产环境
|
|||
|
|
export PAYPAL_CLIENT_ID=你的生产Client ID
|
|||
|
|
export PAYPAL_CLIENT_SECRET=你的生产Client Secret
|
|||
|
|
export PAYPAL_RETURN_URL=https://你的域名/api/payments/paypal/return
|
|||
|
|
export PAYPAL_CANCEL_URL=https://你的域名/api/payments/paypal/cancel
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 更新生产环境配置
|
|||
|
|
在 `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.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}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 测试支付功能
|
|||
|
|
|
|||
|
|
### 1. 启动应用
|
|||
|
|
```bash
|
|||
|
|
# 启动后端服务
|
|||
|
|
mvn spring-boot:run
|
|||
|
|
|
|||
|
|
# 启动前端服务
|
|||
|
|
cd frontend
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 测试流程
|
|||
|
|
1. 访问 http://localhost:3000
|
|||
|
|
2. 登录测试账号
|
|||
|
|
3. 创建订单
|
|||
|
|
4. 选择支付方式
|
|||
|
|
5. 完成支付测试
|
|||
|
|
|
|||
|
|
### 3. 测试账号
|
|||
|
|
- **支付宝沙箱**: 使用沙箱版支付宝APP扫码支付
|
|||
|
|
- **PayPal沙箱**: 使用沙箱测试账号进行支付
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. **HTTPS要求**: 生产环境必须使用HTTPS
|
|||
|
|
2. **域名配置**: 确保回调URL使用正确的域名
|
|||
|
|
3. **签名验证**: 确保私钥和公钥配置正确
|
|||
|
|
4. **日志监控**: 监控支付回调日志
|
|||
|
|
5. **异常处理**: 实现完善的异常处理机制
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
### Q: 支付宝回调失败
|
|||
|
|
A: 检查notify-url是否正确,确保服务器可以接收POST请求
|
|||
|
|
|
|||
|
|
### Q: PayPal支付页面无法打开
|
|||
|
|
A: 检查Client ID和Secret是否正确,确保使用沙箱模式
|
|||
|
|
|
|||
|
|
### Q: 签名验证失败
|
|||
|
|
A: 检查私钥格式,确保没有多余的空格和换行符
|
|||
|
|
|
|||
|
|
### Q: 跨域问题
|
|||
|
|
A: 确保CORS配置正确,允许支付平台的域名
|
|||
|
|
|
|||
|
|
|