فهرست منبع

📝 docs(story): update order payment story status and implementation details

- update story status from "Approved" to "In Progress"
- mark payment service implementation tasks as completed
- add payment service and API files to file list
- document payment integration test completion and fixes
- update completion notes with payment implementation details
- add wechatpay-node-v3 dependency to package.json
yourname 3 ماه پیش
والد
کامیت
5457e1e67e
3فایلهای تغییر یافته به همراه38 افزوده شده و 18 حذف شده
  1. 33 17
      docs/stories/005.008.order-creation-payment.story.md
  2. 3 0
      pnpm-lock.yaml
  3. 2 1
      web/package.json

+ 33 - 17
docs/stories/005.008.order-creation-payment.story.md

@@ -1,7 +1,7 @@
 # Story 5.8: 订单创建和支付
 
 ## Status
-Approved
+In Progress
 
 ## Story
 **As a** 出行用户
@@ -26,22 +26,22 @@ Approved
   - [x] 测试订单快照保存功能
   - [x] 测试订单金额计算逻辑
   - [x] 验证所有API测试通过
-- [ ] 创建微信小程序支付集成服务 (AC: 3, 4)
-  - [ ] 创建 `packages/server/src/modules/payment/payment.service.ts` - 支付服务(仅支持微信小程序支付,仅支持v3密钥)
-  - [ ] 实现微信支付JSAPI集成(预支付、支付回调)- 仅使用v3密钥
-  - [ ] 实现支付状态管理(支付成功、失败、超时)
-  - [ ] 实现支付回调处理和订单状态更新
-- [ ] 创建微信小程序支付API端点 (AC: 3, 4)
-  - [ ] 创建 `packages/server/src/api/payment/create.ts` - 支付创建API(非通用CRUD路由,仅支持微信小程序支付,仅支持v3密钥)
-  - [ ] 实现微信支付JSAPI预支付参数生成 - 仅使用v3密钥
-  - [ ] 实现支付回调处理接口 - 仅使用v3密钥验证
-  - [ ] 添加支付验证和错误处理
-- [ ] 编写微信小程序支付集成测试 (AC: 3, 4)
-  - [ ] 编写支付API集成测试(仅测试微信小程序支付,仅测试v3密钥)
-  - [ ] 测试支付状态流转逻辑
-  - [ ] 测试支付回调处理功能 - 仅测试v3密钥验证
-  - [ ] 验证微信支付JSAPI参数生成逻辑 - 仅测试v3密钥
-  - [ ] 验证所有支付测试通过
+- [x] 创建微信小程序支付集成服务 (AC: 3, 4)
+  - [x] 创建 `packages/server/src/modules/payment/payment.service.ts` - 支付服务(仅支持微信小程序支付,仅支持v3密钥)
+  - [x] 实现微信支付JSAPI集成(预支付、支付回调)- 仅使用v3密钥
+  - [x] 实现支付状态管理(支付成功、失败、超时)
+  - [x] 实现支付回调处理和订单状态更新
+- [x] 创建微信小程序支付API端点 (AC: 3, 4)
+  - [x] 创建 `packages/server/src/api/payment/create.ts` - 支付创建API(非通用CRUD路由,仅支持微信小程序支付,仅支持v3密钥)
+  - [x] 实现微信支付JSAPI预支付参数生成 - 仅使用v3密钥
+  - [x] 实现支付回调处理接口 - 仅使用v3密钥验证
+  - [x] 添加支付验证和错误处理
+- [x] 编写微信小程序支付集成测试 (AC: 3, 4)
+  - [x] 编写支付API集成测试(仅测试微信小程序支付,仅测试v3密钥)
+  - [x] 测试支付状态流转逻辑
+  - [x] 测试支付回调处理功能 - 仅测试v3密钥验证
+  - [x] 验证微信支付JSAPI参数生成逻辑 - 仅测试v3密钥
+  - [x] 验证所有支付测试通过
 - [ ] 创建小程序下单页面 (AC: 1, 2)
   - [ ] 创建 `mini/src/pages/order/order.tsx` - 下单页面
   - [ ] 实现路线和乘客选择界面
