卜数开放平台API

API

下单

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

请求参数:

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

params参数:

名称编码类型必填示例
客户单号ccodeStringErp0000001
寄件人send_manStringTRUE张三
寄件人电话send_phoneStringTRUE18767166222
寄件省份send_provinceStringTRUE浙江省
寄件市send_cityStringTRUE杭州市
寄件区县send_districtString江干区
寄件乡镇send_townString
寄件具体地址send_street_noStringTRUE
收件人receive_manStringTRUE李四
收件人电话receive_phoneStringTRUE18767166333
收件人公司receive_companyString
收件省份receive_provinceStringTRUE江苏省
收件市receive_cityStringTRUE扬州市
收件区县receive_districtString高邮市
收件乡镇receive_townString
收件具体地址receive_street_noStringTRUExx小区x幢
服务方式service_modeString派送, 站点自提, 中心自提, 自提
保价额insurance_limitDouble
支付方式settle_typeStringTRUE寄付, 到付, 月结
代收货款金额codDouble
需要网点上门提货if_visitBooleanTRUE
快件if_fastBooleanDefault=false
备注remarkString
子单集合subOrdersObject
———件数amountInteger
———重量weightDouble
———体积volumeDouble
———货物cargoString
———包装packString

响应参数:

名称编码类型示例
结果resultBoolean
错误信息errorMsgStringresult=false时会有该属性
订单dataStringE8单号

查轨迹

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

请求参数:

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

params参数:

名称编码类型必填示例
E8单号codeStringTRUE两者必填一个
客户单号ccodeStringTRUE两者必填一个

响应参数:

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

取消订单(暂无)

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

请求参数:

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

params参数:

名称编码类型必填示例
E8单号codeStringE8单号和客户单号必传一个
客户单号ccodeString

响应参数:

名称编码类型示例
结果resultBoolean
错误信息errorMsgStringResult=false时会有该属性

回单回传

接口地址:对方提供

请求参数:

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

响应参数要求:

名称编码类型示例
结果resultBoolean
错误信息errorMsgStringResult=false时会有该属性

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();
    }
  }