TinyShip 1.7.0 正式发布
本版本引入 PayPal 支付支持,作为全球知名的支付平台,支持单次付费和订阅模式,为面向国际用户的应用提供无缝集成能力。
✨ 核心新增
PayPal 提供商:新的支付提供商实现(libs/payment/providers/paypal.ts),支持 Orders + Capture 和 Subscriptions API
工厂与类型更新:libs/payment/index.ts 中的支付工厂和类型定义已更新以支持 PayPal
双重支付模式:同时支持单次付费(Orders API)和循环订阅(Subscriptions API)
Webhook 端点:Next.js 和 Nuxt 应用均有完整的 Webhook 实现
🎯 支持的功能
| 功能 | 支持 | 说明 |
|---|---|---|
| 单次付费 | ✅ | Orders + Capture API |
| 订阅付费 | ✅ | 需要在 PayPal Dashboard 创建 Product/Plan |
| 积分充值 | ✅ | 支持 |
| 沙盒测试 | ✅ | 完整的沙盒环境支持 |
🔧 技术亮点
PayPal REST API 集成:使用原生 PayPal REST API 进行可靠的支付处理
Webhook 处理器:
- Next.js:
apps/next-app/app/api/payment/webhook/paypal/route.ts - Nuxt:
apps/nuxt-app/server/api/payment/webhook/paypal.post.ts - 支持支付和订阅的完整事件处理
Return URL 处理器:
- 处理订单捕获和订阅激活
apps/next-app/app/api/payment/return/paypal/route.tsapps/nuxt-app/server/api/payment/return/paypal.get.ts
UI 更新:
- Next.js 和 Nuxt 仪表盘的订单卡片展示 PayPal 提供商
- 支付成功页面处理 PayPal 返回流程
i18n 支持:仪表盘和管理面板的中英文字符串已全面更新
📚 文档更新
新增文档:
- PayPal 配置指南:
docs/user-guide/payment/paypal - 支付概览更新:PayPal 已添加到支持的支付方式中
💡 与其他提供商的主要差异
| 方面 | PayPal | Stripe | Alipay |
|---|---|---|---|
| 订阅 | ✅ 需要 Dashboard 创建 Plan | ✅ Price ID | ❌ 不支持 |
| 单次付费 | ✅ Orders + Capture | ✅ Checkout | ✅ Page Pay |
| 沙盒环境 | ✅ 完整支持 | ✅ 测试模式 | ✅ 沙盒 |
| 币种 | 多币种 | 多币种 | 仅 CNY |