发货回调标准接口
1、当订单在云帆发货完成后,状态发生变更时,会由云帆回调对接方的回调地址进行状态变更的通知。
请按照云帆提供的文件开发标准回调接口。
2、如果贵司的APP或平台已经有发货接口了,可以由云帆调用贵司的发货接口发货,请联系管理员开发配置自定义发货回调接口。
回调地址
用户在云帆系统中配置的地址,配置路径:销售管理→店铺管理→接口配置
测试账号
【app_id】: i1hY3vOmCBWAB9ddDSDTN1RL
【appSecret】: 37f2af0405eaea09c363115273eb02df05cdba7f
正式环境的请求地址及账号信息,请在云帆ERP系统中进行申请。
Headers必须参数
字段 | 类型 | 空 | 默认 | 注释 |
---|---|---|---|---|
sign | String | 否 | 签名,MD5(app_id + PostBody + appSecret) |
PostBody请求参数
参数名称 | 参数类型 | 必须 | 参数说明 | 示例值 |
---|---|---|---|---|
app_id | String | 是 | 系统中申请的appId | i1hY3vOmCBWAB9ddDSDTN1RL |
msg_id | String | 是 | 请求消息Id | 164776226937503744 |
tid | String | 是 | 发货的订单号 | E123456 |
data | String | 是 | 发货详情结构体的Json数据 | 详见下面【发货详情结构体】的说明 |
timestamp | String | 是 | 毫秒级时间戳 | 1620901344943 |
发货详情结构体
参数名称 | 参数类型 | 必须 | 参数说明 | 示例值 |
---|---|---|---|---|
company_id | String | 是 | 云帆系统的公司主体ID | 1 |
shop_id | String | 是 | 云帆系统的店铺ID | 1 |
branch_id | String | 是 | 网点ID | 0 |
tid | String | 是 | 主订单号 | E123456 |
oid | String | 是 | 子订单号 | 123456 |
express_id | Int | 是 | 快递公司ID | 4 |
express_name | String | 是 | 快递公司名称,使用utf-8进行了UrlEncode | %e9%9f%b5%e8%be%be |
waybill_no | String | 是 | 运单号(快递单号) | yd12345678 |
express_date | String | 是 | 发货时间 | 05/13/2021 10:22:24 |
operate_user | String | 是 | 操作人 | 1660 |
Post的Json数据示例
body-json字符串数据
{"app_id":"i1hY3vOmCBWAB9ddDSDTN1RL","msg_id":"164776226937503744","tid":"E123456","data":{"company_id":1,"shop_id":1,"branch_id":0,"tid":"E123456","oid":"123456","express_name":"%e9%9f%b5%e8%be%be","express_id":"4","waybill_no":"yd12345678","express_date":"05/13/2021 10:22:24","operate_user":"1660"},"timestamp":"1620901344943"}
请求头签名sign:
7f7d73b4db668084f8f9c1223eacff2c
可直接使用该数据进行验证回调,均使用文头提供的应用信息
云帆回调请求的说明
1、请求方法:POST,sign参数放在Header上,Post的Json数据放在Body传输
2、编码格式为UTF8
3、Content-Type:application/json
4、签名说明:sign=MD5(app_id + PostBody + appSecret)转小写
注意:
1、由于JSON没有明确的跨语言规范,因此对JSON解析之后再进行重新编码,并不一定能还原原始JSON字符串。所以请严格按照原始报文进行签名和验签!
2、注意验签的时候,检查原始报文的快递公司名称是进行了urlencode的,请使用原始报文验签
3、验签请使用云帆传递过去的 Body字符串 进行加密验签,避免使用对象接收数据转字符串后和云帆传递数据字段顺序对不上,加密验签通不过的情况。
响应参数
参数名称 | 参数类型 | 必须 | 参数说明 | 示例值 |
---|---|---|---|---|
status | String | 是 | 接收消息成功后请返回200,非200云帆会重试两次,第一次五分钟后,第二次十分钟后 | 200 |
success | Boolean | 是 | 接收消息是否成功,等于false云帆会重试两次 | true/false |
message | String | 是 | 响应消息 | 请求成功 |
回调成功的响应示例
{
"status":200,
"success":true,
"message":"success"
}
回调失败的响应示例
{
"status":非200的错误码,
"success":false,
"message":"错误详情"
}