- 新增API端点参考文档,涵盖权限、卡密、订单、商户、监控、限制等模块 - 详细说明Apple卡密充值处理流程,包括提交、查询、回调和轮询接口 - 描述充值订单状态机及生命周期,支持超时重试和状态迁移 - 介绍签名验证、幂等控制及重复卡密防刷单策略 - 增加商户配置管理、历史记录查询和错误处理机制说明 - 提供API使用示例代码及客户端实现指导 - 删除过时的.drone.yml.bak文件,清理无用配置 - 添加.dockerignore忽略指定目录和文件
8.8 KiB
天猫卡密订单处理
**本文档引用的文件** - [order.go](file://api/card_info_t_mall_game/v1/order.go) - [card_info_t_mall_game_v1_t_mall_game_order_submit.go](file://internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_order_submit.go) - [card_info_t_mall_game_v1_t_mall_game_agiso_callback.go](file://internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_agiso_callback.go) - [order.go](file://internal/logic/card_t_mall_order/order.go) - [card_t_mall_order.go](file://internal/service/card_t_mall_order.go) - [v_1_recharge_t_mall_order.go](file://internal/model/do/v_1_recharge_t_mall_order.go) - [card_recharge_t_mall.go](file://internal/consts/card_recharge_t_mall.go) - [card_t_mall_game_order.go](file://internal/model/card_t_mall_game_order.go) - [agiso.go](file://internal/model/agiso.go) - [card_info_t_mall_game_v1_t_mall_game_data_sync.go](file://internal/controller/card_info_t_mall_game/card_info_t_mall_game_v1_t_mall_game_data_sync.go)目录
简介
本文档详细阐述了天猫卡密订单处理系统的完整流程,包括订单的提交、查询、状态修改和回调处理。系统集成了支付系统和AGISO系统,实现了订单分类查询、状态同步和成功状态修改等核心功能。文档深入分析了订单处理中的异常处理策略和数据一致性保障机制,并提供了性能优化建议和常见问题解决方案。
项目结构
天猫卡密订单处理系统采用分层架构,主要分为API层、控制器层、服务层、逻辑层和数据访问层。系统通过API接口接收订单请求,由控制器协调处理,服务层提供业务接口,逻辑层实现具体业务逻辑,数据访问层负责与数据库交互。
graph TD
A[API层] --> B[控制器层]
B --> C[服务层]
C --> D[逻辑层]
D --> E[数据访问层]
E --> F[数据库]
图表来源
章节来源
核心组件
系统的核心组件包括订单提交、状态修改、回调处理和数据同步。订单提交组件负责接收和创建新订单;状态修改组件处理订单状态的变更;回调处理组件接收来自AGISO系统的异步通知;数据同步组件确保系统间数据的一致性。
章节来源
- order.go
- card_info_t_mall_game_v1_t_mall_game_order_submit.go
- card_info_t_mall_game_v1_t_mall_game_agiso_callback.go
架构概述
系统采用微服务架构,各组件通过清晰的接口进行通信。订单处理流程从API接收请求开始,经过控制器调度,由服务层协调,最终在逻辑层完成具体业务处理。系统通过缓存机制提高性能,使用事务保证数据一致性。
graph TD
A[客户端] --> B[API接口]
B --> C[控制器]
C --> D[服务层]
D --> E[逻辑层]
E --> F[数据访问层]
F --> G[数据库]
C --> H[缓存]
D --> I[外部系统]
图表来源
- card_info_t_mall_game_v1_t_mall_game_order_submit.go
- card_info_t_mall_game_v1_t_mall_game_agiso_callback.go
详细组件分析
订单提交分析
订单提交组件负责接收订单请求并创建新订单。系统首先验证账户信息,然后创建订单记录并返回订单号。
sequenceDiagram
participant 客户端
participant 控制器
participant 服务层
participant 数据访问层
客户端->>控制器 : 提交订单请求
控制器->>服务层 : 验证账户信息
服务层->>数据访问层 : 查询账户数据
数据访问层-->>服务层 : 返回账户信息
服务层->>数据访问层 : 创建订单记录
数据访问层-->>服务层 : 返回订单号
服务层-->>控制器 : 返回结果
控制器-->>客户端 : 返回订单号和状态
图表来源
章节来源
回调处理分析
回调处理组件负责处理来自AGISO系统的异步通知,包括付款成功、确认收货和评价成功等事件。
flowchart TD
Start([开始]) --> ValidateSign["验证签名"]
ValidateSign --> SignValid{"签名有效?"}
SignValid --> |否| ReturnError["返回验证失败"]
SignValid --> |是| HandleCallback["处理回调类型"]
HandleCallback --> PaymentSuccess{"付款成功?"}
PaymentSuccess --> |是| ProcessPayment["处理付款"]
HandleCallback --> ConfirmReceipt{"确认收货?"}
ConfirmReceipt --> |是| ProcessConfirm["处理确认收货"]
HandleCallback --> Evaluation{"评价成功?"}
Evaluation --> |是| ProcessEvaluation["处理评价"]
ProcessPayment --> End([结束])
ProcessConfirm --> End
ProcessEvaluation --> End
ReturnError --> End
图表来源
章节来源
依赖分析
系统各组件之间存在明确的依赖关系。API层依赖控制器层,控制器层依赖服务层,服务层依赖逻辑层,逻辑层依赖数据访问层。系统还依赖外部的AGISO系统和淘宝API。
graph TD
A[API层] --> B[控制器层]
B --> C[服务层]
C --> D[逻辑层]
D --> E[数据访问层]
E --> F[数据库]
C --> G[AGISO系统]
C --> H[淘宝API]
B --> I[缓存系统]
图表来源
章节来源
性能考虑
系统通过多种机制优化性能:使用缓存减少数据库访问,采用连接池管理数据库连接,通过异步处理提高响应速度,利用批量操作减少网络开销。对于高并发场景,系统采用限流和降级策略确保稳定性。
故障排除指南
订单状态不一致
当出现订单状态不一致时,应首先检查数据库记录,然后查看日志文件,确认是否有未处理的回调。可以通过数据同步接口手动同步状态。
章节来源
- card_info_t_mall_game_v1_t_mall_game_data_sync.go
- card_info_t_mall_game_v1_t_mall_game_agiso_callback.go
回调处理失败
回调处理失败通常由签名验证失败或网络问题引起。应检查签名算法是否正确,确认网络连接是否正常,并查看错误日志获取详细信息。
章节来源
结论
天猫卡密订单处理系统设计合理,功能完整,能够高效处理各种订单场景。系统通过清晰的分层架构和明确的组件职责,确保了代码的可维护性和可扩展性。建议持续监控系统性能,定期优化数据库查询,并加强异常处理机制。