Files
MTKJPAY/mt-pay/PAYPAL_WEBHOOK_SETUP.md
qiube 7a97ddc860 feat(payment): 添加PayPal支付配置和用户信息管理功能
- 配置PayPal Webhook URL和Webhook ID用于支付回调处理
- 移除PayPal对CNY和MYR货币的支持,添加特殊转换处理逻辑
- 实现用户信息获取、更新和密码修改的API接口
- 添加Token验证和用户身份认证机制
- 实现用户信息更新时的手机号和邮箱唯一性校验
- 添加密码修改时的旧密码验证功能
2025-12-25 15:54:27 +08:00

3.3 KiB
Raw Blame History

PayPal Webhook 配置说明

内网穿透配置

当前使用内网穿透服务cpolar将本地服务暴露到公网

  • 内网地址: http://localhost:8082
  • 公网地址: https://2646b437.r33.cpolar.top
  • Webhook URL: https://2646b437.r33.cpolar.top/api/paypal/webhook

配置文件

Webhook URL 已配置在 application-dev.yml 中:

paypal:
  webhook-url: https://2646b437.r33.cpolar.top/api/paypal/webhook

PayPal 控制台配置步骤

  1. 登录 PayPal 开发者控制台

  2. 选择应用

    • 进入 "My Apps & Credentials"
    • 选择你的沙箱应用Sandbox App
  3. 配置 Webhook

    • 在应用详情页面,找到 "Webhooks" 部分
    • 点击 "Add Webhook" 或 "Edit Webhook"
    • 输入 Webhook URL: https://2646b437.r33.cpolar.top/api/paypal/webhook
    • 选择要监听的事件类型:
      • PAYMENT.CAPTURE.COMPLETED - 支付捕获完成
      • PAYMENT.CAPTURE.DENIED - 支付捕获被拒绝
      • PAYMENT.CAPTURE.REFUNDED - 支付退款
      • CHECKOUT.ORDER.APPROVED - 订单已批准
      • CHECKOUT.ORDER.COMPLETED - 订单已完成
      • CHECKOUT.ORDER.CANCELLED - 订单已取消
    • 保存配置
  4. 获取 Webhook ID

    • 配置完成后PayPal 会生成一个 Webhook ID
    • 将此 Webhook ID 配置到 application-dev.yml 中的 paypal.webhook-id

注意事项

  1. 内网穿透地址变化

    • 免费版 cpolar 的地址可能会变化
    • 如果地址变化,需要:
      • 更新 application-dev.yml 中的 webhook-url
      • 在 PayPal 控制台更新 Webhook URL
  2. HTTPS 要求

    • PayPal Webhook 要求使用 HTTPS
    • cpolar 提供的地址默认支持 HTTPS
  3. 测试 Webhook

    • 在 PayPal 控制台可以测试 Webhook
    • 选择 "Send test event" 发送测试事件
    • 检查后端日志确认是否收到事件
  4. 生产环境

    • 生产环境需要使用固定的域名
    • 建议使用自己的域名配置 SSL 证书
    • 更新 application-prod.yml 中的 webhook-url

验证配置

启动应用后,查看日志中的 PayPal 配置信息:

═══════════════════════════════════════════════════════════
PayPal配置加载验证:
  - Client ID: ✅ 已配置 (...)
  - Client Secret: ✅ 已配置 (...)
  - Mode: sandbox
  - Enabled: true
  - Base URL: https://api-m.sandbox.paypal.com
  - Webhook URL: ✅ https://2646b437.r33.cpolar.top/api/paypal/webhook
═══════════════════════════════════════════════════════════

如果 Webhook URL 显示为 " 未配置",请检查配置文件。

后端接口

Webhook 回调接口路径:/api/paypal/webhook

  • 方法: POST
  • 路径: /api/paypal/webhook
  • 完整URL: https://2646b437.r33.cpolar.top/api/paypal/webhook

前端配置

前端不需要修改,因为:

  • 前端使用 window.location.origin 自动获取当前域名
  • 用户访问的是前端地址,不是后端地址
  • 支付成功/取消回调使用前端路由,不涉及 Webhook