Files
MTKJPAY/PUBLIC_ACCESS_CHECKLIST.md
qiube a3633577b4 feat(config): 更新配置以支持HTTPS域名访问
- 将所有环境的前端URL从localhost和IP地址更新为https://shopd.mtkj2025.com
- 配置PayPal webhook使用HTTPS域名以满足PayPal安全要求
- 统一后端服务端口从18082调整为8082
- 更新Java代码中的默认URL配置和启动日志信息
- 创建域名配置、Nginx SSL配置和公网访问检查清单文档
- 为商品链接生成和API访问配置HTTPS协议支持
2025-12-26 15:18:34 +08:00

121 lines
4.0 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. 后端配置
#### 端口配置
-`application-dev.yml`: `server.port: 8082`
-`application-prod.yml`: `server.port: ${server.port:8082}`
-`ProductServiceImpl.java`: 默认端口改为 `8082`
#### 前端URL配置用于生成商品链接
-`application-dev.yml`: `app.frontend.url: http://175.178.252.59`
-`application-prod.yml`: `app.frontend.url: ${app.frontend.url:http://175.178.252.59}`
-`mt-startup/application-dev.yml`: `app.frontend.url: http://175.178.252.59`
-`mt-startup/application.yml`: `app.frontend.url: http://175.178.252.59`
-`ProductServiceImpl.java`: 默认值改为 `http://175.178.252.59`
-`ProductLinkServiceImpl.java`: 默认值改为 `http://175.178.252.59`
#### PayPal Webhook配置
-`application-dev.yml`: `paypal.webhook-url: https://175.178.252.59/api/paypal/webhook`HTTPSPayPal要求
#### 启动类日志
-`MtPayApplication.java`: 启动日志使用公网地址
-`MtkjpayApplication.java`: 启动日志使用公网地址
### 2. 前端配置
#### API地址
-`.env.production`: `VITE_API_BASE_URL=/api`相对路径通过Nginx代理
-`vite.config.js`: 开发环境代理保留127.0.0.1,仅用于本地开发)
### 3. 代码注释
-`ProductServiceImpl.java`: 注释中的示例URL已更新为公网地址
## 📋 部署前检查清单
### 后端检查
- [x] 端口配置为 `8082`
- [x] 前端URL配置为 `http://175.178.252.59`无端口通过Nginx访问
- [x] PayPal Webhook URL配置为 `https://175.178.252.59/api/paypal/webhook`HTTPS
- [ ] 重新打包后端:`mvn clean package -DskipTests`
- [ ] 上传新的jar包到服务器
- [ ] 启动后端服务并确认监听在 `8082` 端口
### 前端检查
- [x] `.env.production` 使用相对路径 `/api`
- [ ] 重新构建前端:`npm run build`
- [ ] 上传新的dist目录到服务器
### Nginx配置检查
- [ ] `proxy_pass` 端口为 `8082`
```nginx
location /api/ {
proxy_pass http://127.0.0.1:8082;
...
}
```
- [ ] Nginx配置已保存并重载
### PayPal配置检查
- [ ] **Nginx已配置SSL证书PayPal Webhook必需只接受HTTPS**
- [ ] PayPal控制台Webhook URL已更新为`https://175.178.252.59/api/paypal/webhook`
### 防火墙检查
- [ ] 端口 `8082` 已开放(如果需要外部直接访问)
- [ ] 端口 `80` 已开放Nginx前端访问
## 🔍 验证步骤
### 1. 验证后端服务
```bash
# 在服务器上执行
curl http://127.0.0.1:8082/api/health
```
### 2. 验证Nginx代理
```bash
# 在服务器上执行
curl http://127.0.0.1/api/health
```
### 3. 验证商品链接生成
- 创建商品后,检查生成的链接是否为:`http://175.178.252.59/product/xxxxx`
- 不应包含 `localhost` 或端口号
### 4. 验证前端访问
- 浏览器访问:`http://175.178.252.59`
- 检查浏览器控制台F12中的API请求
- 请求URL应为`http://175.178.252.59/api/xxx`通过Nginx代理
## ⚠️ 重要提示
1. **前端URL不需要端口号**
- 配置为:`http://175.178.252.59`(不是 `http://175.178.252.59:3000`
- 因为前端通过Nginx访问默认使用80端口
2. **后端API配置**
- PayPal Webhook通过Nginx HTTPS访问`https://175.178.252.59/api/paypal/webhook`Nginx转发到后端8082
- 前端通过Nginx代理访问`http://175.178.252.59/api/xxx`Nginx转发到8082
- ⚠️ **重要:** PayPal只接受HTTPS端口443必须配置SSL证书
3. **商品链接生成**
- 使用 `app.frontend.url` 配置生成
- 格式:`{frontendUrl}/product/{linkCode}`
- 示例:`http://175.178.252.59/product/2563c74bd94c4a4b95abccf697a6c756`
## 📝 修改总结
所有 `localhost` 和硬编码地址已替换为公网地址 `175.178.252.59`
- ✅ 配置文件中的URL
- ✅ Java代码中的默认值
- ✅ 启动日志中的提示信息
- ✅ 代码注释中的示例
所有端口已统一为 `8082`
- ✅ 后端服务端口
- ✅ PayPal Webhook URL
- ✅ 代码中的默认值