AI门票接口文档
本文档包含票务系统的核心接口:创建订单、核销订单、退单。所有接口均采用 DES-ECB 加密请求体,MD5 签名认证机制,请求 / 响应均为 JSON 格式。
1 通用规则
1.1 基础信息
1.2 请求结构
{
"requestHead": {
"method": "接口方法名",
"timestamp": "秒级时间戳",
"version": "接口版本",
"userId": "用户ID",
"sign": "签名串"
},
"requestBody": "DES加密后的请求体(Base64编码)"
}
1.3 签名规则
sign = MD5(userId + method + timestamp + version + encryptedBody + userKey)
- encryptedBody:DES 加密后的请求体 Base64 字符串
- userKey:用户密钥(用于 DES 加密和签名)
1.4 加密规则
用户密钥补齐 8 位(不足补空格,超过取前 8 位)
编码格式:UTF-8
请求和响应的报文body都是加密的,需要使用用户密钥加密和解密。
2 订单接口
2.1 创建订单接口
2.1.1 接口信息
| 项 |
说明 |
| 接口路径 |
/CreateOrder |
| 方法名 |
CreateOrder |
| 接口版本 |
1.0 |
2.1.2 请求报文
{
"createMan": "test_admin",
"userNo": "user_001",
"remark": "",
"orderTitle": "测试门票订单",
"totalMoney": 99.9,
"orderCount": 2,
"payType": 10,
"payMoney": 95.0,
"payOrderNo": "PAY20260317001",
"payTime": "2026-03-17T10:00:00.000Z",
"name": "张三",
"mobileNo": "13800138000",
"idNo": "110101199001011234",
"purchaseOrderNo": "CG20260317001",
"sellOrderNo": "",
"barcodeNo": "",
"userRemark": ""
}
| 字段名 |
类型 |
必填 |
说明 |
| operateMan |
String |
是 |
操作人名称 |
| userNo |
String |
是 |
用户编号 |
| remark |
String |
否 |
订单备注 |
| orderTitle |
String |
是 |
订单标题 |
| totalMoney |
Number |
是 |
订单总金额(元) |
| orderCount |
Number |
是 |
订单数量 |
| payType |
Number |
否 |
支付方式(10 = 微信,20 = 支付宝) |
| payMoney |
Number |
否 |
实际支付金额(元) |
| payOrderNo |
String |
否 |
支付平台订单号 |
| payTime |
String |
否 |
支付时间(ISO 格式) |
| name |
String |
是 |
联系人姓名 |
| mobileNo |
String |
是 |
联系手机号 |
| idNo |
String |
否 |
身份证号 |
| purchaseOrderNo |
String |
是 |
采购订单号(幂等字段) |
| sellOrderNo |
String |
否 |
销售订单号 |
| barcodeNo |
String |
否 |
条码号 |
| userRemark |
String |
否 |
用户备注 |
2.1.3 响应报文
{
"orderNo": 100001,
"purchaseOrderNo": "CG20260317001",
"reserveCount": 2,
"createTime": "2026-03-17T09:50:00.000Z"
}
| 字段名 |
类型 |
必填 |
说明 |
| orderNo |
Number |
否 |
订单编号(系统生成唯一标识) |
| purchaseOrderNo |
String |
否 |
采购订单号(幂等字段) |
| reserveCount |
Number |
否 |
剩余可核销数量(初始等于订单数量) |
| createTime |
String |
否 |
订单创建时间(ISO 格式) |
2.2 核销订单接口
2.2.1 接口信息
| 项 |
说明 |
| 接口路径 |
/CheckOrder |
| 方法名 |
CheckOrder |
| 接口版本 |
1.0 |
2.2.2 请求报文
{
"createMan": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
"thirdCheckNo": "1000000001",
"orderNo": 1,
"remark": "",
"checkCount": 1,
}
| 字段名 |
类型 |
必填 |
说明 |
| createMan |
String |
是 |
创建人 |
| thridCheckNo |
String |
是 |
三方核销流水号 |
| orderNo |
Number |
是 |
订单号 |
| remark |
String |
否 |
核销备注 |
| checkCount |
Number |
是 |
核销数量 |
2.2.3 响应报文
{
"checkNo": 200001,
"orderNo": 1,
"checkCount": 1,
"thirdCheckNo": "1000000001"
}
| 字段名 |
类型 |
必填 |
说明 |
| checkNo |
Number |
否 |
核销记录编号(系统生成) |
| orderNo |
Number |
否 |
订单号 |
| checkCount |
Number |
否 |
本次核销数量 |
| thirdCheckNo |
String |
否 |
三方核销流水号 |
2.3 退单接口
2.2.1 接口信息
| 项 |
说明 |
| 接口路径 |
/RefundOrder |
| 方法名 |
RefundOrder |
| 接口版本 |
1.0 |
2.3.2 请求报文
{
"createMan": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
"thirdRefundNo": "1000000001",
"orderNo": 1,
"remark": "",
"refundCount": 2
}
| 字段名 |
类型 |
必填 |
说明 |
| createMan |
String |
是 |
创建人 |
| thridRefundNo |
String |
是 |
三方退单流水号 |
| orderNo |
Number |
是 |
需要退款的订单号 |
| remark |
String |
否 |
退款备注 |
| refundCount |
Number |
是 |
实际退款数量 |
2.3.3 响应报文
{
"refundNo": 300001,
"orderNo": 1,
"refundCount": 2,
"refundMoney": 95.0,
"thirdRefundNo": "1000000001"
}
| 字段名 |
类型 |
必填 |
说明 |
| refundNo |
Number |
否 |
退款记录编号(系统生成) |
| orderNo |
Number |
否 |
订单号 |
| refundCount |
Number |
否 |
本次退款数量 |
| refundMoney |
Number |
否 |
本次退款金额(元) |
| thirdRefundNo |
String |
否 |
三方退单流水号 |
2.4 查询订单接口
2.4.1接口信息
| 项 |
说明 |
| 接口路径 |
/QueryOrder |
| 方法名 |
QueryOrder |
| 接口版本 |
1.0 |
2.4.2 请求报文
{
"orderNo": 1
}
| 字段名 |
类型 |
必填 |
说明 |
| orderNo |
Number |
是 |
订单号 |
2.4.3 响应报文
{
"orderNo": 1,
"orderTitle": "测试门票订单",
"totalMoney": 99.9,
"orderCount": 2,
"checkCount": 1,
"reserveCount": 1,
"refundCount": 0,
"payType": 10,
"payMoney": 95.0,
"payOrderNo": "PAY20260317001",
"payTime": "2026-03-17T10:00:00.000Z",
"mobileNo": "13800138000",
"purchaseOrderNo": "CG20260317001",
"sellOrderNo": "",
"createTime": "2026-03-17T09:50:00.000Z",
"status": "部分核销"
}
| 字段名 |
类型 |
必填 |
说明 |
| orderNo |
Number |
否 |
订单号 |
| orderTitle |
String |
否 |
订单标题 |
| totalMoney |
Number |
否 |
订单总金额(元) |
| orderCount |
Number |
否 |
订单总数量 |
| checkCount |
Number |
否 |
已核销数量 |
| reserveCount |
Number |
否 |
剩余可核销 / 退款数量 |
| refundCount |
Number |
否 |
已退款数量 |
| payType |
Number |
否 |
支付方式(10 = 微信,20 = 支付宝) |
| payMoney |
Number |
否 |
实际支付金额(元) |
| payOrderNo |
String |
否 |
支付平台订单号 |
| payTime |
String |
否 |
支付时间(ISO 格式) |
| mobileNo |
String |
否 |
联系手机号 |
| purchaseOrderNo |
String |
否 |
采购订单号 |
| sellOrderNo |
String |
否 |
销售订单号 |
| createTime |
String |
否 |
订单创建时间(ISO 格式) |
| status |
String |
否 |
订单状态(已创建 / 已核销 / 已退款 / 部分退款 / 部分核销) |
2.5 核销订单通知接口
2.5.1 接口信息
| 项 |
说明 |
| 接口路径 |
第三方提供 |
| 方法名 |
CheckNotify |
| 接口版本 |
1.0 |
2.5.2 请求报文
{
"orderNo": 1,
"currentCheckCount": 1,
"totalCheckCount": 1
}
| 字段名 |
类型 |
必填 |
说明 |
| orderNo |
Number |
是 |
订单编号 |
| currentCheckCount |
Number |
是 |
本次核销数量 |
| totalCheckCount |
Number |
是 |
累计核销数量 |
2.5.3 响应报文
{
"resCode": "1000",
"resMsg": "通知成功"
}
注意:以上报文直接明文返回,不需要加密。
| 字段名 |
类型 |
必填 |
说明 |
| resCode |
String |
否 |
响应码(1000 = 成功,其他 = 失败) |
| resMsg |
String |
否 |
响应描述 |