发票接口文档(invoice)
基本信息
- 接口地址:
/index.php/api - 请求方法:
POST - 接口类型:接收方接口(第三方平台推送 → OMS 接收)
- 路由参数:
method = {app_id}.invoice.{action}
接口方法列表
| 接口名 | 方法 | 功能描述 |
|---|---|---|
| ome.invoice.add | POST | 新增发票信息(与订单关联) |
| ome.invoice.message_push | 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}.invoice.add |
| sign | string | 是 | 签名 | 用于验证请求合法性 |
签名算法说明
- 生成公式:
sign = strtoupper(md5(strtoupper(md5(assemble($params))). $token)) - 要点:
- 参与签名的参数集合不包含
sign本身;常以键名排序后按约定拼装 - 首次 md5 后转大写,与
token拼接后再 md5,最终再转大写 - 保持编码一致、去除多余空白
- 参与签名的参数集合不包含
接收参数(业务参数)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| order_bn | string | 是 | 关联订单号 |
| invoice_bn | string | 否 | 发票单号 |
| title | string | 是 | 发票抬头 |
| tax_no | string | 否 | 税号 |
| type | string | 否 | 发票类型(normal/special/electron 等) |
| amount | number | 是 | 发票金额 |
| content | string | 否 | 开票内容 |
| receiver | string | 否 | 收票人 |
| address | string | 否 | 收票地址 |
| message_type | string | 否 | 推送消息类型(用于 message_push) |
| message_body | object | 否 | 推送消息体 |
响应参数
响应格式统一为 JSON,包含以下字段:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| rsp | string | 是 | 响应状态:succ(成功)或 fail(失败) |
| msg | string | 否 | 响应消息(成功时包含操作描述,失败时包含错误信息) |
| data | object | 否 | 响应数据(成功时可能包含发票单号等信息) |
数据示例
请求示例(新增发票)
json
{
"flag":"erpapi",
"app_id":"ecos.ome",
"method":"ome.invoice.add",
"timestamp":1700000000,
"sign":"...",
"order_bn":"T202311110001",
"invoice":{
"invoice_bn":"IV202311110001",
"title":"上海某公司",
"amount":100.00,
"type":"normal"
}
}响应示例
响应成功
新增发票成功(ome.invoice.add):
json
{
"rsp": "succ",
"msg": "发票创建成功"
}响应失败
新增发票失败(参数缺失):
json
{
"rsp": "fail",
"msg": "参数缺失"
}新增发票失败(订单状态不允许):
json
{
"rsp": "fail",
"msg": "订单状态不允许"
}错误码定义(示例)
- E_PARAM:参数缺失
- E_STATE:订单状态不允许
- E_RULE:发票规则校验失败
