一、电子云签接口介绍
电子云签是在企业数字化转型背景下,快递公司推出的在物流履约交付环节协助客户与收件人进行合同签署的新型增值服务,助力企业实现信息流和物流合二为一。快递100电子云签接口可实现一次对接多家物流公司,减少客户开发成本。不同快递公司对电子云签称呼不同,详见文档第四部分。
二、电子云签接口对接流程
2.1 先上传文件后下单模式(支持顺丰、德邦)
1.对接调用回单文件上传接口,获取合同ID等参数,详见第三部分对接说明。
3.物流签收后,调用图片注册接口传入回调地址给快递100
4.快递100调用客户提供的回调地址,将签署后的文件传回给客户
2.2 先下单后上传文件模式(支持顺丰、跨越)
顺丰对接流程见:https://api.kuaidi100.com/document/683e5d61e9971b1792c710f1
跨越对接流程见:https://api.kuaidi100.com/document/kuayuedianzihuidan
三、电子云签接口对接
3.1、回单文件上传接口
调用方向:客户>>快递100
3.1.1 请求地址
https://api.kuaidi100.com/thirdApi/file/upload
3.1.2 请求方式
post
Content-Type :multipart/form-data;
3.1.3 请求参数
| 参数名 | 类型 | 描述 | 是否必须 |
|---|---|---|---|
| key | String | 授权码,请到快递100页面申请企业版接口获取 | 是 |
| file | file | 上传的文件 | 否 |
| t | String | 当前毫秒时间戳 | 是 |
| sign | String | 加密签名,md5(param + t + key + secret)转大写 | 是 |
| param | object | string |
param参数结构
| 字段名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| kuaidicom | string | 快递公司编码 | 是 |
| fileName | string | 文件名 | 否 |
| kuaidinum | string | 快递单号 | 跨越必填 |
| partnerId | string | 电子面单账户/客户编码 | 跨越必填 |
| signName | string | 指定签署人姓名,目前只支持德邦 | 否 |
| signMobilePhone | string | 指定签署人手机号,目前只支持德邦 | 否 |
| resourceCode | string | 资源id,仅用于顺丰微签 | 否 |
| channelCode | string | 顺丰渠道编码,需联系顺丰销售获取 | 否 |
请求参数示例
curl --location 'https://api.kuaidi100.com/thirdApi/file/upload' \
--form 'file=@"/C:/Users/kuaidi100/Desktop/测试.png"' \
--form 'key="********"' \
--form 't="1732875767003"' \
--form 'sign="8044BB3D1A7B36829D0A6740688AB241"' \
--form 'param="{\"kuaidicom\":\"debangkuaidi\",\"fileName\":\"测试.png\"}"'
3.1.4 接口返回结果
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| code | int | 返回状态码:200-成功;其他:失败 |
| data | Object | 数据体内容 |
| message | String | 描述内容 |
| success | boolean | 是否成功 |
data字段内容:
| 字段名 | 数据类型 | 描述 | 是否必须 |
|---|---|---|---|
| fileId | String | 文件id(下单时使用) | 是 |
| orderId | string | 德邦orderId | 德邦必须 |
返回结果示例
{
"code": 200,
"data": {
"orderId": "01732870368200FDzAJD",
"fileId": "3725563646228405255"
},
"message": "success",
"time": 0,
"success": true
}
3.2、电子面单下单接口
调用方向:客户>>快递100
电子面单下单接口对接文档见电子面单下单
下单传参参考:电子面单下单使用电子回单服务如何下单?
3.3、回单文件注册接口
调用方向:客户>>快递100
3.3.1 接口格式
提供统一格式的HTTP POST或GET调用接口,并返回统一格式JSON数据。
3.3.2 请求地址
https://api.kuaidi100.com/label/order
3.3.3请求参数(header)
| 名称 | 类型 | 默认值 |
|---|---|---|
| Content-Type | string | application/x-www-form-urlencoded |
请求参数(body)
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| method | 是 | string | 业务类型(默认:register) |
| key | 是 | string | 授权码,请到快递100页面申请企业版接口获取 |
| sign | 是 | string | 32位大写,签名,用于验证身份,按MD5 (param +t+key+ secret)的顺序进行MD5加密,不需要加上“+”号,secret可在企业管理后台中企业信息查看 |
| t | 是 | string | 时间戳如:1576123932000 |
| param | 是 | param | 由其他字段拼接 |
param数据结构:
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| kuaidicom | 是 | string | 下单时使用的快递公司编码(如:shunfeng) |
| callbackUrl | 是 | string | 回调地址 |
| kuaidinum | 否 | string | 快递单号;顺丰必填 |
| partnerId | 否 | string | 月结账号;顺丰必填 |
| phone | 否 | string | 收件人或者寄件人手机号码,二者选其一即可,必须准确;顺丰必填 |
| fileId | 否 | string | 合同ID,德邦必填 |
请求参数示例
curl --location 'https://api.kuaidi100.com/label/order' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'method=register' \
--data-urlencode 'key=********' \
--data-urlencode 'sign=8044BB3D1A7B36829D0A6740688AB241' \
--data-urlencode 'param={
"kuaidinum": "DPK123456",
"phone": "13088888888",
"kuaidicom": "debangkuaidi",
"callbackUrl": "http://api.kuaidi100/test/callBack",
"partnerId": "123456",
"fileId":"3725553074795551748"
}' \
--data-urlencode 't=1732875767003'
3.3.4 接口返回结果
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| code | int | 返回状态码:200-成功;其他:失败 |
| data | Object | 数据体内容 |
| message | String | 描述内容 |
| success | boolean | 是否成功 |
返回结果示例
{
"code": 200,
"data": {
"taskId": "123456789012345678901234567890AB",
},,
"message": "success",
"time": 0,
"success": true
}
3.3.5 返回信息代码含义
| 信息代码 | 信息内容描述 | 原因及建议处理方式 |
|---|---|---|
| -1 | 服务器错误 | 快递100的服务器出现间歇或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,也会报此错误 |
| 200 | 提交成功 | 提交成功 |
| 30001 | 参数错误 | 请根据技术文档请求,注意参数类型及是否必填 |
| 30002 | 验证签名失败 | 检查加密方式,param +t+key+ secret的顺序进行MD5加密,加密后字符串转32位大写,不用加上“+”号 |
| 30003 | 账号信息不正确 | 检查key是否正确 |
| 30004 | 账户单量不足 | 单量不足需要充值 |
| 30005 | 快递公司返回异常 | 按照描述可以自行检查参数的数据类型是否正确 |
3.4、文件回调
调用方向:快递100>>客户
文件注册后,当快递妥投后,会通过该方式推送到图片注册时传的callbackUrl接口,只回调1次。
3.4.1 接口格式
提供统一格式的HTTP POST或GET调用接口,并返回统一格式JSON数据。
3.4.2 请求地址
文件注册时传的callbackUrl接口
3.4.3请求参数(header)
| 名称 | 类型 | 默认值 |
|---|---|---|
| Content-Type | string | application/x-www-form-urlencoded |
请求参数(body)
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| taskId | 是 | string | 任务id |
| pushType | 是 | string | (默认:register) |
| param | 是 | param | 由其他字段拼接 |
param数据结构:
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| kuaidinum | 否 | string | 快递单号;顺丰必填 |
| kuaidicom | 是 | string | 快递公司编码(如:shunfeng) |
| base64 | 是 | string | 签署后文件base64字符串,请以PDF格式类型保存文件 |
请求参数示例
curl --location --request POST 'http://www.baidu.com/test/callback' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'param={
"kuaidinum": "SF13****168490",
"kuaidicom": "shunfeng",
"base64": "/9122se....."
}' \
--data-urlencode 'taskId=EA2B8757ECE45B9326873A639C91D91F' \
--data-urlencode 'pushType=register'
3.4.4 返回结果
客户按以下格式返回结果给快递100
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| returnCode | string | 返回状态码:200-成功;其他:失败 |
| message | String | 描述内容 |
| result | boolean | 是否成功 |
返回结果示例
{
"returnCode": "200",
"message": "success",
"result": true
}
四、目前接口支持的快递公司
| 快递公司 | 编码 | 增值服务 |
|---|---|---|
| 德邦快递 | debangkuaidi | 德邦电子云签 |
| 顺丰速运 | shunfeng | 顺丰微签 |
| 跨越速运 | kuayue | 电子回单 |
更多快递公司持续接入中。