API文档/云打印/打印电子面单

1.用API打印发货单、取件码、标签、小票单等

2.用API打印快递单

要初步测试,告知下我们客服要开始测试,
调用API成功打印后,会把您提交打印的效果拍照给您看。

初步测试一定会用到的一些参数(供测试对接看效果用):
用户ID
app_id=”108344”;
应用密钥
api_key=”86c7ea9521d3b525be539b0bda4c8f6f2e07cf3c“;
目标云打印机的访问密钥
agent_id=”48399299757042546”;
该供测试的目标云打印机,默认绑定配置了圆通菜鸟电子面单,已经可以拉出我们提供的圆通电子面单单号源。
测试时,建议请求参数waybill_code,routing_info留空即可,
【因为是圆通测试单号】请设置请求参数cp_code=”yt”;
请求参数template_id=”666691”; 或template_id=”666696”; 或template_id=”666718”; 或参数template_id留空.【所有不是必填项的请求参数都可以留空,因为云打印机绑定圆通单号源了,所有routing_info也请留空即可】

以下请求参数routing_info留空
image.png

应用场景

  1. 向云打印机发送电子面单打印任务,在云打印机上打印电子面单
    2. 支持利用云打印机上配置的单号源、打印模板,自动获取电子面单号、三段码、设置打印模板,直接打印,无需预先获取单号,提高开发效率
    3. 支持仅获取电子面单号,不打印。将print_type参数置为1,将waybill_code参数留空即可。该功能可替代获取电子面单号接口
    4. 支持仅生成电子面单底单文件(jpg或pdf格式),不打印,print_type传1或7即可
    5. 支持电子面单自定义区域使用自己编辑的模板,模板需要预先在”标签打王“微信小程序中编辑
    回调重试机制:回调请求失败或者对方没有返回正确的格式,将会重试,最多重试三次。如果存在大量回调返回为非约定内容(成功返回:success,失败返回:failure), 将停止帐号的打印状态回调通知

    接口名称

    cloud.print.waybill

    公共参数

    请求地址

    | 环境名称 | HTTPS请求地址 | | —- | —- | | 正式地址 | https://kop.kuaidihelp.com/api |

公共请求参数

名称 类型 是否必须 描述
method string API接口名称cloud.print.waybill
app_id string 用户ID,如108344(给初步测试用的ID)
api_key string 应用密钥,如86c7ea9521d3b525be539b0bda4c8f6f2e07cf3c
(给测试用的api_key)
sign string 按照规则(md5(app_id + method + ts + api_key))生成的合法性验证签名(32位字符串,字母小写)如:10000cloud.print.do1524209949bdf3b5f50865ac813cbdfd6c9b572b79加密后5030cae3388ecdc2e686379753a0564c
ts string 当前请求的时间戳(10位或13位)
data string JSON格式请求参数

公共响应参数

名称 类型 是否必须 描述
code int 响应状态码。0-成功,非0-失败下载并查看详情
msg string 返回结果说明
uid string 本次请求唯一业务流水号
data string JSON格式响应数据

请求参数

名称 类型 是否必须 描述
agent_id string 目标云打印机的访问密钥,如6949690060994106(给初步测试的云打印机密钥)。使用目标云打印机,需要其管理员允许。
print_type int 打印类型,1:仅生成底单,jpg格式; 2:仅打印; 3:打印并生成jpg格式底单; 7:仅生成底单,pdf格式;默认为3
private int 是否隐藏收发件人联系电话 1 面单上隐藏 2 底单图片上隐藏 3 面单和底单图片都隐藏;若都不隐藏,不传值即可;
template_id string 打印模板ID(点此查看系统支持的所有模板);如果为空,则以云打印机上设置的模板为准,可到“微快递小邮筒”公众号的“管理”->“云打印机设置”中设置默认的模板
custom_tpl_id string 自定义区域模板id,该id从微信小程序【标签打王】获取。当template_id指定的模板支持自定义区域时才有效
user_name string 打印人名称

