快宝云打印服务

LOADING

快宝开放平台

  • 首页
  • 解决方案

  • 产品

  • API文档

  • 关于我们

开发者指南

13122911354

控制台

API文档

API文档/云打印/打印发货单、取件码

应用场景

1. 向云打印机发送取件码、发货单、贴纸等非电子面单类型的打印任务,在云打印机上完成打印

2. 支持利用”标签打王“微信小程序编辑打印模板,随心所欲设计打印样式与内容

注:此处“云打印机”指快宝的云打印解决方案,它通过在电脑上安装的云打印插件或“快宝盒子”专用设备,把普通台式热敏打印机变成云打印机,可通过网络远程打印电子面单、发货单或取件码。云打印机安装详见:如何安装云打印机,配置详见:如何管理云打印机;云打印机调用许可详见:如何允许调用云打印机;快宝盒子详见:购买快宝盒子

接口名称

sticker.print.do

公共参数

请求地址

环境名称

HTTPS请求地址

正式地址https://kop.kuaidihelp.com/api

公共请求参数

名称

类型

是否必须

描述

methodstring

API接口名称

app_idstring

用户ID(注册开放平台时分配,在控制台中查看)

signstring

按照规则(md5(app_id + method + ts + api_key))生成的合法性验证签名(32位字符串,字母小写)如:10000cloud.print.do1524209949bdf3b5f50865ac813cbdfd6c9b572b79加密后5030cae3388ecdc2e686379753a0564c

tsstring

当前请求的时间戳(10位或13位)

datastring

JSON格式请求参数

公共响应参数

名称

类型

是否必须

描述

codeint

响应状态码。0-成功,非0-失败下载并查看详情

msgstring

返回结果说明

uidstring

本次请求唯一业务流水号

datastring

JSON格式响应数据

请求参数

名称

类型

是否必须

描述

agent_idstring

目标云打印机的访问密钥,在电脑端快宝云打印程序的“绑定”->“访问密钥”菜单项下查看;快宝盒子的访问密钥查看方法参考产品说明;使用目标云打印机,需要其管理员允许。云打印机调用许可详见:如何允许调用云打印机

template_idstring

打印模板ID。打印模板需要在“标签打王”微信小程序中设计,此处填入模板详情页显示的模板ID

print_dataarray

打印数据。若打印模板中包含有变量,需在此提供变量值,每个数组元素为一条打印项,需包含所有变量的值。批量打印提供多个打印项即可

响应参数

名称

类型

是否必须

描述

statusstring

处理状态,success为成功,其他为失败

task_idstring

本次打印任务编号,在查询打印任务状态时需要

请求示例

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号 快宝(上海)网络科技有限公司

友情链接:申通快递中通快递顺丰速运中国邮政速递物流韵达快递

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值