LOADING
- 首页
-
解决方案
-
产品
-
API文档
-
关于我们
13122911354
控制台
API文档
API文档/云打印/打印发货单、取件码
应用场景
1. 向云打印机发送取件码、发货单、贴纸等非电子面单类型的打印任务,在云打印机上完成打印
2. 支持利用”标签打王“微信小程序编辑打印模板,随心所欲设计打印样式与内容
注:此处“云打印机”指快宝的云打印解决方案,它通过在电脑上安装的云打印插件或“快宝盒子”专用设备,把普通台式热敏打印机变成云打印机,可通过网络远程打印电子面单、发货单或取件码。云打印机安装详见:如何安装云打印机,配置详见:如何管理云打印机;云打印机调用许可详见:如何允许调用云打印机;快宝盒子详见:购买快宝盒子
接口名称
sticker.print.do
公共参数
请求地址
环境名称 | HTTPS请求地址 |
---|---|
正式地址 | https://kop.kuaidihelp.com/api |
公共请求参数
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
method | string | 是 | API接口名称 |
app_id | string | 是 | 用户ID(注册开放平台时分配,在控制台中查看) |
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 | 是 | 目标云打印机的访问密钥,在电脑端快宝云打印程序的“绑定”->“访问密钥”菜单项下查看;快宝盒子的访问密钥查看方法参考产品说明;使用目标云打印机,需要其管理员允许。云打印机调用许可详见:如何允许调用云打印机 |
template_id | string | 是 | 打印模板ID。打印模板需要在“标签打王”微信小程序中设计,此处填入模板详情页显示的模板ID |
print_data | array | 是 | 打印数据。若打印模板中包含有变量,需在此提供变量值,每个数组元素为一条打印项,需包含所有变量的值。批量打印提供多个打印项即可 |
响应参数
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
status | string | 是 | 处理状态,success为成功,其他为失败 |
task_id | string | 是 | 本次打印任务编号,在查询打印任务状态时需要 |
请求示例
Java
C#
Python
PHP
Node.js
Curl
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<String, String> headers = new HashMap<String, String>();
//根据API的要求,定义相对应的Content-Type
headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
Map<String, String> querys = new HashMap<String, String>();
Map<String, String> bodys = new HashMap<String, String>();
String appId = "50001";
String method = "sticker.print.do";
// 当前时间戳
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":"BE85E501-996C-46F1-9DAD-C3026685233320",
"template_id":"166678",
"print_data":[
{
"tid":"2020042611000001",
"pickupCodeNew":"A01"
},
{
"tid":"202004261100003",
"pickupCodeNew":"A02"
}
]
}");
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();
}
}
// 计算md5
public static String getMD5(String plainText, int length) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");//获取MD5实例
md.update(plainText.getBytes());//此处传入要加密的byte类型值
byte[] digest = md.digest();//此处得到的是md5加密后的byte类型值
/*
下边的运算就是自己添加的一些二次小加密,记住这个千万不能弄错乱,
否则在解密的时候,你会发现值不对的(举例:在注册的时候加密方式是一种,
在我们登录的时候是不是还需要加密它的密码然后和数据库的进行比对,但是
最后我们发现,明明密码对啊,就是打不到预期效果,这时候你就要想一下,你是否
有改动前后的加密方式)
*/
int i;
StringBuilder sb = new StringBuilder();
for (int offset = 0; offset < digest.length; offset++) {
i = digest[offset];
if (i < 0)
i += 256;
if (i < 16)
sb.append(0);
sb.append(Integer.toHexString(i));//通过Integer.toHexString方法把值变为16进制
}
return sb.toString().substring(0, length);//从下标0开始,length目的是截取多少长度的值
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
}
响应示例
成功响应示例
JSON示例
{"code":
int0
"msg":
string"成功"
"data":{"提交任务时的tid":{"status":
string"success"
"task_id":
string"588660803"
}}"uid":
string"97a8c01addaf33444921c82e2584839a00000000"
}
异常响应示例
JSON示例
{"code":
int200115
"msg":
string"业务参数有误,请检查"
"data":{}
"uid":
string"97a8c01addaf33444921c82e2584839a00000000"
}
错误代码
错误码 | 描述 |
---|---|
221009 | 业务参数有误 |
221010 | 无效的请求方法 |
221010 | 无效的请求方法 |
222203 | 无效的回调URL |
222402 | 该打印代理已注册过 |
222503 | 无效的代理访问密钥 |
222504 | 无效的用户id |
222505 | 无效的app_id |
222508 | 超过批量打印最大限制 |
首页
解决方案
产品
API文档
关于我们
使用微信或企业微信扫码加入群聊
CopyRight © 2022 沪ICP备 12047396号 快宝(上海)网络科技有限公司