|
@@ -1,7 +1,7 @@
|
|
|
# Story 5.8: 订单创建和支付
|
|
# Story 5.8: 订单创建和支付
|
|
|
|
|
|
|
|
## Status
|
|
## Status
|
|
|
-Approved
|
|
|
|
|
|
|
+In Progress
|
|
|
|
|
|
|
|
## Story
|
|
## Story
|
|
|
**As a** 出行用户
|
|
**As a** 出行用户
|
|
@@ -26,22 +26,22 @@ Approved
|
|
|
- [x] 测试订单快照保存功能
|
|
- [x] 测试订单快照保存功能
|
|
|
- [x] 测试订单金额计算逻辑
|
|
- [x] 测试订单金额计算逻辑
|
|
|
- [x] 验证所有API测试通过
|
|
- [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)
|
|
- [ ] 创建小程序下单页面 (AC: 1, 2)
|
|
|
- [ ] 创建 `mini/src/pages/order/order.tsx` - 下单页面
|
|
- [ ] 创建 `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.0 | 初始故事创建,基于史诗005 US005-08需求 | Bob (Scrum Master) |
|
|
|
| 2025-10-23 | 1.1 | 故事验证通过,状态更新为Approved | Sarah (Product Owner) |
|
|
| 2025-10-23 | 1.1 | 故事验证通过,状态更新为Approved | Sarah (Product Owner) |
|
|
|
| 2025-10-23 | 1.2 | 完成订单创建API端点和集成测试实现 | James (Developer) |
|
|
| 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
|
|
## Dev Agent Record
|
|
|
*此部分由开发代理在实施过程中填写*
|
|
*此部分由开发代理在实施过程中填写*
|
|
@@ -321,6 +323,8 @@ export default app;
|
|
|
### Debug Log References
|
|
### Debug Log References
|
|
|
- 2025-10-23: 修复订单集成测试中的金额类型和时间格式问题
|
|
- 2025-10-23: 修复订单集成测试中的金额类型和时间格式问题
|
|
|
- 2025-10-23: 验证订单创建API集成测试全部通过
|
|
- 2025-10-23: 验证订单创建API集成测试全部通过
|
|
|
|
|
+- 2025-10-23: 修复支付集成测试中的微信支付SDK mock问题
|
|
|
|
|
+- 2025-10-23: 验证支付API集成测试全部通过
|
|
|
|
|
|
|
|
### Completion Notes List
|
|
### Completion Notes List
|
|
|
- ✅ 订单创建API端点已实现并测试通过
|
|
- ✅ 订单创建API端点已实现并测试通过
|
|
@@ -329,6 +333,10 @@ export default app;
|
|
|
- ✅ 修复了时间格式不匹配问题(调整测试期望值)
|
|
- ✅ 修复了时间格式不匹配问题(调整测试期望值)
|
|
|
- ✅ 修复了路线快照字段缺失问题(更新RouteSnapshotSchema)
|
|
- ✅ 修复了路线快照字段缺失问题(更新RouteSnapshotSchema)
|
|
|
- ✅ 所有11个订单创建API集成测试现在全部通过
|
|
- ✅ 所有11个订单创建API集成测试现在全部通过
|
|
|
|
|
+- ✅ 微信小程序支付集成服务已实现并测试通过
|
|
|
|
|
+- ✅ 支付API端点已创建并测试通过
|
|
|
|
|
+- ✅ 修复了微信支付SDK transactions_jsapi方法mock问题
|
|
|
|
|
+- ✅ 所有10个支付API集成测试现在全部通过
|
|
|
|
|
|
|
|
### File List
|
|
### 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.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) - 订单服务
|
|
- [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) - 订单集成测试
|
|
- [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响应格式一致性
|
|
- 使用 `parseWithAwait` 中间件确保API响应格式一致性
|
|
|
- 实现完整的路线快照Schema,包含所有必需字段
|
|
- 实现完整的路线快照Schema,包含所有必需字段
|
|
|
- 实现订单创建业务逻辑,包括路线验证、金额计算、快照保存
|
|
- 实现订单创建业务逻辑,包括路线验证、金额计算、快照保存
|
|
|
- 编写全面的集成测试,覆盖所有业务场景
|
|
- 编写全面的集成测试,覆盖所有业务场景
|
|
|
|
|
+- 实现微信支付v3 SDK集成,仅支持微信小程序支付
|
|
|
|
|
+- 实现支付状态管理(待支付、支付中、支付成功、支付失败、已退款)
|
|
|
|
|
+- 实现支付回调处理和订单状态自动更新
|
|
|
|
|
+- 修复微信支付SDK mock问题,确保测试稳定性
|
|
|
|
|
|
|
|
## QA Results
|
|
## QA Results
|
|
|
*此部分由QA代理在审查完成后填写*
|
|
*此部分由QA代理在审查完成后填写*
|