@@ -311,6 +311,8 @@ export default app;
 | 2025-10-23 | 1.0 | 初始故事创建,基于史诗005 US005-08需求 | Bob (Scrum Master) |
 | 2025-10-23 | 1.1 | 故事验证通过,状态更新为Approved | Sarah (Product Owner) |
 | 2025-10-23 | 1.2 | 完成订单创建API端点和集成测试实现 | James (Developer) |
+| 2025-10-23 | 1.3 | 完成微信小程序支付集成服务和API端点实现 | James (Developer) |
+| 2025-10-23 | 1.4 | 完成支付集成测试并修复微信支付SDK mock问题 | James (Developer) |
 
 ## Dev Agent Record
 *此部分由开发代理在实施过程中填写*
@@ -321,6 +323,8 @@ export default app;
 ### Debug Log References
 - 2025-10-23: 修复订单集成测试中的金额类型和时间格式问题
 - 2025-10-23: 验证订单创建API集成测试全部通过
+- 2025-10-23: 修复支付集成测试中的微信支付SDK mock问题
+- 2025-10-23: 验证支付API集成测试全部通过
 
 ### Completion Notes List
 - ✅ 订单创建API端点已实现并测试通过
@@ -329,6 +333,10 @@ export default app;
 - ✅ 修复了时间格式不匹配问题(调整测试期望值)
 - ✅ 修复了路线快照字段缺失问题(更新RouteSnapshotSchema)
 - ✅ 所有11个订单创建API集成测试现在全部通过
+- ✅ 微信小程序支付集成服务已实现并测试通过
+- ✅ 支付API端点已创建并测试通过
+- ✅ 修复了微信支付SDK transactions_jsapi方法mock问题
+- ✅ 所有10个支付API集成测试现在全部通过
 
 ### File List
 **已创建/修改的文件:**
@@ -336,12 +344,20 @@ export default app;
 - [packages/server/src/modules/orders/order.schema.ts](packages/server/src/modules/orders/order.schema.ts) - 订单Schema定义
 - [packages/server/src/modules/orders/order.service.ts](packages/server/src/modules/orders/order.service.ts) - 订单服务
 - [web/tests/integration/server/orders.integration.test.ts](web/tests/integration/server/orders.integration.test.ts) - 订单集成测试
+- [packages/server/src/modules/payment/payment.service.ts](packages/server/src/modules/payment/payment.service.ts) - 支付服务
+- [packages/server/src/api/payment/create.ts](packages/server/src/api/payment/create.ts) - 支付创建API
+- [packages/server/src/api/payment/index.ts](packages/server/src/api/payment/index.ts) - 支付API路由导出
+- [web/tests/integration/server/payment.integration.test.ts](web/tests/integration/server/payment.integration.test.ts) - 支付集成测试
 
 **关键实现:**
 - 使用 `parseWithAwait` 中间件确保API响应格式一致性
 - 实现完整的路线快照Schema,包含所有必需字段
 - 实现订单创建业务逻辑,包括路线验证、金额计算、快照保存
 - 编写全面的集成测试,覆盖所有业务场景
+- 实现微信支付v3 SDK集成,仅支持微信小程序支付
+- 实现支付状态管理(待支付、支付中、支付成功、支付失败、已退款)
+- 实现支付回调处理和订单状态自动更新
+- 修复微信支付SDK mock问题,确保测试稳定性
 
 ## QA Results
 *此部分由QA代理在审查完成后填写*

+ 3 - 0
pnpm-lock.yaml

@@ -632,6 +632,9 @@ importers:
       vitest:
         specifier: ^3.2.4
         version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@24.1.3)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.64.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)
+      wechatpay-node-v3:
+        specifier: 2.1.8
+        version: 2.1.8
 
 packages:
 

+ 2 - 1
web/package.json

@@ -148,6 +148,7 @@
     "vite": "^7.0.0",
     "vite-plugin-iframe-communicator": "^0.0.10",
     "vite-progress-tracking-plugin": "^0.0.2",
-    "vitest": "^3.2.4"
+    "vitest": "^3.2.4",
+    "wechatpay-node-v3": "2.1.8"
   }
 }