Files
AIGC/demo/PAYMENT_CONFIGURATION_CHECKLIST.md

7.1 KiB
Raw Blame History

支付功能模块配置清单

一、已配置项

1. 支付宝基础配置(开发环境)

  • alipay.app-id - 应用ID
  • alipay.private-key - 应用私钥
  • alipay.public-key - 支付宝公钥
  • alipay.gateway-url - 网关地址(沙箱)
  • alipay.charset - 字符集UTF-8
  • alipay.sign-type - 签名方式RSA2
  • alipay.notify-url - 异步通知地址当前使用ngrok
  • alipay.return-url - 同步返回地址当前使用ngrok

2. 后端代码实现

  • 支付宝服务AlipayService
  • 支付API控制器PaymentApiController
  • 支付服务PaymentService
  • 支付数据模型Payment, PaymentStatus, PaymentMethod

3. 前端代码实现

  • 支付API封装payments.js
  • 支付模态框组件PaymentModal.vue
  • 订阅页面Subscription.vue

二、需要检查/更新项 ⚠️

1. 支付宝回调地址配置

当前状态:

  • 开发环境使用 ngrok 地址:https://curtly-aphorismatic-ginger.ngrok-free.dev

需要操作:

  • 如果 ngrok 地址已过期,需要:

    1. 重新运行 ngrok http 8080 获取新地址
    2. 更新 application-dev.properties 中的 alipay.notify-urlalipay.return-url
    3. 在支付宝开放平台配置新的回调地址
  • 如果部署到生产环境,需要:

    1. 使用正式域名替换 ngrok 地址
    2. 确保回调地址是 HTTPS支付宝要求
    3. 在支付宝开放平台配置生产环境的回调地址

配置文件位置:

demo/src/main/resources/application-dev.properties (开发环境)
demo/src/main/resources/application-prod.properties (生产环境)

2. 支付宝开放平台配置

需要在支付宝开放平台配置:

  • 应用回调地址

    • 登录支付宝开放平台:https://open.alipay.com
    • 进入"我的应用" → 选择应用
    • 配置"应用网关"和"回调地址"
    • 添加 notify-urlreturn-url
  • 公钥配置

    • 确认应用公钥已上传到支付宝平台
    • 确认支付宝公钥已配置在 alipay.public-key
  • 沙箱测试账号

    • 获取沙箱买家账号和密码
    • 用于测试支付流程

3. 生产环境配置(如需上线)

需要配置环境变量或更新配置文件:

# 生产环境支付宝配置
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}      # 需要配置正式域名

操作步骤:

  1. 在服务器环境变量中设置上述变量
  2. 或创建 application-prod.properties 并填写实际值
  3. 确保使用正式环境的 APPID 和密钥(不是沙箱)
  4. 确保回调地址使用 HTTPS 协议

4. PayPal 配置(如果使用)

当前状态: PayPal 配置存在但可能需要更新

需要配置项:

# PayPal配置在 application-dev.properties 或 application-prod.properties
paypal.client-id=你的PayPal客户端ID
paypal.client-secret=你的PayPal客户端密钥
paypal.mode=sandbox  # 或 live生产环境
paypal.return-url=http://yourdomain.com/api/payments/paypal/return
paypal.cancel-url=http://yourdomain.com/api/payments/paypal/cancel

操作步骤:

  1. 如果使用 PayPal需要
    • 在 PayPal 开发者控制台创建应用
    • 获取 Client ID 和 Client Secret
    • 配置回调地址

5. 数据库表检查

需要确认以下表已创建:

  • payments
  • orders 表(支付成功后创建订单)
  • 相关外键和索引

检查方法:

SHOW TABLES LIKE 'payments';
SHOW TABLES LIKE 'orders';

6. 网络安全配置

回调地址安全要求:

  • 开发环境:

    • 确保 ngrok 服务运行
    • 回调地址必须是公网可访问的 HTTPS
  • 生产环境:

    • 配置 SSL 证书
    • 确保回调地址使用 HTTPS
    • 配置防火墙规则,允许支付宝服务器访问回调接口

7. 支付测试配置

测试前需要确认:

  • 支付宝沙箱账号已配置
  • 沙箱买家账号可用于测试支付
  • 回调地址在支付宝平台已配置
  • 本地或服务器可以接收到支付宝回调

测试步骤:

  1. 创建测试支付订单
  2. 使用沙箱账号扫码支付
  3. 验证异步通知是否接收
  4. 验证支付状态是否正确更新

三、配置优先级

🔴 紧急(必须配置)

  1. 支付宝回调地址 - 如果 ngrok 地址已过期,需要立即更新
  2. 支付宝开放平台回调配置 - 必须配置才能接收支付通知

🟡 重要(建议配置)

  1. 生产环境配置 - 如需上线必须配置
  2. 数据库表检查 - 确保表结构完整

🟢 可选(按需配置)

  1. PayPal 配置 - 如果使用 PayPal 支付
  2. 支付测试环境 - 用于测试支付功能

四、快速检查命令

检查配置文件是否存在

# Windows PowerShell
Test-Path demo/src/main/resources/application-dev.properties
Test-Path demo/src/main/resources/application-prod.properties

检查支付宝配置是否完整

查看配置文件中的以下项是否都已填写:

  • alipay.app-id
  • alipay.private-key
  • alipay.public-key
  • alipay.gateway-url
  • alipay.notify-url
  • alipay.return-url

测试回调地址可访问性

# 测试 notify-url 是否可访问
curl -X POST https://your-notify-url/api/payments/alipay/notify

# 测试 return-url 是否可访问
curl https://your-return-url/api/payments/alipay/return

五、常见问题

Q1: ngrok 地址已过期怎么办?

A:

  1. 重新运行 ngrok http 8080
  2. 获取新的 HTTPS 地址
  3. 更新 application-dev.properties 中的回调地址
  4. 在支付宝开放平台更新回调地址配置

Q2: 生产环境如何配置回调地址?

A:

  1. 使用正式域名(必须是 HTTPS
  2. 在支付宝开放平台配置生产环境回调地址
  3. 确保服务器防火墙允许支付宝 IP 访问

Q3: 如何验证配置是否正确?

A:

  1. 创建测试支付订单
  2. 使用沙箱账号支付
  3. 检查日志是否收到支付宝回调
  4. 验证支付状态是否正确更新

六、下一步操作建议

根据当前配置状态,建议按以下顺序操作:

  1. 检查 ngrok 地址是否有效

    • 如果无效,更新回调地址配置
  2. 验证支付宝开放平台配置

    • 确认回调地址已在平台配置
    • 确认公钥配置正确
  3. 测试支付流程

    • 创建测试订单
    • 完成支付测试
    • 验证回调接收
  4. 准备生产环境配置

    • 配置生产环境变量
    • 申请正式支付宝应用(如需)

最后更新: 请根据实际部署环境调整上述配置项。