快递发货单打印技术文档
一、发货单接口
1.1 接口格式
提供统一格式的HTTP POST或GET调用接口,并返回统一格式JSON数据。
1.2 请求地址
https://poll.kuaidi100.com/print/billparcels.do 请求参数:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
method | 是 | string | 业务类型(默认:billparcels) |
key | 是 | string | 授权码,请申请企业版获取 |
sign | 是 | string | 32位大写 签名,用于验证身份,按MD5 (param +t+key+ secret)的顺序进行MD5加密,不需要加上“+”号。secret在企业管理后台获取 |
t | 是 | string | 时间戳如:1576123932000 |
param | 是 | param | 由其他字段拼接,通过管理后台的打印发货单模板配置信息获取 |
settings | 否 | string | 由其他字段拼接 |
param数据结构:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
tempid | 是 | string | 通过管理后台的发货单模板信息获取 |
siid | 是 | string | 打印设备,通过打印机输出的设备码进行获取 |
callBackUrl | 否 | string | 打印状态回调地址,默认仅支持http |
tab0 | 否 | tab* | 发货单表格列表内容,JsonArrayString类型,多表格时用tab0,tab1,tab2等追加对象 |
Θimg0 | 否 | object | 多图片时用img0,img1,img2等追加 |
¬type | 是 | string | BASE_64:base64 图片格式;URL:图片地址;QR_CODE:二维码;CODE_128:code128格式的条形码 |
¬content | 是 | string | 图片内容 |
¬width | 是 | number | 图片宽度 |
¬height | 是 | number | 图片高度 |
…… | 否 | string | 其他面单特殊需求参数显示,可以到后台-面单模板选择该模板,下方有对应参数列表 |
settings数据结构:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
pageWidth | 是 | string | 宽,单位mm,默认值:100 |
pageHeight | 否 | string | 高,单位mm ,续打纸张时,该字段设置为null或空串 |
Θmargins | margins | 边距 | |
¬top | 否 | string | 上边距,单位:mm,默认:0 |
¬bottom | 否 | string | 下边距,单位:mm,默认:0 |
¬left | 否 | string | 左边距,单位:mm,默认:0 |
¬right | 否 | string | 右边距,单位:mm,默认:0 |
1.3 请求参数示例
发货单模板示例:
注,发货单模板内容都可以自定义实现,实现规则如下:
1、自定义参数命名格式:#{xxxx}
2、表格标题的设置,右键选择表格属性->标题单元格->第一行
3、表格边框线的显示,右键->表格属性->边框设置为1->间距和边距设置为0
param参数示例:
{
"tempid": "129906826866200576",
"siid": "L2204140087",
"callBackUrl": "http://www.baidu.com/fhd/callback",
"petName": "kd100",
"recName": "小百",
"recPhone": "10086",
"payTime": "2021-01-15 15:40:55",
"expressName": "德邦快递",
"printTime": "2021-01-15 15:41:30",
"printCount": "1",
"address": "广东省深圳市南山区金蝶软件园",
"total": "21",
"remark": "购物小票作为购物凭证,请妥善保管,您有任何疑问,请咨询服务热线 123456798",
"img0": {
"type": "CODE_128",
"content": "887921256577",
"width": 350,
"height": 100
},
"tab0": [
{
"prodName": "热敏纸",
"count": "5",
"specs": "76*130",
"unitPrice": "30",
"price": "150"
},
{
"prodName": "热敏纸",
"count": "10",
"specs": "100*180",
"unitPrice": "50",
"price": "500"
},
{
"prodName": "续打纸",
"count": "5",
"specs": "",
"unitPrice": "40",
"price": "200"
},
{
"prodName": "云打印机",
"count": "1",
"specs": "二代",
"unitPrice": "499",
"price": "499"
}
]
}
settings参数示例
{
"pageWidth": 100,
"pageHeight": 180,
"margins": {
"top": 5,
"bottom": 5,
"left": 5,
"right": 5
}
}
输出效果如下:
1.4 返回结果
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
result | boolean | 提交结果 | true提交成功,false失败 |
returnCode | string | 返回编码 | |
message | string | 返回报文描述 | |
data | data |
data数据结构
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
taskId | string | 任务ID |
1.5 返回结果示例
{
"result": true,
"returnCode": "200",
"message": "提交成功",
"data": {
"taskId":"" // 任务ID
}
}
1.6 信息代码含义
信息代码 | 信息内容描述 | 原因及建议处理方式 |
---|---|---|
200 | 提交成功 | 提交成功 |
400 | 参数错误 | 请根据技术文档请求,注意参数类型及是否必填。 |
500 | 服务器错误 | 快递100的服务器出现间歇或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,也会报此错误 |
503 | 签名认证失败 | 请检查加密方式,param + t + key + secret 的顺序进行MD5加密,加密后字符串转大写,不用加上“+”号 |
600 | 您不是合法的用户(即授权Key出错) | 账号无可用单量,需要充值 |
601 | KEY已过期 | 账号无可用单量,需要充值 |
700 | 错误的回调地址 | 检查回调地址,或者联系快递100工作人员 |
二、打印回调接口
打印状态变更是会触发回调,回调后如果没有得到合作方正确返回,会重复回调多2次,即最多回调3次。每次回调间隔30分钟。
2.1 接口格式
提供统一格式的HTTP POST,并返回统一格式JSON数据。 请求报头:Content-Type=application/x-www-form-urlencoded;charset=UTF-8
2.2 请求地址
请求参数:
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
taskId | string | 任务ID | |
sign | string | 签名 | 32位大写签名,MD5 (param +salt) |
param | param | 参数主体 |
param数据结构:
字段 | 是否必填 | 类型 | 说明 |
---|---|---|---|
status | 是 | string | 状态编码,200:打印成功,201打印不成功。 |
message | 是 | string | 状态描述 |
2.3 返回结果
字段 | 说明 | 备注 |
---|---|---|
result | 提交结果 | true提交成功,false失败 |
returnCode | 返回编码 | |
message | 返回报文描述 |
2.4 返回结果示例
{
"result":true,
"returnCode":"200",
"message":"成功"
}
2.5 信息代码含义
字段名称 | 字段含义 |
---|---|
result | true表示成功,false表示失败。如果提交回调接口的地址失败,30分钟后重新回调,3次仍旧失败的,自动放弃 |
returnCode | 200: 提交成功 500: 服务器错误 其他错误请自行定义 |
message | 返回的提示 |
其他信息快递100会忽略。