image.png
请求参数cp_code值列表:
快递公司 标识符
韵达快递 yd
申通快递 sto
圆通快递 yt
中通快递 zt
极兔快递 jt
百世快递 ht
邮政小包 postx
EMS包裹 ems
邮政包裹 post
天天快递 tt
百世快运 best
优速快递 ys
德邦 dp
宅急送 zjs
京东 jd
中通快运 ztky
顺丰速运 sf
国通快递 gt
顺丰快运 sfky

响应参数

名称 类型 是否必须 描述
<第一条任务的tid> object 第一条任务的打印结果
<第二条任务的tid> object 第二条任务的打印结果,结构同上;若本次请求有更多任务,后面依次列出

响应参数tid的详情:

名称 类型 是否必须 描述
status string 处理状态,success为成功,其他为失败
task_id string 本次打印任务编号,在查询打印任务状态时需要
task_info array 此次打印任务详情,只有通过云打印机上配置的单号源获取单号成功后,才返回此字段
tid string 任务ID,为打印任务中输入的值
waybill_code string 申请到的运单号
template_id string 本次所用的打印模板ID
routing_info object 本单号的路由、分拣信息(品牌为非顺丰)
consolidation object 本单号的集包地信息
name string 集包地名称
code string 集包地代码
route_code string 本单号的二三段码
sortation object 本单号的大字与一段码
name string 大字与一段码
routing_info object 本单号的路由、分拣信息(品牌为顺丰)
abFlag string AB标
cargoTypeCode string 快件内容: 如:C816、SP601
codingMapping string 入港映射码 eg:S10
codingMappingOut string 出港映射码
deliveryMode int 派送方式: 1. 派送 2.自提 (不传默认为1)
destCityCode string 目的地城市代码,eg:755
destDeptCode string 目的地网点代码,eg:755AQ
destDeptCodeMapping string 目的地网点代码映射码
destRouteLabel string 打单时的路由标签信息
destTeamCode string 目的地单元区域,eg:001
destTeamCodeMapping string 目的地单元区域映射码
destTransferCode string 目的地中转场
errMsg string 查询出现异常时返回信息。 返回代码: 0 系统异常 1 未找到运单
expressTypeCode string 产品类型,如:B1
fopIcon string 快运标签:目前有两位,第一位备用。第二位:送装标识(0:不打印;1:送装分离icon;2:送装一体icon)
goodsNumber string 件数
limitTypeCode string 时效代码, 如:T4
printFlag string 打印标志 返回值总共有 9 位,每一位只有 0和 1 两种, 0 表示按顺丰运单默认的规则,1 表示显示
printIcon string 打印图标 根据托寄物判断需要打印的图标 (重货,蟹类,生鲜,易碎,Z 标)返回值有 8 位,每一位只有 0 和 1两种,0 表示按运单默认的规则,1 表示显示。后面两位默认 0 备用。 顺序如下:重货,蟹类,生鲜,易碎, 医药类,Z 标,0,0 如:00000000 表示不需要打印重货,蟹类,生鲜,易碎,医药,Z 标,备用,备用
proName string 产品名称 对应RLS:pro_name
routeArray string 路由数组,示例:”755G:D3,769BG:A2,020BF:C2,021BG:AF,010FG:D2”
sourceCityCode string 原寄地城市代码
sourceDeptCode string 原寄地网点代码
sourceTeamCode string 原寄地单元区域
sourceTransferCode string 原寄地中转场
twoDimensionCode string 二维码
preview_image string 底单文件URL,仅当有底单文件(jpg或pdf格式)生成时才返回

回调参数

