# 购物模块下单测试流程 本文档描述完整的购物车下单、支付、发货、确认收货流程的API测试步骤。 ## 前置条件 1. 启动应用:`mvn spring-boot:run` 2. 应用访问地址:http://localhost:8080 3. API文档地址:http://localhost:8080/doc.html 4. 确保用户已登录并有有效session ## 完整下单流程测试 ### 1. 添加商品到购物车 ```bash POST /api/cart/add Content-Type: application/json { "productId": 1, "quantity": 2 } ``` **响应示例:** ```json { "success": true, "message": "商品添加到购物车成功", "data": { "userId": 1, "items": [ { "productId": 1, "productName": "iPhone 15", "productPrice": 5999.00, "quantity": 2, "subtotal": 11998.00, "stock": 100 } ], "totalPrice": 11998.00, "totalQuantity": 2 } } ``` ### 2. 查看购物车 ```bash GET /api/cart ``` ### 3. 购物车下单 ```bash POST /api/cart/checkout Content-Type: application/json { "productIds": [1] // 可选,不传则下单所有商品 } ``` **响应示例:** ```json { "success": true, "message": "下单成功,请及时支付", "data": { "id": 10, "userId": 1, "productId": 1, "productName": "iPhone 15", "quantity": 2, "totalPrice": 11998.00, "status": 1, "statusDescription": "待支付", "orderType": 1, "orderTypeDescription": "普通订单", "createdAt": "2025-07-02 21:45:00" } } ``` ### 4. 模拟支付 ```bash POST /api/order/{orderId}/pay Content-Type: application/json { "paymentMethod": "支付宝" // 可选:支付宝、微信、银行卡等 } ``` **响应示例:** ```json { "success": true, "message": "支付成功", "data": { "id": 10, "status": 2, "statusDescription": "已支付", "updatedAt": "2025-07-02 21:46:00" }, "paymentMethod": "支付宝" } ``` ### 5. 模拟发货(商家操作) ```bash POST /api/order/{orderId}/ship ``` **响应示例:** ```json { "success": true, "message": "订单发货成功", "data": { "id": 10, "status": 3, "statusDescription": "已发货", "updatedAt": "2025-07-02 21:47:00" } } ``` ### 6. 确认收货(用户操作) ```bash POST /api/order/{orderId}/confirm ``` **响应示例:** ```json { "success": true, "message": "确认收货成功,订单已完成", "data": { "id": 10, "status": 4, "statusDescription": "已完成", "updatedAt": "2025-07-02 21:48:00" } } ``` ### 7. 查看订单详情 ```bash GET /api/order/{orderId} ``` ### 8. 查看我的订单列表 ```bash POST /api/order/my-orders Content-Type: application/json { "page": 0, "size": 10, "status": null // 可选:1-待支付, 2-已支付, 3-已发货, 4-已完成, 5-已取消 } ``` ## 订单状态流转 ``` 1. 待支付 (status=1) ↓ [用户支付] 2. 已支付 (status=2) ↓ [商家发货] 3. 已发货 (status=3) ↓ [用户确认收货] 4. 已完成 (status=4) ``` ## 异常情况测试 ### 1. 支付失败(1%概率) - 重新调用支付接口 - 或取消订单 ### 2. 库存不足 ```bash POST /api/cart/add { "productId": 1, "quantity": 999999 // 超过库存 } ``` ### 3. 重复支付 - 对已支付订单再次支付,应返回错误 ### 4. 状态不正确的操作 - 对待支付订单直接发货 - 对待发货订单直接确认收货 ## 额外功能 ### 取消订单 ```bash POST /api/order/{orderId}/cancel ``` ### 批量购物车操作 ```bash POST /api/cart/batch-operation { "operation": "remove", // 或 "clear" "productIds": [1, 2, 3] } ``` ### 检查购物车库存 ```bash GET /api/cart/check-stock ``` ## 测试建议 1. **完整流程测试**:按照1-6步骤完整测试一次下单流程 2. **并发测试**:多个用户同时下单同一商品测试库存控制 3. **异常测试**:测试各种异常情况的处理 4. **性能测试**:使用JMeter等工具进行压力测试 ## 注意事项 1. 所有需要用户认证的接口都需要先登录获取session 2. 支付接口有1秒的模拟延迟和1%的失败率 3. 购物车数据存储在Redis中,有7天过期时间 4. 订单状态变更会自动记录时间戳