feat(payment): 添加PayPal支付配置和用户信息管理功能
- 配置PayPal Webhook URL和Webhook ID用于支付回调处理 - 移除PayPal对CNY和MYR货币的支持,添加特殊转换处理逻辑 - 实现用户信息获取、更新和密码修改的API接口 - 添加Token验证和用户身份认证机制 - 实现用户信息更新时的手机号和邮箱唯一性校验 - 添加密码修改时的旧密码验证功能
This commit is contained in:
101
mt-pay/PAYPAL_WEBHOOK_SETUP.md
Normal file
101
mt-pay/PAYPAL_WEBHOOK_SETUP.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user