Files
AIGC/demo/ALIPAY_SETUP_GUIDE.md
AIGC Developer b5820d9be2 feat: 使用banana模型生成分镜图片,修复数据库列类型问题
- 修改RealAIService.submitTextToImageTask使用nano-banana/nano-banana-hd模型
- 支持根据hdMode参数选择模型(标准/高清)
- 修复数据库列类型:将result_url等字段改为TEXT类型以支持Base64图片
- 添加数据库修复SQL脚本(fix_database_columns.sql, update_database_schema.sql)
- 改进StoryboardVideoService的错误处理和空值检查
- 添加GlobalExceptionHandler全局异常处理
- 优化图片URL提取逻辑,支持url和b64_json两种格式
- 改进响应格式验证,确保data字段不为空
2025-11-05 18:18:53 +08:00

219 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 支付宝支付集成准备指南
## 一、必需准备项
### 1. 支付宝商户账号
- **个人开发者**注册支付宝开放平台账号https://open.alipay.com
- **企业用户**:需要营业执照等企业资质,申请企业支付宝账号
### 2. 创建应用并获取配置信息
登录支付宝开放平台后,需要创建应用并获取以下配置:
#### 开发环境(沙箱测试)
- **APPID应用ID**`alipay.app-id`
- **应用私钥Private Key**`alipay.private-key`
- **支付宝公钥Public Key**`alipay.public-key`
- **网关地址**`https://openapi.alipaydev.com/gateway.do`(沙箱)
- **字符集**`UTF-8`
- **签名方式**`RSA2`
#### 生产环境
- **网关地址**`https://openapi.alipay.com/gateway.do`
- 其他配置同开发环境
### 3. 密钥生成和配置
支付宝使用RSA2签名需要生成密钥对
#### 方法1使用支付宝密钥生成工具
- 下载支付宝官方密钥生成工具
- 生成密钥对RSA22048位
- 保存私钥(用于配置 `alipay.private-key`
- 将公钥上传到支付宝开放平台,获取支付宝公钥(用于配置 `alipay.public-key`
#### 方法2使用OpenSSL生成
```bash
# 生成私钥
openssl genrsa -out app_private_key.pem 2048
# 生成公钥
openssl rsa -in app_private_key.pem -pubout -out app_public_key.pem
# 查看私钥内容去除头尾保留中间部分配置到private-key
cat app_private_key.pem
# 将app_public_key.pem内容上传到支付宝开放平台
```
**重要**
- 私钥需要去除 `-----BEGIN RSA PRIVATE KEY-----``-----END RSA PRIVATE KEY-----`
- 私钥和公钥配置在配置文件中时,需要去掉换行符或使用转义
### 4. 配置回调地址
需要配置两个回调地址:
#### 异步通知地址notify-url
- 用于接收支付宝的支付结果异步通知
- 必须是公网可访问的HTTPS地址
- 示例:`https://yourdomain.com/api/payments/alipay/notify`
- **注意**开发环境可以使用ngrok等内网穿透工具
#### 同步返回地址return-url
- 用户支付完成后跳转的页面
- 可以是HTTP或HTTPS地址
- 示例:`https://yourdomain.com/api/payments/alipay/return`
### 5. 数据库表准备
项目已经包含了Payment相关表确保数据库已创建
- `payments`
- `orders`
### 6. Maven依赖已配置
项目已包含支付宝SDK依赖
```xml
<dependency>
<groupId>com.github.javen205</groupId>
<artifactId>IJPay-AliPay</artifactId>
<version>2.9.12.1</version>
</dependency>
```
## 二、配置文件设置
### 开发环境配置application-dev.properties
```properties
# 支付宝配置 (开发环境 - 沙箱测试)
alipay.app-id=你的沙箱APPID
alipay.private-key=你的应用私钥(去除头尾和换行)
alipay.public-key=支付宝公钥(从开放平台获取)
alipay.gateway-url=https://openapi.alipaydev.com/gateway.do
alipay.charset=UTF-8
alipay.sign-type=RSA2
alipay.notify-url=https://your-ngrok-url.ngrok-free.dev/api/payments/alipay/notify
alipay.return-url=https://your-ngrok-url.ngrok-free.dev/api/payments/alipay/return
```
### 生产环境配置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}
```
## 三、测试步骤
### 1. 沙箱测试环境准备
1. 登录支付宝开放平台https://open.alipay.com
2. 进入"沙箱环境"
3. 获取沙箱APPID
4. 下载"支付宝密钥生成工具",生成密钥对
5. 上传公钥到支付宝,获取支付宝公钥
6. 配置沙箱测试账号(买家账号和卖家账号)
### 2. 内网穿透配置(开发测试)
如果本地开发需要使用ngrok等工具暴露本地服务
```bash
# 安装ngrok
# 启动本地服务端口8080
# 使用ngrok暴露
ngrok http 8080
# 获取https地址配置到notify-url和return-url
```
### 3. 功能测试
- 创建支付订单
- 生成支付宝二维码
- 使用沙箱账号扫码支付
- 验证异步通知接收
- 验证支付状态更新
## 四、已实现的功能
### 后端接口
`POST /api/payments/alipay/create` - 创建支付宝支付并生成二维码
`POST /api/payments/alipay/notify` - 接收支付宝异步通知
`GET /api/payments/alipay/return` - 处理支付宝同步返回
### 前端页面
✅ 支付模态框组件PaymentModal.vue
✅ 订阅页面支付集成Subscription.vue
### 核心服务
`AlipayService` - 支付宝服务封装
- `createPayment()` - 创建支付订单
- `handleNotify()` - 处理异步通知
- `handleReturn()` - 处理同步返回
## 五、常见问题
### 1. 签名验证失败
- 检查私钥和公钥是否正确配置
- 确认私钥格式正确(去除头尾和换行)
- 确认使用RSA2签名方式
### 2. 回调地址无法访问
- 确保回调地址是公网可访问的HTTPS地址
- 开发环境可以使用ngrok等内网穿透工具
- 检查防火墙和服务器配置
### 3. 沙箱测试账号
- 在支付宝开放平台沙箱环境中获取测试账号
- 使用"沙箱买家"账号进行支付测试
- 注意:沙箱环境有金额限制
### 4. 生产环境上线
- 申请正式应用(需要审核)
- 配置正式环境的APPID和密钥
- 确保回调地址使用正式域名
- 完成商户资质认证
## 六、安全检查
1. **密钥安全**
- 私钥绝对不能泄露
- 生产环境使用环境变量或密钥管理服务
- 不要将密钥提交到代码仓库
2. **回调验证**
- 所有回调必须验证签名
- 验证订单金额和状态
- 防止重复处理
3. **HTTPS要求**
- 生产环境必须使用HTTPS
- 回调地址必须是HTTPS
## 七、当前项目状态
✅ 代码已实现
✅ Maven依赖已配置
⚠️ 需要配置支付宝账号和密钥
⚠️ 需要配置回调地址开发环境可用ngrok
## 八、快速开始
1. **注册支付宝开放平台账号**
2. **创建应用获取APPID**
3. **生成密钥对并配置**
4. **配置回调地址开发环境使用ngrok**
5. **更新application-dev.properties配置文件**
6. **启动项目测试支付功能**
## 九、参考文档
- 支付宝开放平台https://open.alipay.com
- 支付宝开发者文档https://opendocs.alipay.com
- IJPay文档https://github.com/Javen205/IJPay