卜数开放平台API

API

下单

接口地址:http://e8dev.boudata.com/tss/tms/api/order/create

请求参数:

名称 说明 备注
params Json字符串 Json字符串,具体见下面params参数说明
uName 对接账号
uSign 签名 MD5(uToken + timestamp)
timestamp 时间戳 格式:2018-12-12 12:12:12

params参数:

名称 编码 类型 必填 示例
客户单号 ccode String Erp0000001
寄件人 send_man String TRUE 张三
寄件人电话 send_phone String TRUE 18767166222
寄件省份 send_province String TRUE 浙江省
寄件市 send_city String TRUE 杭州市
寄件区县 send_district String 江干区
寄件乡镇 send_town String
寄件具体地址 send_street_no String TRUE
收件人 receive_man String TRUE 李四
收件人电话 receive_phone String TRUE 18767166333
收件人公司 receive_company String
收件省份 receive_province String TRUE 江苏省
收件市 receive_city String TRUE 扬州市
收件区县 receive_district String 高邮市
收件乡镇 receive_town String
收件具体地址 receive_street_no String TRUE xx小区x幢
服务方式 service_mode String 派送, 站点自提, 中心自提, 自提
保价额 insurance_limit Double
支付方式 settle_type String TRUE 寄付, 到付, 月结
代收货款金额 cod Double
需要网点上门提货 if_visit Boolean TRUE
快件 if_fast Boolean Default=false
备注 remark String
子单集合 subOrders Object
———件数 amount Integer
———重量 weight Double
———体积 volume Double
———货物 cargo String
———包装 pack String

响应参数:

名称 编码 类型 示例
结果 result Boolean
错误信息 errorMsg String result=false时会有该属性
订单 data String E8单号

查轨迹

接口地址:http://e8dev.boudata.com/tss/tms/api/order/trace

请求参数:

名称 说明 备注
params Json字符串 Json字符串,具体见下面params参数说明
uName 对接账号
uSign 签名 MD5(uToken + timestamp)
timestamp 时间戳 格式:2018-12-12 12:12:12

params参数:

名称 编码 类型 必填 示例
E8单号 code String TRUE 两者必填一个
客户单号 ccode String TRUE 两者必填一个

响应参数:

名称 编码 类型 示例
轨迹 data List [{"scan_date": "2019-12-06 15:43:38","description": "新订单","create_time": "2019-12-06 15:43:39"}]
结果 result Boolean
错误信息 errorMsg String Result=false时会有该属性

取消订单(暂无)

接口地址:http://e8dev.boudata.com/tss/tms/api/order/cancel

请求参数:

名称 说明 备注
params Json字符串 Json字符串,具体见下面params参数说明
uName 对接账号
uSign 签名 MD5(uToken + timestamp)
timestamp 时间戳 格式:2018-12-12 12:12:12

params参数:

名称 编码 类型 必填 示例
E8单号 code String E8单号和客户单号必传一个
客户单号 ccode String

响应参数:

名称 编码 类型 示例
结果 result Boolean
错误信息 errorMsg String Result=false时会有该属性

回单回传

接口地址:对方提供

请求参数:

名称 说明 备注
code E8单号
ccode 客户单号 可能为空
uName 对接账号 对方提供, 下文uToken也是,对接方不校验也可不提供
uSign 签名 MD5(uToken + timestamp)
timestamp 时间戳 格式:2018-12-12 12:12:12
file 文件 格式为Base64

响应参数要求:

名称 编码 类型 示例
结果 result Boolean
错误信息 errorMsg String Result=false时会有该属性

面单打印

接口地址:http://e8dev.boudata.com/tss/tms/api/edi/getPrintFile

请求参数:

名称 说明 备注
params Json字符串 Json字符串,具体见下面params参数说明
uName 对接账号
uSign 签名 MD5(uToken + timestamp)
timestamp 时间戳 格式:2018-12-12 12:12:12

params参数:

名称 编码 类型 必填 示例
E8单号 code String TRUE E8单号和客户单号必传一个
客户单号 ccode String TRUE E8单号和客户单号必传一个
面单模板ID modelId String TRUE 联系E8人员获取

响应参数:

名称 编码 类型 示例
结果 result Boolean
错误信息 errorMsg String Result=false时会有该属性
面单数据 data Object 面单数据
———PDF文件流Base64编码 pdfBase64 String
———PDF文件名 pdfName String

Java调用

          public void xiadan() {
            String myCode = "ERP000004";
            JSONObject ov = new JSONObject();
            ov.put("ccode", myCode);
            ov.put("send_man", "张三");
            ov.put("send_phone", "18767166222");
            ov.put("send_province", "浙江省");
            ov.put("send_city", "杭州市");
            ov.put("send_district", "江干区");
            ov.put("send_street_no", "一号大街华媒科创园");
            ov.put("receive_man", "李四");
            ov.put("receive_phone", "18767166333");
            ov.put("receive_province", "北京市");
            ov.put("receive_city", "北京市");
            ov.put("receive_district", "东城区");
            ov.put("receive_street_no", "中关村");
            ov.put("amount", 3);
            ov.put("volume", 1.11);
            ov.put("weight", 100.5);
            ov.put("service_mode", "派送");
            ov.put("insurance_limit", 3000D);
            ov.put("pay_type", "寄付");
            ov.put("cod", 8999D);
            ov.put("if_visit", true);
            ov.put("remark", "请尽快上门取货");

            List> subOrders = new ArrayList<>();
            Map subOrder = new HashMap<>();
            subOrder.put("amount", "3");
            subOrder.put("weight", "2.11");
            subOrder.put("volume", "2.11");
            subOrder.put("cargo", "电脑");
            subOrders.add(subOrder);

            subOrder = new HashMap<>();
            subOrder.put("amount", "1");
            subOrder.put("weight", "2.22");
            subOrder.put("volume", "2.22");
            subOrder.put("cargo", "音响");
            subOrders.add(subOrder);
            ov.put("subOrders", subOrders);

            executePost(origin + "/tss/tms/api/order/create", ov);
          }

          private void executePost(String url, JSONObject ov) {
            PostMethod postMethod = new PostMethod(url);
            postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");

            postMethod.setParameter("params", ov.toString());
            postMethod.setParameter("uName", uName);
            String time = DateUtil.formatCare2Second(new Date());
            postMethod.setParameter("timestamp", time);
            postMethod.setParameter("uSign", InfoEncoder.string2MD5(uToken + time));

            HttpClient httpClient = new HttpClient();
            try {
              httpClient.executeMethod(postMethod);
              String responseBody = postMethod.getResponseBodyAsString();
              System.out.println(responseBody);
            } catch (Exception e) {
              e.printStackTrace();
            }
          }