标签模板 文章 帮助
    • 接口调用方式
    • 接口方法
    • 附录

多零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;

示例代码中的doPost()方法的实现代码,可点击参考这里


➤  推送【条形码】批次数据接口

如果希望在批量条形码生成器中使用,则使用这个接口推送条形码批次数据。每次成功调用,多零则创建一个批次,每个批次可包含多行条形码数据。推送保存的批次总数量,不超过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;

示例代码中的doPost()方法的实现代码,可点击参考这里


➤  推送【二维码】批次数据接口

如果希望在批量二维码生成器中使用,则使用这个接口推送二维码批次数据。每次成功调用,多零则创建一个批次,每个批次可包含多行二维码数据。推送保存的批次总数量,不超过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;

示例代码中的doPost()方法的实现代码,可点击参考这里


➤  删除指定批次数据接口

调用该接口时,提交指定批次的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;

示例代码中的doPost()方法的实现代码,可点击参考这里


➤  删除全部【标签】批次数据接口

删除全部标签批次数据。 接口地址: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;

示例代码中的doPost()方法的实现代码,可点击参考这里


➤  删除全部【条形码】批次数据接口

删除全部条形码批次数据。 接口地址: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;

示例代码中的doPost()方法的实现代码,可点击参考这里


➤  删除全部【二维码】批次数据接口

删除全部二维码批次数据。 接口地址: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;

示例代码中的doPost()方法的实现代码,可点击参考这里



以上接口代码示例中,为了直观展示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接口的测试环境,可直接使用公网接口调试接入。 本文示例中所有的代码仅用于展示接口的使用方法,不作程序代码编写指导,请根据您实际的情况编写健全的代码。 由于持续版本迭代,本文涉及的功能内容和界面截图可能没有及时更新,文章内容可能会有差异,如需最准确的信息,请查阅最新版本的功能。