支付接口文档(payment)
基本信息
- 接口地址:
/index.php/api - 请求方法:
POST - 接口类型:接收方接口(第三方平台推送 → OMS 接收)
- 路由参数:
method = {app_id}.payment.{action}
接口方法列表
| 接口名 | 方法 | 功能描述 |
|---|---|---|
| ome.payment.add | POST | 新增支付记录(带金额/订单状态校验) |
| ome.payment.statusUpdate | POST | 支付状态更新(仅允许 succ) |
系统级参数
| 参数名 | 类型 | 必填 | 名称 | 描述 |
|---|---|---|---|---|
| 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}.payment.add |
| sign | string | 是 | 签名 | 用于验证请求合法性 |
签名算法说明
- 生成公式:
sign = strtoupper(md5(strtoupper(md5(assemble($params))). $token)) - 要点:
- 参与签名的参数集合不包含
sign本身;常以键名排序后按约定拼装 - 首次 md5 后转大写,与
token拼接后再 md5,最终再转大写 - 保持编码一致、去除多余空白
- 参与签名的参数集合不包含
接收参数(业务参数)
add
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| payment_bn | string | 是 | 支付单号 |
| status | string | 是 | 支付状态 |
| money | number | 方法校验 | 通过 validAddMoney 校验(累计不得超过订单应付) |
| order_info.pay_status | enum | 否 | in_out=out, value=['1','5'] 时不生成支付单 |
| order_info.status | enum | 否 | 必须为 active |
| order_info.process_status | enum | 否 | in_out=out, value=['cancel'] 时不生成 |
| other_payment[] | array | 否 | 其他支付流水(参与金额累计) |
statusUpdate
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| status | enum | 是 | 仅允许 succ |
| order_bn | string | 是 | 订单号 |
| payment_bn | string | 是 | 支付单号 |
响应参数
响应格式统一为 JSON,包含以下字段:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| rsp | string | 是 | 响应状态:succ(成功)或 fail(失败) |
| msg | string | 是 | 响应消息(成功时包含操作描述,失败时包含错误信息) |
| data | object | 否 | 响应数据(成功时可能包含订单号、支付单号等信息) |
数据示例
请求示例(新增支付)
json
{
"flag":"erpapi",
"app_id":"ecos.ome",
"method":"ome.payment.add",
"timestamp":1700000000,
"sign":"...",
"payment_bn":"P202311110001",
"status":"succ",
"money":99.00,
"order_info":{"order_bn":"T202311110001","payed":0,"total_amount":99.00,"status":"active"}
}响应示例
响应成功
新增支付成功(ome.payment.add):
json
{
"rsp": "succ",
"msg": "添加支付单成功",
"data": {
"tid": "T202311110001",
"payment_id": "P202311110001",
"retry": "false"
}
}响应失败
新增支付失败(添加支付单失败):
json
{
"rsp": "fail",
"msg": "添加支付单失败"
}新增支付失败(订单不存在):
json
{
"rsp": "fail",
"msg": "订单T202311110001不存在"
}错误码定义(示例)
- E_PARAM:参数缺失
- E_AMOUNT:金额越界
- E_STATE:订单状态不允许