名称 类型 是否必须 描述
id string 请求参数中的tid,后续信息为本条tid所对应的信息
task_id string 响应参数中的task_id,系统分配的任务编号
status string 打印任务状态,为打印成功、打印失败、底单成功、底单失败等
message string 打印任务状态描述
preview_image string 底单文件URL,仅在有底单文件生成时推送
print_at int 打印成功,会返回10位的时间戳;打印失败,返回null
type string 回调通知类型,本接口固定为cloud_print

请求示例

批量任务示例

请求示例[Java,C#,Python,PHP,Node.js,Curl]

Java示例
import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;

import java.util.Map;
import java.util.HashMap;

import java.util.Date;

public class Request {

public static void main(String[] args) {
String host = “http://kop.kuaidihelp.com“;
String path = “/api”;
String requestMethod = “POST”;
Map headers = new HashMap();
//根据API的要求,定义相对应的Content-Type
headers.put(“Content-Type”, “application/x-www-form-urlencoded; charset=UTF-8”);
Map querys = new HashMap();
Map bodys = new HashMap();

String appId = “50001”;
String method = “cloud.print.waybill”;
// 当前时间戳
String ts = new Date().getTime() + “”;
String appKey = “bdf3b5f50865ac813cbdfd6c9b572b79”;

// 计算签名
String signStr = appId + method + ts + appKey;
String sign = Request.getMD5(signStr, 32);

bodys.put(“app_id”, appId);
bodys.put(“method”, method);
bodys.put(“ts”, ts);
bodys.put(“sign”, sign);
// data参数是个json格式的字符串 建议使用函数或方法去生成
bodys.put(“data”, “{
“agent_id”: “目标打印代理,必填”,
“print_type”: “打印类型,1:预览, 2:打印, 3:打印预览. 未设置则默认为3”,
“template_id”: “模板id,打印模板ID”,
“print_data”: [
{
“cod_amount”: 200,如果是货到付款服务,则使用该字段,
“sequence”: “1/1”,
“cp_code”: “快递品牌,参照“快递品牌列表”,兼容菜鸟和快宝品牌编码”,
“pickup_code”: “取件码(可选)”,
“user_name”: “打印人的名称,若是业务员,可包括手机号码(可选)”,
“note”: “备注(可选)”,
“goods_name”: “物品名(可选)”,
“weight”: “物品重量(可选)”,
“tid”: “(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)”,
“recipient”: {
“address”: {
“city”: “宁德市”,
“detail”: “哦里咯啦咯啦”,
“district”: “福鼎市”,
“province”: “福建省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“routing_info”: {
“consolidation”: {
“name”: “温州转福鼎包(集包名)”
},
“origin”: {
“code”: “610025”,
“name”: “四川邛崃公司”
},
“route_code”: “009 030(二三段码)”,
“sortation”: {
“name”: “福鼎351(大字 一段码)”
}
},
“sender”: {
“address”: {
“city”: “成都市”,
“detail”: “兴民街55号”,
“district”: “邛崃市”,
“province”: “四川省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“waybill_code”: “333333333333”
}
]
}”);

try {
/*
重要提示如下:
HttpUtils请从
https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
下载

相应的依赖请参照
https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
*/
HttpResponse response = HttpUtils.doPost(host, path, requestMethod, headers, querys, bodys);
System.out.println(response.toString());

//获取response的body
System.out.println(EntityUtils.toString(response.getEntity()));
} catch (Exception e) {
e.printStackTrace();
}
}

  1. // 计算md5<br /> public static String getMD5(String plainText, int length) {<br /> try {<br /> MessageDigest md = MessageDigest.getInstance("MD5");//获取MD5实例<br /> md.update(plainText.getBytes());//此处传入要加密的byte类型值<br /> byte[] digest = md.digest();//此处得到的是md5加密后的byte类型值
  2. /*<br /> 下边的运算就是自己添加的一些二次小加密,记住这个千万不能弄错乱,<br /> 否则在解密的时候,你会发现值不对的(举例:在注册的时候加密方式是一种,<br /> 在我们登录的时候是不是还需要加密它的密码然后和数据库的进行比对,但是<br /> 最后我们发现,明明密码对啊,就是打不到预期效果,这时候你就要想一下,你是否<br /> 有改动前后的加密方式) <br /> */<br /> int i;<br /> StringBuilder sb = new StringBuilder();<br /> for (int offset = 0; offset < digest.length; offset++) {<br /> i = digest[offset];<br /> if (i < 0)<br /> i += 256;<br /> if (i < 16)<br /> sb.append(0);<br /> sb.append(Integer.toHexString(i));//通过Integer.toHexString方法把值变为16进制<br /> }<br /> return sb.toString().substring(0, length);//从下标0开始,length目的是截取多少长度的值<br /> } catch (NoSuchAlgorithmException e) {<br /> e.printStackTrace();<br /> return null;<br /> }<br /> }<br />}

C#请求示例
class Request { private const String host = “https://kop.kuaidihelp.com“;
private const String path = “/api”;
private const String requestMethod = “POST”;
static void Main(string[] args)
{
String querys = “”;
String appId = “50001”;
String method = “cloud.print.waybill”;
String ts = GetTimeStamp() + “”;
String appKey = “bdf3b5f50865ac813cbdfd6c9b572b79”;

// 计算签名
String signStr = appId + method + ts + appKey;
String sign = GetMd5(signStr, 32);

String bodys = “app_id=” + appId + “&method=” + method + “&ts=” + ts + “&sign=” + sign;

// data参数是个json格式字符串 建议使用函数或方法生成json字符串
bodys = bodys + “&data={
“agent_id”: “目标打印代理,必填”,
“print_type”: “打印类型,1:预览, 2:打印, 3:打印预览. 未设置则默认为3”,
“template_id”: “模板id,打印模板ID”,
“print_data”: [
{
“cod_amount”: 200,如果是货到付款服务,则使用该字段,
“sequence”: “1/1”,
“cp_code”: “快递品牌,参照“快递品牌列表”,兼容菜鸟和快宝品牌编码”,
“pickup_code”: “取件码(可选)”,
“user_name”: “打印人的名称,若是业务员,可包括手机号码(可选)”,
“note”: “备注(可选)”,
“goods_name”: “物品名(可选)”,
“weight”: “物品重量(可选)”,
“tid”: “(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)”,
“recipient”: {
“address”: {
“city”: “宁德市”,
“detail”: “哦里咯啦咯啦”,
“district”: “福鼎市”,
“province”: “福建省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“routing_info”: {
“consolidation”: {
“name”: “温州转福鼎包(集包名)”
},
“origin”: {
“code”: “610025”,
“name”: “四川邛崃公司”
},
“route_code”: “009 030(二三段码)”,
“sortation”: {
“name”: “福鼎351(大字 一段码)”
}
},
“sender”: {
“address”: {
“city”: “成都市”,
“detail”: “兴民街55号”,
“district”: “邛崃市”,
“province”: “四川省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“waybill_code”: “333333333333”
}
]
}”;
String url = host + path;
HttpWebRequest httpRequest = null;
HttpWebResponse httpResponse = null;
if (0 < querys.Length)
{
url = url + “?” + querys;
}

  1. if (host.Contains("https://"))<br /> {<br /> ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);<br /> httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));<br /> }<br /> else<br /> {<br /> httpRequest = (HttpWebRequest)WebRequest.Create(url);<br /> }<br /> httpRequest.Method = requestMethod;
  2. //根据API的要求,定义相对应的Content-Type<br /> httpRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";<br /> if (0 < bodys.Length)<br /> {<br /> byte[] data = Encoding.UTF8.GetBytes(bodys);<br /> using (Stream stream = httpRequest.GetRequestStream())<br /> {<br /> stream.Write(data, 0, data.Length);<br /> }<br /> }<br /> try<br /> {<br /> httpResponse = (HttpWebResponse)httpRequest.GetResponse();<br /> }<br /> catch (WebException ex)<br /> {<br /> httpResponse = (HttpWebResponse)ex.Response;<br /> }
  3. Console.WriteLine(httpResponse.StatusCode);<br /> Console.WriteLine(httpResponse.Method);<br /> Console.WriteLine(httpResponse.Headers);<br /> Stream st = httpResponse.GetResponseStream();<br /> StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));<br /> Console.WriteLine(reader.ReadToEnd());<br /> Console.WriteLine("\n");
  4. }
  5. // 计算md5值<br /> public static string GetMd5(string md5str, int type)<br /> {<br /> if (type == 16)<br /> {<br /> MD5 algorithm = MD5.Create();<br /> byte[] data = algorithm.ComputeHash(Encoding.UTF8.GetBytes(md5str));<br /> string sh1 = "";<br /> for (int i = 0; i < data.Length; i++)<br /> {<br /> sh1 += data[i].ToString("x2").ToUpperInvariant();<br /> }<br /> return sh1.Substring(8, 16).ToLower();<br /> }<br /> else if (type == 32)<br /> {<br /> MD5 algorithm = MD5.Create();<br /> byte[] data = algorithm.ComputeHash(Encoding.UTF8.GetBytes(md5str));<br /> string sh1 = "";<br /> for (int i = 0; i < data.Length; i++)<br /> {<br /> sh1 += data[i].ToString("x2").ToUpperInvariant();<br /> }<br /> return sh1.ToLower();<br /> }<br /> return "";<br /> }
  6. // 获取当前时间戳<br /> public static string GetTimeStamp()<br /> {<br /> TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);<br /> return Convert.ToInt64(ts.TotalSeconds).ToString();<br /> }
  7. public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)<br /> {<br /> return true;<br /> }<br />}

Python请求示例
import http.client , urllib, hashlib
conn = http.client.HTTPSConnection(“kop.kuaidihelp.com”)

appId = ‘’’50001’’’
method = ‘’’cloud.print.waybill’’’;
ts = int(time.time());
appKey = ‘’’bdf3b5f50865ac813cbdfd6c9b572b79’’’

// 计算签名
signStr = appId + method + str(ts) + appKey;
sign = hashlib.md5(signStr.encode(‘utf8’)).hexdigest()

payload_list={}
payload_list[‘app_id’]=appId
payload_list[‘method’]=method
payload_list[‘ts’]=str(ts)
payload_list[‘sign’]=sign
payload_list[‘data’]=r’’’{
“agent_id”: “目标打印代理,必填”,
“print_type”: “打印类型,1:预览, 2:打印, 3:打印预览. 未设置则默认为3”,
“template_id”: “模板id,打印模板ID”,
“print_data”: [
{
“cod_amount”: 200,如果是货到付款服务,则使用该字段,
“sequence”: “1/1”,
“cp_code”: “快递品牌,参照“快递品牌列表”,兼容菜鸟和快宝品牌编码”,
“pickup_code”: “取件码(可选)”,
“user_name”: “打印人的名称,若是业务员,可包括手机号码(可选)”,
“note”: “备注(可选)”,
“goods_name”: “物品名(可选)”,
“weight”: “物品重量(可选)”,
“tid”: “(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)”,
“recipient”: {
“address”: {
“city”: “宁德市”,
“detail”: “哦里咯啦咯啦”,
“district”: “福鼎市”,
“province”: “福建省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“routing_info”: {
“consolidation”: {
“name”: “温州转福鼎包(集包名)”
},
“origin”: {
“code”: “610025”,
“name”: “四川邛崃公司”
},
“route_code”: “009 030(二三段码)”,
“sortation”: {
“name”: “福鼎351(大字 一段码)”
}
},
“sender”: {
“address”: {
“city”: “成都市”,
“detail”: “兴民街55号”,
“district”: “邛崃市”,
“province”: “四川省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“waybill_code”: “333333333333”
}
]
}’’’

payload =urllib.parse.urlencode(payload_list)
headers = {
‘content-type’: “application/x-www-form-urlencoded”,
}

conn.request(“POST”, “/api”, payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode(“utf-8”))

PHP请求示例
$host = “https://kop.kuaidihelp.com/api”;$headers = array();
//根据API的要求,定义相对应的Content-Type
array_push($headers, “Content-Type”.”:”.”application/x-www-form-urlencoded; charset=UTF-8”);
$appId = ‘50001’;
$method = ‘cloud.print.waybill’;
$ts = time();
$appKey = ‘2e0a4e2fd8cf545b35e65f00184bcfa’;
$bodys = [
“app_id” => $appId,
“method” => $method,
“sign” => md5($appId . $method . $ts . $appKey),
“ts” => $ts,
“data” => ‘{
“agent_id”: “目标打印代理,必填”,
“print_type”: “打印类型,1:预览, 2:打印, 3:打印预览. 未设置则默认为3”,
“template_id”: “模板id,打印模板ID”,
“print_data”: [
{
“cod_amount”: 200,如果是货到付款服务,则使用该字段,
“sequence”: “1/1”,
“cp_code”: “快递品牌,参照“快递品牌列表”,兼容菜鸟和快宝品牌编码”,
“pickup_code”: “取件码(可选)”,
“user_name”: “打印人的名称,若是业务员,可包括手机号码(可选)”,
“note”: “备注(可选)”,
“goods_name”: “物品名(可选)”,
“weight”: “物品重量(可选)”,
“tid”: “(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)”,
“recipient”: {
“address”: {
“city”: “宁德市”,
“detail”: “哦里咯啦咯啦”,
“district”: “福鼎市”,
“province”: “福建省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“routing_info”: {
“consolidation”: {
“name”: “温州转福鼎包(集包名)”
},
“origin”: {
“code”: “610025”,
“name”: “四川邛崃公司”
},
“route_code”: “009 030(二三段码)”,
“sortation”: {
“name”: “福鼎351(大字 一段码)”
}
},
“sender”: {
“address”: {
“city”: “成都市”,
“detail”: “兴民街55号”,
“district”: “邛崃市”,
“province”: “四川省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“waybill_code”: “333333333333”
}
]
}’
];
$bodys = http_build_query($bodys);
$url = $host;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, “POST”);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
if (1 == strpos(“$”.$host, “https://“))
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
var_dump(curl_exec($curl));

Node.js请求示例
var request = require(“request”);
var appId = ‘50001’;
var method = ‘cloud.print.waybill’;
var ts = Date.now();
var appKey = ‘bdf3b5f50865ac813cbdfd6c9b572b79’;

// 计算签名
var signStr = appId + method + ts + appKey;
var crypto = require(‘crypto’);
var h = crypto.createHash(‘md5’);
h.update(signStr);
var sign = h.digest(‘hex’);

// data参数是个json格式的字符串
var options = {method: ‘POST’,
url: ‘https://kop.kuaidihelp.com/api’,
headers:
{ ‘cache-control’: ‘no-cache’,
‘content-type’: ‘application/x-www-form-urlencoded’ },
form:
{ app_id: appId,
method: method,
ts: ts,
sign: sign,
data: ‘{
“agent_id”: “目标打印代理,必填”,
“print_type”: “打印类型,1:预览, 2:打印, 3:打印预览. 未设置则默认为3”,
“template_id”: “模板id,打印模板ID”,
“print_data”: [
{
“cod_amount”: 200,如果是货到付款服务,则使用该字段,
“sequence”: “1/1”,
“cp_code”: “快递品牌,参照“快递品牌列表”,兼容菜鸟和快宝品牌编码”,
“pickup_code”: “取件码(可选)”,
“user_name”: “打印人的名称,若是业务员,可包括手机号码(可选)”,
“note”: “备注(可选)”,
“goods_name”: “物品名(可选)”,
“weight”: “物品重量(可选)”,
“tid”: “(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)”,
“recipient”: {
“address”: {
“city”: “宁德市”,
“detail”: “哦里咯啦咯啦”,
“district”: “福鼎市”,
“province”: “福建省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“routing_info”: {
“consolidation”: {
“name”: “温州转福鼎包(集包名)”
},
“origin”: {
“code”: “610025”,
“name”: “四川邛崃公司”
},
“route_code”: “009 030(二三段码)”,
“sortation”: {
“name”: “福鼎351(大字 一段码)”
}
},
“sender”: {
“address”: {
“city”: “成都市”,
“detail”: “兴民街55号”,
“district”: “邛崃市”,
“province”: “四川省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“waybill_code”: “333333333333”
}
]
}’,
}};

request(options, function (error, response, body) {
if (error) throw new Error(error);

console.log(body);
});

Curl请求示例
curl - X POST ‘https://kop.kuaidihelp.com/api’ \ - H ‘Content-Type:application/x-www-form-urlencoded;charset=utf-8’ \
- d ‘app_id=50001’ \
- d ‘method=cloud.print.waybill’ \
- d ‘sign=bdf3b5f50865ac813cbdfd6c9b572b79’ \
- d ‘ts=1524209949’ \
- d ‘data={
“agent_id”: “目标打印代理,必填”,
“print_type”: “打印类型,1:预览, 2:打印, 3:打印预览. 未设置则默认为3”,
“template_id”: “模板id,打印模板ID”,
“print_data”: [
{
“cod_amount”: 200,如果是货到付款服务,则使用该字段,
“sequence”: “1/1”,
“cp_code”: “快递品牌,参照“快递品牌列表”,兼容菜鸟和快宝品牌编码”,
“pickup_code”: “取件码(可选)”,
“user_name”: “打印人的名称,若是业务员,可包括手机号码(可选)”,
“note”: “备注(可选)”,
“goods_name”: “物品名(可选)”,
“weight”: “物品重量(可选)”,
“tid”: “(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)”,
“recipient”: {
“address”: {
“city”: “宁德市”,
“detail”: “哦里咯啦咯啦”,
“district”: “福鼎市”,
“province”: “福建省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“routing_info”: {
“consolidation”: {
“name”: “温州转福鼎包(集包名)”
},
“origin”: {
“code”: “610025”,
“name”: “四川邛崃公司”
},
“route_code”: “009 030(二三段码)”,
“sortation”: {
“name”: “福鼎351(大字 一段码)”
}
},
“sender”: {
“address”: {
“city”: “成都市”,
“detail”: “兴民街55号”,
“district”: “邛崃市”,
“province”: “四川省”
},
“mobile”: “13344556677”,
“name”: “XXX”,
“phone”: “”
},
“waybill_code”: “333333333333”
}
]
}’

响应示例

成功响应示例-JSON示例

{“code”:
int0
“msg”:
string”success”
“uid”:
string”a6934adee62d8ba3430d4ac678dd5f46c7a79d6e”
“data”:{}
“提交任务时的tid”:{}
“status”:
string”success”
“task_id”:
int46208
}

异常响应示例-JSON示例

{“code”:
int200115
“msg”:
string”业务参数有误,请检查”
“uid”:
string”a6934adee62d8ba3430d4ac678dd5f46c7a79d6e”
“data”:{}
}

错误代码

错误码 描述
221009 业务参数有误
221010 无效的请求方法
221010 无效的请求方法
222203 无效的回调URL
222402 该打印代理已注册过
222503 无效的代理访问密钥
222504 无效的用户id
222505 无效的app_id
222508 超过批量打印最大限制

1.用API打印发货单、取件码、标签、小票单等

2.用API打印快递单