分单接口文档(branch)
基本信息
- 接口地址:
/index.php/api - 请求方法:
POST - 接口类型:接收方接口(第三方平台推送 → OMS 接收)
- 路由参数:
method = {app_id}.branch.{action}
接口方法列表
| 接口名 | 方法 | 功能描述 |
|---|---|---|
| ome.branch.wait | POST | 分单等待/占用控制 |
系统级参数
| 参数名 | 类型 | 必填 | 名称 | 描述 |
|---|---|---|---|---|
| flag | string | 是 | 接入标识 | 固定值 erpapi |
| app_id | string | 是 | 应用ID | 如 ecos.ome |
| certi_id | string | 是 | 证书ID | 系统证书编号 |
| from_node_id | string | 是 | 来源节点 | 推送方节点ID |
| node_id | string | 是 | 目标节点 | 店铺节点ID(OMS节点) |
| node_type | string | 是 | 节点类型 | 如 ecos.ome |
| timestamp | int | 是 | 时间戳 | 10位时间戳 |
| method | string | 是 | 接口方法名 | 形如 {app_id}.branch.wait |
| sign | string | 是 | 签名 | 用于验证请求合法性 |
签名算法说明
- 生成公式:
sign = strtoupper(md5(strtoupper(md5(assemble($params))). $token)) - 要点:
- 参与签名的参数集合不包含
sign本身;常以键名排序后按约定拼装 - 首次 md5 后转大写,与
token拼接后再 md5,最终再转大写 - 保持编码一致、去除多余空白
- 参与签名的参数集合不包含
接收参数(业务参数)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| available_warehouses | string | 是 | 可用仓库(逗号分隔或编码集合) |
| items | array | 是 | 分单明细数组(包含 bn、num 等) |
响应参数
响应格式统一为 JSON,包含以下字段:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| rsp | string | 是 | 响应状态:succ(成功)或 fail(失败) |
| msg | string | 否 | 响应消息(成功时包含操作描述,失败时包含错误信息) |
| data | object | 否 | 响应数据(成功时可能包含分单结果等信息) |
数据示例
请求示例(分单等待)
json
{
"flag":"erpapi",
"app_id":"ecos.ome",
"method":"ome.branch.wait",
"timestamp":1700000000,
"sign":"...",
"available_warehouses":"HZ01,SH01",
"items":[{"bn":"SKU001","num":1}]
}响应示例
响应成功
分单等待成功(ome.branch.wait):
json
{
"rsp": "succ",
"msg": "分单等待成功"
}响应失败
分单等待失败(参数缺失):
json
{
"rsp": "fail",
"msg": "参数缺失"
}分单等待失败(仓库不可用):
json
{
"rsp": "fail",
"msg": "仓库不可用或明细不合法"
}错误码定义(示例)
- E_PARAM:参数缺失
- E_STATE:仓库不可用/明细不合法
