OMS OpenAPI 订单管理接口
你是 OMS 系统OpenAPI接口使用专家,熟悉订单管理API的调用方法、参数规范和响应格式。
接口概述
订单管理 API 提供了订单信息的查询功能。通过这些接口,您可以获取系统中的订单列表信息,支持按时间范围、店铺编码、订单号等条件进行筛选。
接口列表
| 接口名 | 方法 | 功能描述 |
|---|---|---|
orders.getList | POST | 获取订单列表 |
orders.getCouponList | POST | 获取优惠券列表 |
orders.getPmtList | POST | 获取支付方式列表 |
系统级参数
系统级参数是调用所有接口都必须提供的参数,详细说明请参考:oms-openapi-architecture.md
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| ver | number | 否 | 接口版本号,默认值:1 |
| charset | string | 否 | 字符编码,支持:utf-8,默认值:utf-8 |
| type | string | 否 | 返回数据格式,支持:json,默认值:json |
| method | string | 是 | 接口方法名,格式:orders.getList |
| flag | string | 是 | 来源标识,对应系统中配置的接入方标识 |
| timestamp | string | 是 | 时间戳,单位:秒,必须在服务器时间±3600秒范围内 |
| sign | string | 是 | 签名,详见签名算法章节 |
接口详细说明
orders.getList - 获取订单列表
功能描述
获取系统中的订单列表信息,支持按时间范围、店铺编码、订单号等条件进行筛选。
请求参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
start_time | string | 是 | 开始时间(格式:yyyy-MM-dd HH:mm:ss) |
end_time | string | 是 | 结束时间(格式:yyyy-MM-dd HH:mm:ss) |
page_no | int | 否 | 页码,默认 1 |
page_size | int | 否 | 每页条数,最小1,最大 1000 |
shop_bn | string | 否 | 店铺编码 |
order_bn | string | 否 | 订单编号 |
status | string | 否 | 订单状态 |
pay_status | string | 否 | 支付状态 |
ship_status | string | 否 | 发货状态 |
payment | string | 否 | 支付方式 |
time_select | string | 否 | 查询时间字段,默认订单更新时间,可选值:createtime(订单创建时间) |
cursor_id | number | 否 | 游标ID,前一页最后一行数据的唯一标识,首次默认值为0 |
响应参数
| 参数名 | 类型 | 描述 |
|---|---|---|
count | int | 总记录数 |
lists | array | 订单列表 |
lists 数组中的每个对象包含以下字段:
| 参数名 | 类型 | 描述 |
|---|---|---|
order_bn | string | 订单编号 |
shop_bn | string | 店铺编码 |
shop_name | string | 店铺名称 |
buyer_name | string | 买家名称 |
consignee_name | string | 收货人姓名 |
consignee_mobile | string | 收货人手机号 |
consignee_province | string | 收货省份 |
consignee_city | string | 收货城市 |
consignee_county | string | 收货区县 |
consignee_address | string | 收货地址 |
consignee_zip | string | 邮政编码 |
createtime | string | 创建时间 |
last_modified | string | 最后修改时间 |
total_amount | decimal | 订单总金额 |
payment | string | 支付方式 |
payment_name | string | 支付方式名称 |
shipping | string | 配送方式 |
shipping_name | string | 配送方式名称 |
freight | decimal | 运费 |
discount | decimal | 折扣金额 |
order_status | string | 订单状态 |
order_status_name | string | 订单状态名称 |
pay_status | string | 支付状态 |
pay_status_name | string | 支付状态名称 |
shipping_status | string | 配送状态 |
shipping_status_name | string | 配送状态名称 |
channel | string | 订单来源渠道 |
channel_name | string | 订单来源渠道名称 |
remark | string | 订单备注 |
items | array | 订单商品明细 |
items 数组中的每个对象包含以下字段:
| 参数名 | 类型 | 描述 |
|---|---|---|
bn | string | 商品编码 |
name | string | 商品名称 |
spec_info | string | 规格信息 |
unit | string | 单位 |
price | decimal | 商品价格 |
nums | int | 商品数量 |
amount | decimal | 商品金额 |
barcode | string | 条码 |
请求示例
php
<?php
// 应用标识(需要替换为实际的flag)
$flag = 'your_oms_flag';
// 私钥(需要替换为实际的token)
$token = 'your_interface_key';
// 接口方法
$method = 'orders.getList';
// 系统级参数
$systemParams = array(
'flag' => $flag,
'method' => $method,
'ver' => 1,
'charset' => 'utf-8',
'type' => 'json',
'timestamp' => time(),
);
// 应用级参数
$ApiParams = array(
'start_time' => '2025-10-01 00:00:00',
'end_time' => '2025-11-01 00:00:00',
'page_no' => 1,
'page_size' => 50
);
// 组装接口参数
$params = array_merge($systemParams, $ApiParams);
// 生成签名(参考架构Skill中的签名算法)
$params['sign'] = gen_sign($params, $token);
// curl发送请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http(s)://www.***.com/index.php/openapi/rpc/service/');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// 处理响应
$result = json_decode($response, true);响应示例
json
{
"response": {
"count": 100,
"lists": [
{
"order_bn": "SO202401010001",
"shop_bn": "SHOP001",
"shop_name": "测试店铺",
"buyer_name": "test_buyer",
"consignee_name": "张三",
"consignee_mobile": "13800138000",
"consignee_province": "北京市",
"consignee_city": "北京市",
"consignee_county": "朝阳区",
"consignee_address": "测试路1号",
"consignee_zip": "100000",
"createtime": "2024-01-01 10:00:00",
"last_modified": "2024-01-01 10:30:00",
"total_amount": 1000.00,
"payment": "alipay",
"payment_name": "支付宝",
"shipping": "express",
"shipping_name": "快递",
"freight": 10.00,
"discount": 0.00,
"order_status": "active",
"order_status_name": "已下单",
"pay_status": "succ",
"pay_status_name": "已支付",
"shipping_status": "unshipped",
"shipping_status_name": "未发货",
"channel": "pc",
"channel_name": "PC端",
"remark": "测试订单",
"items": [
{
"bn": "PROD001",
"name": "测试商品",
"spec_info": "规格信息",
"unit": "个",
"price": 100.00,
"nums": 10,
"amount": 1000.00,
"barcode": "1234567890123"
}
]
}
]
}
}orders.getCouponList - 获取优惠券列表
功能描述
获取系统中的优惠券列表信息,支持按优惠券名称、类型等条件进行筛选。
请求参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
start_time | string | 是 | 开始时间(完成状态),例如2012-12-08 00:00:00 |
end_time | string | 是 | 结束时间(完成状态),例如2012-12-08 23:59:59 |
order_bn | string | 否 | 订单号,平台订单号,多个订单号用逗号分隔 |
page_no | int | 否 | 页码,默认1,第一页 |
page_size | int | 否 | 每页数量,最大100 |
响应参数
| 参数名 | 类型 | 描述 |
|---|---|---|
count | int | 总记录数 |
lists | array | 优惠券列表 |
lists 数组中的每个对象包含以下字段:
| 参数名 | 类型 | 描述 |
|---|---|---|
coupon_id | int | 优惠券 ID |
coupon_name | string | 优惠券名称 |
coupon_type | string | 优惠券类型 |
coupon_type_name | string | 优惠券类型名称 |
value | decimal | 优惠金额/折扣 |
min_amount | decimal | 最低消费金额 |
start_time | string | 有效期开始时间 |
end_time | string | 有效期结束时间 |
status | string | 状态 |
orders.getPmtList - 获取支付方式列表
功能描述
获取系统中的支付方式列表信息。
请求参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
start_time | string | 是 | 开始时间(完成状态),例如2012-12-08 00:00:00 |
end_time | string | 是 | 结束时间(完成状态),例如2012-12-08 23:59:59 |
order_bn | string | 否 | 订单号,平台订单号,多个订单号用逗号分隔 |
page_no | int | 否 | 页码,默认1,第一页 |
page_size | int | 否 | 每页数量,最大100 |
响应参数
| 参数名 | 类型 | 描述 |
|---|---|---|
count | int | 总记录数 |
lists | array | 支付方式列表 |
lists 数组中的每个对象包含以下字段:
| 参数名 | 类型 | 描述 |
|---|---|---|
payment_id | int | 支付方式 ID |
payment | string | 支付方式标识 |
payment_name | string | 支付方式名称 |
status | string | 状态 |
错误处理
系统级错误码
系统级错误码请参考:oms-openapi-architecture.md
业务级错误码
| 错误码 | 错误信息 | 解决方案 |
|---|---|---|
| 0 | 成功 | - |
| 2001 | 缺少必要的参数 | 请检查请求参数是否完整 |
| 2002 | 非法的请求参数 | 请检查参数格式和范围是否正确 |
注意事项
- 时间格式:时间格式必须为
yyyy-MM-dd HH:mm:ss,否则可能导致查询失败 - 分页限制:
page_size参数最大支持 1000,超过将被限制为 100 - 查询效率:对于大数据量的查询,建议使用时间范围进行筛选,以提高查询效率
- 时间戳同步:时间戳必须与服务器时间保持同步,误差不超过3600秒
- 签名唯一性:每个请求必须生成唯一的签名,避免重复提交
- 密钥安全:请妥善保管接口密钥,避免泄露
- URL编码:所有请求参数中的特殊字符必须进行 URL 编码
- 调用频率:为了系统性能和稳定性,请避免短时间内发送大量请求,建议控制调用频率
- 数据脱敏:部分敏感数据(如客户信息、联系方式等)在API返回时可能会进行脱敏处理
参考文档
- OpenAPI架构和使用:
oms-openapi-architecture.md - 销售单API:
oms-openapi-sales.md - 发货单API:
oms-openapi-delivery.md
Guidelines
- 参数验证:在调用接口前,确保所有必填参数都已提供
- 时间范围:建议使用合理的时间范围进行查询,避免一次性查询过多数据
- 分页处理:对于大数据量查询,使用分页参数控制返回结果数量
- 错误处理:根据错误码判断错误类型,系统级错误参考架构Skill
- 响应解析:检查响应中的
error_response字段,判断请求是否成功 - 数据使用:注意响应数据可能包含敏感信息,确保数据传输和存储的安全性
