多零API接口使用文档
原创 未经同意,请勿转载为了方便对接您企业、单位内部的业务系统,将您的业务系统的数据推送到多零标签工具中,多零提供公网可访问的Http接口。 通过对接多零的API接口,实现您的业务系统自动推送标签数据,以此简化标签数据导入步骤。
接口调用方式
请求与响应
多零提供Http方式的API接口,以Http的Post方法提交参数,多零统一返回JSON格式的处理结果。 公网接口地址是 https://y56y.com/api/[接口名称] 。
响应报文格式:
| 参数名 | 数据类型 | 必填 | 说明 |
| code | String | 是 | 接口的处理结果状态码,处理成功则状态码是200,除此之外都是处理失败,具体状态信息请参考附录的响应状态码。 |
| message | String | 否 | 接口处理结果的文字说明。 |
| data | JSON | 否 | 调用接口返回的数据,例如推送批次数据接口,会返回batchId,这个数据存储在data字段中;如果没有返回结果,则data=null。 |
例如,返回结果:
{
"code":"200",
"message":"处理成功",
"data":{
"batchId":"BM8QSS9ZYW",
"itemCount":4,
"failCount":0
}
}
注意事项
- 多零会使用授权码作为数据的关联保存与查询,因此,所有接口调用都需要传入授权码。
- 使用Http的Post提交数据时,Content-Type 设置为 application/x-www-form-urlencoded 。
- 请求与响应均使用 UTF-8 字符集。
- 传递参数时使用 标准的JSON格式 ,否则会导致解析出错。
- 多零接口 没有禁用同源策略 ,因此,不支持浏览器端的跨域调用,仅支持服务器端调用。
- 频繁恶意调用多零接口,会触发安全拦截,请按需调用。
接口方法
➤ 推送【标签】批次数据接口
如果希望在标签生成器中使用,则使用这个接口推送标签批次数据。每次成功调用,多零则创建一个批次,每个批次可包含多条标签数据。推送保存的批次总数量,不超过100批次,如果超过限制,请删除部分再推送。 接口地址:https://y56y.com/api/pushdataforlabel
请求参数:
| 参数名 | 数据类型 | 必填 | 长度 | 说明 |
| authCode | String | 是 | 10 | 授权码 |
| name | String | 否 | 最大100个字符 | 批次数据的名称,如果留空不填,则使用随机名称。 |
| remark | String | 否 | 最大100个字符 | 备注内容 |
| dataListJson | JSON数组 | 是 | 最大10000000个字符 | dataListJson是一个数组,数组中每一项元素是JSON结构,JSON结构包含具体的标签数据。标签数据不超过10000条,超过部分会被截取。 |
dataListJson 数组中的 JSON 结构:
| 参数名 | 数据类型 | 必填 | 长度 | 说明 |
| data | String | 是 | 最大3000个字符 | 字符串数组,表示数据行,例["SUB000001","OSN0000001","ISN0000001","VISN0000001","DOINGLABEL"]。 |
| isHeader | Integer | 否 | 0 或 1 | isHeader=1时,标志这是标题行; isHeader缺失或isHeader=0时,则表明这是数据行; |
| orderNumber | Integer | 否 | 0 至 2000000000 | 排序号,默认为0,数值越大,排序越靠前;排序号相同,则以先后顺序排序,非必填。 |
返回结果: 请参考响应报文格式,其中data字段包含3个返回值:
- batchId: 批次数据的唯一Id。如果需要后续操作(例如删除),则需要记录保存此Id。
- itemCount: 成功保存的数据行数。
- failCount: 保存失败的行数。如果超过最大行数限制、该行数据超过3000个字符,或数据异常,则该行数据会被丢弃。
返回结果示例:
{
"code":"200",
"message":"处理成功",
"data":{
"batchId":"BM8QSS9ZYW",
"itemCount":4,
"failCount":0
}
}
接口调用示例代码 (Java):
String httpUrl = "http://localhost/api/pushdataforlabel";
String authCode = "1111111111"; // 多零授权码,必填
String name = "外销出货标签数据"; // 批次名称,非必填
String remark = "用于物料仓库标签打印"; // 备注,非必填
// 数据行的data字段的数组长度与标题行一致;
String dataListJson = "[";
dataListJson += "{\"data\":[\"委外单号\",\"内盒SN号\",\"外箱SN号\",\"外箱号UPN\",\"出货型号\"],\"isHeader\":1},"; // isHeader=1 表示标题行
dataListJson += "{\"data\":[\"SUB000001\",\"OSN0000001\",\"ISN0000001\",\"VISN0000001\",\"DOINGLABEL\"],\"orderNumber\":0},"; // 数据行
dataListJson += "{\"data\":[\"SUB000002\",\"OSN0000002\",\"ISN0000002\",\"VISN0000002\",\"DOINGLABEL\"],\"orderNumber\":0},";
dataListJson += "{\"data\":[\"SUB000003\",\"OSN0000003\",\"ISN0000003\",\"VISN0000003\",\"DOINGLABEL\"],\"orderNumber\":0}";
dataListJson += "]";
String postParam = "authCode=" + authCode + "&name=" + name + "&remark=" + remark + "&dataListJson=" + dataListJson;
// 返回的result是json数据,其中的data.batchId是这次推送数据的唯一id,如果需要后续操作(例如删除),则需要记录保存此batchId
String result = doPost(httpUrl, postParam);
return result;
➤ 推送【条形码】批次数据接口
如果希望在批量条形码生成器中使用,则使用这个接口推送条形码批次数据。每次成功调用,多零则创建一个批次,每个批次可包含多行条形码数据。推送保存的批次总数量,不超过100批次,如果超过限制,请删除部分再推送。 接口地址:https://y56y.com/api/pushdataforbarcode
请求参数:
| 参数名 | 数据类型 | 必填 | 长度 | 说明 |
| authCode | String | 是 | 10 | 授权码 |
| name | String | 否 | 最大100个字符 | 批次数据的名称,如果留空不填,则使用随机名称。 |
| remark | String | 否 | 最大100个字符 | 备注内容 |
| dataListJson | JSON数组 | 是 | 最大10000000个字符 | dataListJson是一个数组,数组中每一项元素是JSON结构,JSON结构包含具体的条形码数据。条形码数据不超过10000条,超过部分会被截取。 |
dataListJson 数组中的 JSON 结构:
| 参数名 | 数据类型 | 必填 | 长度 | 说明 |
| data | String | 是 | 最大3000个字符 | data字段的数组长度是8,内部结构是"[条形码内容,脚注,文件名,附加文字1,附加文字2,附加文字3,附加文字4,附加文字5]",由于数组格式固定,因此不需要标题行。 |
| orderNumber | Integer | 否 | 0 至 2000000000 | 排序号,默认为0,数值越大,排序越靠前;排序号相同,则以先后顺序排序,非必填。 |
返回结果: 请参考响应报文格式,其中data字段包含3个返回值:
- batchId: 批次数据的唯一Id。如果需要后续操作(例如删除),则需要记录保存此Id。
- itemCount: 成功保存的数据行数。
- failCount: 保存失败的行数。如果超过最大行数限制、该行数据超过3000个字符,或数据异常,则该行数据会被丢弃。
返回结果示例:
{
"code":"200",
"message":"处理成功",
"data":{
"batchId":"BM8QSS9ZYW",
"itemCount":4,
"failCount":0
}
}
接口调用示例代码 (Java):
String httpUrl = "http://localhost/api/pushdataforbarcode";
String authCode = "1111111111"; // 多零授权码,必填
String name = "批量条形码数据"; // 批次名称,非必填
String remark = "用于物料仓库标签打印"; // 备注,非必填
String dataListJson = "[";
// data数组内部的元素顺序是 [条形码内容,脚注,文件名,附加文字1,附加文字2,附加文字3,附加文字4,附加文字5]
dataListJson += "{\"data\":[\"ABCD00001\",\"ABCD00001\",\"ABCD00001\",\"多零条形码\",\"DoingLabel\",\"www.y56y.com\",null,null],\"orderNumber\":5},";
dataListJson += "{\"data\":[\"ABCD00002\",\"ABCD00002\",\"ABCD00002\",\"多零条形码\",\"DoingLabel\",\"www.y56y.com\",null,null],\"orderNumber\":4},";
dataListJson += "{\"data\":[\"ABCD00003\",\"ABCD00003\",\"ABCD00003\",\"多零条形码\",\"DoingLabel\",\"www.y56y.com\",null,null],\"orderNumber\":3},";
dataListJson += "{\"data\":[\"ABCD00004\",\"ABCD00004\",\"ABCD00004\",\"多零条形码\",\"DoingLabel\",\"www.y56y.com\",null,null],\"orderNumber\":2},";
dataListJson += "{\"data\":[\"ABCD00005\",\"ABCD00005\",\"ABCD00005\",\"多零条形码\",\"DoingLabel\",\"www.y56y.com\",null,null],\"orderNumber\":1}";
dataListJson += "]";
String postParam = "authCode=" + authCode + "&name=" + name + "&remark=" + remark + "&dataListJson=" + dataListJson;
// 返回的result是json数据,其中的data.batchId是这次推送数据的唯一id,如果需要后续操作(例如删除),则需要记录保存此batchId
String result = doPost(httpUrl, postParam);
return result;
➤ 推送【二维码】批次数据接口
如果希望在批量二维码生成器中使用,则使用这个接口推送二维码批次数据。每次成功调用,多零则创建一个批次,每个批次可包含多行二维码数据。推送保存的批次总数量,不超过100批次,如果超过限制,请删除部分再推送。 接口地址:https://y56y.com/api/pushdataforqrcode
请求参数:
| 参数名 | 数据类型 | 必填 | 长度 | 说明 |
| authCode | String | 是 | 10 | 授权码 |
| name | String | 否 | 最大100个字符 | 批次数据的名称,如果留空不填,则使用随机名称。 |
| remark | String | 否 | 最大100个字符 | 备注内容 |
| dataListJson | JSON数组 | 是 | 最大10000000个字符 | dataListJson是一个数组,数组中每一项元素是JSON结构,JSON结构包含具体的二维码数据。二维码数据不超过10000条,超过部分会被截取。 |
dataListJson 数组中的 JSON 结构:
| 参数名 | 数据类型 | 必填 | 长度 | 说明 |
| data | String | 是 | 最大3000个字符 | data字段的数组长度是9,内部结构是"[二维码内容,文件名,标志文字,脚注内容1,脚注内容2,脚注内容3,脚注内容4,脚注内容5,脚注内容6]",由于数组格式固定,因此不需要标题行。 |
| orderNumber | Integer | 否 | 0 至 2000000000 | 排序号,默认为0,数值越大,排序越靠前;排序号相同,则以先后顺序排序,非必填。 |
返回结果: 请参考响应报文格式,其中data字段包含3个返回值:
- batchId: 批次数据的唯一Id。如果需要后续操作(例如删除),则需要记录保存此Id。
- itemCount: 成功保存的数据行数。
- failCount: 保存失败的行数。如果超过最大行数限制、该行数据超过3000个字符,或数据异常,则该行数据会被丢弃。
返回结果示例:
{
"code":"200",
"message":"处理成功",
"data":{
"batchId":"BM8QSS9ZYW",
"itemCount":4,
"failCount":0
}
}
接口调用示例代码 (Java):
String httpUrl = "http://localhost/api/pushdataforqrcode;
String authCode = "1111111111"; // 多零授权码,必填
String name = "批量二维码数据"; // 批次名称,非必填
String remark = "用于物料仓库标签打印"; // 备注,非必填
String dataListJson = "[";
// data数组内部的元素顺序是 [二维码内容,文件名,标志文字,脚注内容1,脚注内容2,脚注内容3,脚注内容4,脚注内容5,脚注内容6]
dataListJson += "{\"data\":[\"ABCD00001\",\"ABCD00001\",null,\"多零二维码\",\"DoingLabel\",\"www.y56y.com\",null,null,null],\"orderNumber\":5},";
dataListJson += "{\"data\":[\"ABCD00002\",\"ABCD00002\",null,\"多零二维码\",\"DoingLabel\",\"www.y56y.com\",null,null,null],\"orderNumber\":4},";
dataListJson += "{\"data\":[\"ABCD00003\",\"ABCD00003\",null,\"多零二维码\",\"DoingLabel\",\"www.y56y.com\",null,null,null],\"orderNumber\":3},";
dataListJson += "{\"data\":[\"ABCD00004\",\"ABCD00004\",null,\"多零二维码\",\"DoingLabel\",\"www.y56y.com\",null,null,null],\"orderNumber\":2},";
dataListJson += "{\"data\":[\"ABCD00005\",\"ABCD00005\",null,\"多零二维码\",\"DoingLabel\",\"www.y56y.com\",null,null,null],\"orderNumber\":1}";
dataListJson += "]";
String postParam = "authCode=" + authCode + "&name=" + name + "&remark=" + remark + "&dataListJson=" + dataListJson;
// 返回的result是json数据,其中的data.batchId是这次推送数据的唯一id,如果需要后续操作(例如删除),则需要记录保存此batchId
String result = doPost(httpUrl, postParam);
return result;
➤ 删除指定批次数据接口
调用该接口时,提交指定批次的batchId,即可删除指定的批次数据。在调用标签、条形码、二维码批次数据推送接口并且成功处理后,多零会返回此batchId。 接口地址:https://y56y.com/api/removebatchdata
请求参数:
| 参数名 | 数据类型 | 必填 | 长度 | 说明 |
| authCode | String | 是 | 10 | 授权码 |
| batchId | String | 是 | 10 | 批次数据唯一的Id,在调用推送数据接口时,返回结果中包含此batchId。 |
返回结果: 请参考响应报文格式,其中data字段包含1个返回值:
- batchId: 删除批次的Id。
返回结果示例:
{
"code":"200",
"message":"处理成功",
"data":{"batchId":"BM8QSS9ZYW"}
}
接口调用示例代码 (Java):
String httpUrl = "http://localhost/api/removebatchdata";
String authCode = "1111111111"; // 多零授权码,必填
String batchId = "BM8QSS9ZYW"; // 批次数据唯一的Id,必填
String postParam = "authCode=" + authCode + "&batchId=" + batchId;
String result = doPost(httpUrl, postParam);
return result;
➤ 删除全部【标签】批次数据接口
删除全部标签批次数据。 接口地址:https://y56y.com/api/removeallbatchdataforlabel
请求参数:
| 参数名 | 数据类型 | 必填 | 长度 | 说明 |
| authCode | String | 是 | 10 | 授权码 |
返回结果: 请参考响应报文格式,例如:
{
"code":"200",
"message":"处理成功",
"data":null
}
接口调用示例代码 (Java):
// 此接口删除全部推送的数据,慎用
String httpUrl = "http://localhost/api/removeallbatchdataforlabel";
String authCode = "1111111111"; // 多零授权码,必填
String postParam = "authCode=" + authCode;
String result = doPost(httpUrl, postParam);
return result;
➤ 删除全部【条形码】批次数据接口
删除全部条形码批次数据。 接口地址:https://y56y.com/api/removeallbatchdataforbarcode
请求参数:
| 参数名 | 数据类型 | 必填 | 长度 | 说明 |
| authCode | String | 是 | 10 | 授权码 |
返回结果: 请参考响应报文格式,例如:
{
"code":"200",
"message":"处理成功",
"data":null
}
接口调用示例代码 (Java):
// 此接口删除全部推送的数据,慎用
String httpUrl = "http://localhost/api/removeallbatchdataforbarcode";
String authCode = "1111111111"; // 多零授权码,必填
String postParam = "authCode=" + authCode;
String result = doPost(httpUrl, postParam);
return result;
➤ 删除全部【二维码】批次数据接口
删除全部二维码批次数据。 接口地址:https://y56y.com/api/removeallbatchdataforqrcode
请求参数:
| 参数名 | 数据类型 | 必填 | 长度 | 说明 |
| authCode | String | 是 | 10 | 授权码 |
返回结果: 请参考响应报文格式,例如:
{
"code":"200",
"message":"处理成功",
"data":null
}
接口调用示例代码 (Java):
// 此接口删除全部推送的数据,慎用
String httpUrl = "http://localhost/api/removeallbatchdataforqrcode";
String authCode = "1111111111"; // 多零授权码,必填
String postParam = "authCode=" + authCode;
String result = doPost(httpUrl, postParam);
return result;
以上接口代码示例中,为了直观展示JSON数据结构,多零使用了字符串拼接方式组织JSON数据。但是,多零建议改用实例对象组织数据的方式,最后再统一转为JSON字符串提交。 如果确实需要使用字符串拼接方式,则需要使用标准的JSON格式,例如:1. 字符使用半角的双引号包裹,不能使用单引号;2. 数组中每项元素以逗号结尾,但是最后一项结尾不能加逗号。
附录
doPost()方法示例代码 (Java)
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
------------------------------
public String doPost (String httpUrl, String param) throws Exception {
HttpURLConnection connection = null;
OutputStream outputStream = null;
InputStream inputStream = null;
InputStreamReader inputStreamReader =null;
BufferedReader bufferedReader = null;
String charsetName = "UTF-8";
String result = null;
try {
URL url = new URL(httpUrl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Charset", charsetName);
connection.setDoOutput(true);
connection.setDoInput(true);
outputStream = connection.getOutputStream();
outputStream.write(param.getBytes(charsetName));
inputStream = connection.getInputStream();
inputStreamReader = new InputStreamReader(inputStream, charsetName);
bufferedReader = new BufferedReader(inputStreamReader);
StringBuffer sbf = new StringBuffer();
String temp = null;
while ((temp = bufferedReader.readLine()) != null) {
sbf.append("\r\n");
sbf.append(temp);
}
result = sbf.toString().replaceFirst("\r\n","");
} catch (Exception e) {
throw e;
} finally {
if (bufferedReader!=null) {try {bufferedReader.close();} catch (Exception e) {}}
if (inputStreamReader!=null) {try {inputStreamReader.close();} catch (Exception e) {}}
if (inputStream!=null) {try {inputStream.close();} catch (Exception e) {}}
if (outputStream!=null) {try {outputStream.close();} catch (Exception e) {}}
if (connection!=null) {try {connection.disconnect();} catch (Exception e) {}}
}
return result;
}
响应状态码
| 状态码 | 说明 | 状态码 | 说明 |
| 200 | 处理成功 | 300 | 操作出错 |
| 301 | 参数错误 | 302 | 缺少参数 |
| 303 | 安全异常 | 304 | 没有权限 |
| 305 | 无效授权码 | 306 | 授权码已失效 |
| 400 | 不存在业务接口 | 500 | 服务器内部错误 |
| 900 | 其他错误 | 999 | 系统正在升级维护 |
问题反馈
如果这里没有您想要的接口、功能,或者您有任何建义、意见,或者遇到任何问题,请反馈给多零。
多零没有可调试API接口的测试环境,可直接使用公网接口调试接入。 本文示例中所有的代码仅用于展示接口的使用方法,不作程序代码编写指导,请根据您实际的情况编写健全的代码。 由于持续版本迭代,本文涉及的功能内容和界面截图可能没有及时更新,文章内容可能会有差异,如需最准确的信息,请查阅最新版本的功能。