Przeglądaj źródła

📝 docs(prd): update mini payment refund flow documentation

- add existing mini program frontend implementation details
- add mini program frontend enhancement requirements
- add mini program frontend integration points
- add mini program frontend implementation code examples
- add mini program frontend key points in compatibility requirements
yourname 1 miesiąc temu
rodzic
commit
74b6f037ec
1 zmienionych plików z 66 dodań i 3 usunięć
  1. 66 3
      docs/prd/epic-011-mini-payment-refund-flow.md

+ 66 - 3
docs/prd/epic-011-mini-payment-refund-flow.md

@@ -15,6 +15,11 @@
 - **多租户系统配置模块**已实现租户隔离的支付配置管理,支付模块已集成
 - **Redis缓存**已用于session_key存储和系统配置缓存
 - **共享CRUD包**已提供完整的多租户支持
+- **Mini小程序前端**已实现:
+  - 订单提交页面(`/pages/order-submit/index.tsx`)- 支持订单创建,跳转到订单详情
+  - 订单列表页面(`/pages/order-list/index.tsx`)- 支持订单状态显示和筛选,有"去支付"按钮
+  - 订单详情页面(`/pages/order-detail/index.tsx`)- 支持取消订单和申请退款UI
+  - 支付工具函数(`/utils/payment.ts`)- 完整的微信支付工具类,包含支付调用、验证、重试、状态管理等
 
 **Technology stack:**
 - TypeORM + PostgreSQL (数据库)
@@ -39,6 +44,10 @@
 - 集成微信支付SDK退款功能(支付模块缺少退款功能)
 - 优化订单状态流转逻辑
 - 完善退款记录和状态跟踪(退款模块已有基础功能)
+- **Mini小程序前端增强:**
+  - 添加支付页面(`/pages/payment/index.tsx`)- 当前缺少支付页面
+  - 集成支付工具函数到订单流程中
+  - 完善取消订单和退款的前端交互
 
 **How it integrates:**
 - **复用多租户支付模块**的支付功能,扩展退款功能
@@ -46,6 +55,11 @@
 - **使用多租户系统配置模块**获取租户特定的支付配置(已集成)
 - **集成微信支付SDK**实现退款功能
 - **使用Redis缓存**优化配置访问(已集成)
+- **Mini小程序前端集成:**
+  - 订单提交页面调用支付API获取支付参数
+  - 支付页面调用微信支付SDK完成支付
+  - 订单详情页面集成取消订单和退款功能
+  - 使用现有的支付工具函数库
 
 **Success criteria:**
 - 用户可以在mini小程序中成功创建订单并支付
@@ -230,6 +244,48 @@ class PaymentMtService {
 - **2支付成功** → **3已退款** (退款成功)
 - **1支付中** → **4支付失败** (支付失败)
 
+### Mini小程序前端实现
+```typescript
+// 支付页面 - 需要创建 /pages/payment/index.tsx
+class PaymentPage {
+  async handlePayment(orderId: number) {
+    // 1. 调用后端API获取支付参数
+    const paymentParams = await orderClient['create-payment']['$post']({
+      json: { orderId }
+    });
+
+    // 2. 使用现有支付工具函数调用微信支付
+    const result = await requestWechatPayment(paymentParams);
+
+    // 3. 处理支付结果
+    if (result.success) {
+      // 支付成功,跳转到支付成功页面
+      Taro.redirectTo({ url: '/pages/payment-success/index' });
+    } else {
+      // 支付失败,显示错误信息
+      Taro.showToast({ title: result.message, icon: 'none' });
+    }
+  }
+}
+
+// 订单详情页面 - 集成取消订单功能
+class OrderDetailPage {
+  async handleCancelOrder(orderId: number, reason: string) {
+    try {
+      // 调用后端取消订单API
+      await orderClient['cancel-order']['$post']({
+        json: { orderId, reason }
+      });
+
+      Taro.showToast({ title: '订单取消成功', icon: 'success' });
+      // 刷新页面或返回订单列表
+    } catch (error) {
+      Taro.showToast({ title: error.message, icon: 'none' });
+    }
+  }
+}
+```
+
 ## Validation Checklist
 
 ### Scope Validation
@@ -258,10 +314,17 @@ class PaymentMtService {
 
 - 这是对运行TypeORM + PostgreSQL + Hono + Redis + @d8d/shared-crud的多租户系统的增强
 - **核心简化**: 复用多租户支付模块和订单模块,扩展退款功能
-- 集成点:多租户支付模块的PaymentMtService、多租户订单模块的OrderMtService、多租户退款模块的UserRefundsMtService、多租户系统配置模块的SystemConfigServiceMt、微信支付SDK
-- 要遵循的现有模式:多租户支付模块的支付流程、多租户订单模块的CRUD模式、多租户实体模式
-- 关键兼容性要求:现有支付API保持不变,订单API向后兼容
+- **Mini小程序前端**: 已有订单提交、列表、详情页面和支付工具函数,需要添加支付页面和集成支付流程
+- 集成点:多租户支付模块的PaymentMtService、多租户订单模块的OrderMtService、多租户退款模块的UserRefundsMtService、多租户系统配置模块的SystemConfigServiceMt、微信支付SDK、Mini小程序前端
+- 要遵循的现有模式:多租户支付模块的支付流程、多租户订单模块的CRUD模式、多租户实体模式、Mini小程序前端架构
+- 关键兼容性要求:现有支付API保持不变,订单API向后兼容,Mini小程序现有页面功能无影响
 - 每个故事必须包括验证现有功能保持完整的验证
 - 特别注意:支付模块中已有TODO需要更新订单状态,需要实现
+- **Mini小程序前端关键点:**
+  - 订单提交页面(已存在)需要集成支付页面跳转
+  - 订单列表页面(已存在)的"去支付"按钮需要集成支付功能
+  - 需要创建支付页面(`/pages/payment/index.tsx`)
+  - 订单详情页面(已存在)需要集成取消订单功能
+  - 复用现有的支付工具函数库(`/utils/payment.ts`)
 
 该史诗应在保持系统完整性的同时交付完整的支付退款流程功能。"