- 新增API端点参考文档,涵盖权限、卡密、订单、商户、监控、限制等模块 - 详细说明Apple卡密充值处理流程,包括提交、查询、回调和轮询接口 - 描述充值订单状态机及生命周期,支持超时重试和状态迁移 - 介绍签名验证、幂等控制及重复卡密防刷单策略 - 增加商户配置管理、历史记录查询和错误处理机制说明 - 提供API使用示例代码及客户端实现指导 - 删除过时的.drone.yml.bak文件,清理无用配置 - 添加.dockerignore忽略指定目录和文件
8.7 KiB
京东卡密订单处理
**本文档引用文件** - [order.go](file://api/card_info_jd/v1/order.go) - [account.go](file://api/card_info_jd/v1/account.go) - [config.go](file://api/card_info_jd/v1/config.go) - [order_summary.go](file://api/card_info_jd/v1/order_summary.go) - [card_info_jd_v1_submit.go](file://internal/controller/card_info_jd/card_info_jd_v1_submit.go) - [card_info_jd_v1_order_callback.go](file://internal/controller/card_info_jd/card_info_jd_v1_order_callback.go) - [v_1_card_redeem_order_info.go](file://internal/dao/v_1_card_redeem_order_info.go) - [v_1_card_redeem_account_info.go](file://internal/dao/v_1_card_redeem_account_info.go)目录
简介
本文档详细说明了京东卡密订单处理API的设计与实现,涵盖订单提交、状态回调、历史查询等核心功能。重点描述了订单创建、支付处理、状态同步等流程,并提供客户端实现指南、错误处理策略和性能优化建议,特别关注订单状态一致性保障机制。
项目结构
京东卡密订单处理系统采用模块化设计,主要分为API接口层、控制器层、服务层和数据访问层。系统通过清晰的分层架构实现了高内聚低耦合的设计原则。
graph TB
subgraph "API层"
OrderAPI["/cardInfo/JDCard/order/submit"]
AccountAPI["/cardInfo/JDCard/account/*"]
ConfigAPI["/cardInfo/JDCard/config/*"]
end
subgraph "控制器层"
OrderController["card_info_jd_v1_submit.go"]
CallbackController["card_info_jd_v1_order_callback.go"]
end
subgraph "服务层"
OrderService["CardRedeemOrder服务"]
AuthService["SysAuth服务"]
end
subgraph "数据层"
OrderDAO["v_1_card_redeem_order_info.go"]
AccountDAO["v_1_card_redeem_account_info.go"]
end
OrderAPI --> OrderController
AccountAPI --> OrderController
ConfigAPI --> OrderController
OrderController --> OrderService
OrderController --> AuthService
OrderService --> OrderDAO
OrderService --> AccountDAO
Diagram sources
Section sources
核心组件
京东卡密订单处理系统的核心组件包括订单提交、状态回调、账户管理和配置管理四大模块。订单提交模块负责接收商户充值请求并创建订单;状态回调模块实现订单状态通知功能;账户管理模块维护京东账户信息;配置管理模块提供系统参数设置。
Section sources
架构概述
系统采用典型的分层架构设计,从前端API到后端数据存储形成完整的处理链条。各层之间通过明确定义的接口进行通信,确保系统的可维护性和可扩展性。
graph TD
Client[客户端] --> API[API接口]
API --> Controller[控制器]
Controller --> Service[服务层]
Service --> DAO[数据访问层]
DAO --> DB[(数据库)]
style Client fill:#f9f,stroke:#333
style API fill:#bbf,stroke:#333
style Controller fill:#f96,stroke:#333
style Service fill:#6f9,stroke:#333
style DAO fill:#69f,stroke:#333
style DB fill:#9f9,stroke:#333
Diagram sources
详细组件分析
订单提交分析
订单提交功能是系统的核心业务流程,负责接收商户的充值请求并创建相应的订单记录。
订单提交请求模型
classDiagram
class SubmitReq {
+string CardNo
+string GiftCardPwd
+string NotifyUrl
+float64 Amount
+string MerchantId
+string Attach
+g.Meta path : "/cardInfo/JDCard/order/submit" tags : "京东充值卡订单" method : "post" summary : "充值"
}
SubmitReq : +CardNo : 卡号
SubmitReq : +GiftCardPwd : 礼品卡密码
SubmitReq : +NotifyUrl : 回调地址
SubmitReq : +Amount : 充值金额
SubmitReq : +MerchantId : 商户ID
SubmitReq : +Attach : 附加信息
Diagram sources
订单提交处理流程
sequenceDiagram
participant Client as "客户端"
participant API as "API接口"
participant Controller as "控制器"
participant Service as "订单服务"
participant DAO as "数据访问层"
Client->>API : POST /cardInfo/JDCard/order/submit
API->>Controller : 转发请求
Controller->>Service : 调用AddOne方法
Service->>DAO : 创建订单记录
DAO-->>Service : 返回订单信息
Service->>Service : 触发验证和消费
Service-->>Controller : 返回结果
Controller-->>Client : 返回响应
Diagram sources
订单回调分析
订单回调功能用于处理订单状态变更通知,确保商户能够及时获取订单处理结果。
订单回调处理流程
flowchart TD
Start([开始]) --> AuthCheck["验证用户权限"]
AuthCheck --> OrderQuery["查询订单信息"]
OrderQuery --> StatusCheck["检查订单状态"]
StatusCheck --> |订单不存在| ReturnError["返回错误"]
StatusCheck --> |权限不足| ReturnError
StatusCheck --> |已回调| ReturnError
StatusCheck --> |未结束状态| ReturnError
StatusCheck --> |金额异议| ReturnError
StatusCheck --> |可回调| CallBack["执行回调"]
CallBack --> UpdateStatus["更新通知状态"]
UpdateStatus --> ReturnSuccess["返回成功"]
ReturnError --> End([结束])
ReturnSuccess --> End
Diagram sources
账户管理分析
账户管理模块负责京东账户的全生命周期管理,包括创建、查询、更新和状态维护。
classDiagram
class JDAccountListRecord {
+V1CardRedeemAccountInfo
+UploadUser
}
class UploadUser {
+string Id
+string Username
+string Nickname
}
class JDAccountRecord {
+string Cookie
+string Name
+int MaxAmountLimit
+int MaxCountLimit
+string Remark
+int Status
}
JDAccountListRecord --> UploadUser : "包含"
JDAccountListRecord --> JDAccountRecord : "继承"
Diagram sources
依赖分析
系统各组件之间的依赖关系清晰明确,遵循单向依赖原则,避免循环依赖问题。
graph LR
API --> Controller
Controller --> Service
Service --> DAO
Service --> Consts[consts常量]
Service --> ErrHandler[errHandler]
Controller --> Context[context]
style API fill:#f96,stroke:#333
style Controller fill:#69f,stroke:#333
style Service fill:#6f9,stroke:#333
style DAO fill:#9f9,stroke:#333
style Consts fill:#ff9,stroke:#333
style ErrHandler fill:#ff9,stroke:#333
style Context fill:#ff9,stroke:#333
Diagram sources
Section sources
性能考虑
系统在设计时充分考虑了性能因素,通过异步处理、批量操作和缓存机制来提升整体性能。订单提交后立即触发验证和消费流程,确保快速响应。批量账户检查功能支持高效处理大量账户数据。
故障排除指南
常见问题包括订单提交失败、回调权限不足、账户状态异常等。建议检查请求参数完整性、用户权限配置、账户可用性等。对于回调失败的情况,需确认订单是否已处理完毕且未重复回调。
Section sources
结论
京东卡密订单处理系统提供了完整的订单生命周期管理功能,通过清晰的API设计和稳健的错误处理机制,确保了系统的可靠性和易用性。系统架构合理,组件职责明确,为后续功能扩展奠定了良好基础。