@seaverse/payment-sdk 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  SeaVerse Payment SDK - 一站式支付解决方案,提供积分管理、支付弹窗、订阅管理和订单跟踪功能。
4
4
 
5
- > **最新版本**: v0.8.1 | **文档语言**: 中文优先(包含英文说明)
5
+ > **最新版本**: v0.8.2 | **文档语言**: 中文优先(包含英文说明)
6
6
 
7
7
  ## 📦 安装
8
8
 
@@ -95,6 +95,46 @@ const modal = new GenericPackageModal({
95
95
  modal.open();
96
96
  ```
97
97
 
98
+ ## 🏗️ 架构设计
99
+
100
+ ### 代码重构 (v0.8.1)
101
+
102
+ 为了提高代码可维护性和消除重复逻辑,SDK 进行了架构重构:
103
+
104
+ **核心改进**:
105
+ - ✅ **抽象基类设计** - 创建 `BasePackageModal<TPackage, TOptions>` 抽象基类
106
+ - ✅ **消除重复代码** - 减少 ~400 行重复代码(SDK 初始化、支付流程、事件处理)
107
+ - ✅ **类型安全** - 使用 TypeScript 泛型确保类型安全
108
+ - ✅ **向后兼容** - 公开 API 完全不变,现有代码无需修改
109
+
110
+ **类继承结构**:
111
+
112
+ ```
113
+ BasePackageModal<TPackage, TOptions> (抽象基类)
114
+ ├── CreditPackageModal (积分套餐弹框)
115
+ └── GenericPackageModal (通用套餐弹框)
116
+ ```
117
+
118
+ **BasePackageModal 提供的共享功能**:
119
+ - SDK 初始化和状态管理
120
+ - 支付流程处理(订单创建、支付弹框)
121
+ - 事件监听和按钮处理
122
+ - 工具方法(formatNumber、cleanup 等)
123
+
124
+ **子类只需实现**:
125
+ - `createModal()` - 创建和配置 PaymentModal
126
+ - `renderContent()` - 渲染弹框内容(UI 特定逻辑)
127
+ - `getPackages()` - 获取套餐列表
128
+ - `getPackageDisplayName()` - 获取套餐显示名称
129
+ - `getLoadingButtonHTML()` - 获取加载按钮 HTML
130
+
131
+ 这种设计确保:
132
+ - **单一职责** - 基类负责逻辑,子类负责 UI
133
+ - **DRY 原则** - 共享逻辑只需维护一处
134
+ - **易于扩展** - 添加新套餐类型只需继承基类
135
+
136
+ ---
137
+
98
138
  ## 📖 核心功能模块
99
139
 
100
140
  ### ⭐️ 推荐功能(新用户优先使用)
@@ -1002,5 +1042,27 @@ MIT License
1002
1042
 
1003
1043
  ---
1004
1044
 
1005
- **更新日期**: 2026-01-31
1006
- **SDK 版本**: v0.8.0
1045
+ **更新日期**: 2026-02-02
1046
+ **SDK 版本**: v0.8.2
1047
+
1048
+ ## 📝 更新日志
1049
+
1050
+ ### v0.8.2 (2026-02-02)
1051
+
1052
+ **架构重构**:
1053
+ - 🏗️ 创建 `BasePackageModal` 抽象基类,消除 `CreditPackageModal` 和 `GenericPackageModal` 之间的重复代码
1054
+ - 📉 减少约 400 行重复代码(25% 代码量减少)
1055
+ - 🎯 `CreditPackageModal`: 从 1042 行减少到 515 行
1056
+ - 🎯 `GenericPackageModal`: 从 752 行减少到 340 行
1057
+ - ✅ 完全向后兼容,现有代码无需修改
1058
+ - 🔒 通过 TypeScript 泛型确保类型安全
1059
+
1060
+ **类型系统改进**:
1061
+ - 新增 `BasePackage` 接口 - 所有套餐类型的基础接口
1062
+ - 新增 `BasePackageModalOptions<TPackage>` 接口 - 通用配置接口
1063
+ - `CreditPackage` 和 `GenericPackage` 现在继承自 `BasePackage`
1064
+
1065
+ **开发体验提升**:
1066
+ - 更容易添加新的套餐类型(只需继承 `BasePackageModal`)
1067
+ - 修复 bug 只需在基类中修改一处
1068
+ - 更清晰的职责分离(基类处理逻辑,子类处理 UI)