|
@@ -15,6 +15,11 @@
|
|
|
- **多租户系统配置模块**已实现租户隔离的支付配置管理,支付模块已集成
|
|
- **多租户系统配置模块**已实现租户隔离的支付配置管理,支付模块已集成
|
|
|
- **Redis缓存**已用于session_key存储和系统配置缓存
|
|
- **Redis缓存**已用于session_key存储和系统配置缓存
|
|
|
- **共享CRUD包**已提供完整的多租户支持
|
|
- **共享CRUD包**已提供完整的多租户支持
|
|
|
|
|
+- **Mini小程序前端**已实现:
|
|
|
|
|
+ - 订单提交页面(`/pages/order-submit/index.tsx`)- 支持订单创建,跳转到订单详情
|
|
|
|
|
+ - 订单列表页面(`/pages/order-list/index.tsx`)- 支持订单状态显示和筛选,有"去支付"按钮
|
|
|
|
|
+ - 订单详情页面(`/pages/order-detail/index.tsx`)- 支持取消订单和申请退款UI
|
|
|
|
|
+ - 支付工具函数(`/utils/payment.ts`)- 完整的微信支付工具类,包含支付调用、验证、重试、状态管理等
|
|
|
|
|
|
|
|
**Technology stack:**
|
|
**Technology stack:**
|
|
|
- TypeORM + PostgreSQL (数据库)
|
|
- TypeORM + PostgreSQL (数据库)
|
|
@@ -39,6 +44,10 @@
|
|
|
- 集成微信支付SDK退款功能(支付模块缺少退款功能)
|
|
- 集成微信支付SDK退款功能(支付模块缺少退款功能)
|
|
|
- 优化订单状态流转逻辑
|
|
- 优化订单状态流转逻辑
|
|
|
- 完善退款记录和状态跟踪(退款模块已有基础功能)
|
|
- 完善退款记录和状态跟踪(退款模块已有基础功能)
|
|
|
|
|
+- **Mini小程序前端增强:**
|
|
|
|
|
+ - 添加支付页面(`/pages/payment/index.tsx`)- 当前缺少支付页面
|
|
|
|
|
+ - 集成支付工具函数到订单流程中
|
|
|
|
|
+ - 完善取消订单和退款的前端交互
|
|
|
|
|
|
|
|
**How it integrates:**
|
|
**How it integrates:**
|
|
|
- **复用多租户支付模块**的支付功能,扩展退款功能
|
|
- **复用多租户支付模块**的支付功能,扩展退款功能
|
|
@@ -46,6 +55,11 @@
|
|
|
- **使用多租户系统配置模块**获取租户特定的支付配置(已集成)
|
|
- **使用多租户系统配置模块**获取租户特定的支付配置(已集成)
|
|
|
- **集成微信支付SDK**实现退款功能
|
|
- **集成微信支付SDK**实现退款功能
|
|
|
- **使用Redis缓存**优化配置访问(已集成)
|
|
- **使用Redis缓存**优化配置访问(已集成)
|
|
|
|
|
+- **Mini小程序前端集成:**
|
|
|
|
|
+ - 订单提交页面调用支付API获取支付参数
|
|
|
|
|
+ - 支付页面调用微信支付SDK完成支付
|
|
|
|
|
+ - 订单详情页面集成取消订单和退款功能
|
|
|
|
|
+ - 使用现有的支付工具函数库
|
|
|
|
|
|
|
|
**Success criteria:**
|
|
**Success criteria:**
|
|
|
- 用户可以在mini小程序中成功创建订单并支付
|
|
- 用户可以在mini小程序中成功创建订单并支付
|
|
@@ -230,6 +244,48 @@ class PaymentMtService {
|
|
|
- **2支付成功** → **3已退款** (退款成功)
|
|
- **2支付成功** → **3已退款** (退款成功)
|
|
|
- **1支付中** → **4支付失败** (支付失败)
|
|
- **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
|
|
## Validation Checklist
|
|
|
|
|
|
|
|
### Scope Validation
|
|
### Scope Validation
|
|
@@ -258,10 +314,17 @@ class PaymentMtService {
|
|
|
|
|
|
|
|
- 这是对运行TypeORM + PostgreSQL + Hono + Redis + @d8d/shared-crud的多租户系统的增强
|
|
- 这是对运行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需要更新订单状态,需要实现
|
|
- 特别注意:支付模块中已有TODO需要更新订单状态,需要实现
|
|
|
|
|
+- **Mini小程序前端关键点:**
|
|
|
|
|
+ - 订单提交页面(已存在)需要集成支付页面跳转
|
|
|
|
|
+ - 订单列表页面(已存在)的"去支付"按钮需要集成支付功能
|
|
|
|
|
+ - 需要创建支付页面(`/pages/payment/index.tsx`)
|
|
|
|
|
+ - 订单详情页面(已存在)需要集成取消订单功能
|
|
|
|
|
+ - 复用现有的支付工具函数库(`/utils/payment.ts`)
|
|
|
|
|
|
|
|
该史诗应在保持系统完整性的同时交付完整的支付退款流程功能。"
|
|
该史诗应在保持系统完整性的同时交付完整的支付退款流程功能。"
|