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

102 lines
3.3 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.
# 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` 中:
```yaml
paypal:
webhook-url: https://2646b437.r33.cpolar.top/api/paypal/webhook
```
## PayPal 控制台配置步骤
1. **登录 PayPal 开发者控制台**
- 沙箱环境https://developer.paypal.com/dashboard/
- 使用你的 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