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

4.0 KiB
Raw Blame History

公网访问配置检查清单

已完成的配置修改

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/webhookHTTPSPayPal要求

启动类日志

  • 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已更新为公网地址

📋 部署前检查清单

后端检查

  • 端口配置为 8082
  • 前端URL配置为 http://175.178.252.59无端口通过Nginx访问
  • PayPal Webhook URL配置为 https://175.178.252.59/api/paypal/webhookHTTPS
  • 重新打包后端:mvn clean package -DskipTests
  • 上传新的jar包到服务器
  • 启动后端服务并确认监听在 8082 端口

前端检查

  • .env.production 使用相对路径 /api
  • 重新构建前端:npm run build
  • 上传新的dist目录到服务器

Nginx配置检查

  • proxy_pass 端口为 8082
    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. 验证后端服务

# 在服务器上执行
curl http://127.0.0.1:8082/api/health

2. 验证Nginx代理

# 在服务器上执行
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/webhookNginx转发到后端8082
    • 前端通过Nginx代理访问http://175.178.252.59/api/xxxNginx转发到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
  • 代码中的默认值