WMS_API

WMS_API

开通WMS企业域时,系统会分配一个对接账号及密钥:
uName:接入者唯一标识
uToken:接入者的密钥,用于签名
必要工具:MD5加密方法

1、接收出库通知单

接口地址:https://wmsdev.boudata.com/tss/wms/edi/order

请求方式:POST

请求编码:UTF-8

请求参数:

名称说明备注
uName对接账号
timestamp当前时间戳格式:2018-12-12 12:12:12
paramsJSON字符串JSON字符串,具体见下面params格式说明
uSign签名MD5(uToken + params + timestamp),其中uToken为对接令牌

params格式说明:

名称编码类型必填示例
出库单号code字符串TRUEO191027001
仓库编号warehouse字符串W001,为空则默认取第一个仓库
货主编号owner字符串OW002
下单日期orderDay字符串TRUE2019-10-27 22:13:46
收件人d_receiver字符串TRUE李四
收件人电话d_mobile字符串TRUE18767166333
收件省份d_province字符串江苏省
收件市d_city字符串扬州市
收件区d_district字符串白鹭区
收件具体地址d_addr字符串TRUExx小区x幢
备注remark字符串
自定义1udf1字符串
自定义2udf2字符串
自定义3udf3字符串
出库明细itemsjsonTRUE参考下面表格出库详情

出库明细(items)字段说明:

名称编码类型必填示例
货品编号skuCode字符串TRUE货品编码,非条码
货品名称skuName字符串TRUE
出库数量qty数字TRUE要求为数字,支持小数
单价price数字
金额money数字
批次属性1lotatt01字符串
批次属性2lotatt02字符串
批次属性3lotatt03字符串
批次属性4lotatt04字符串

响应结果:

{ "code": 100, "errorMsg": "" }

Java调用

  public void pushOrder() {
    JSONObject ov = new JSONObject();
    ov.put("code", "O191027001");
    ov.put("warehouse", "W-001");
    ov.put("owner", "OW-001");
    ov.put("orderDay", "2019-10-27 22:13:46");
    ov.put("d_receiver", "李四");
    ov.put("d_mobile", "18767166333");
    ov.put("d_province", "北京市");
    ov.put("d_city", "北京市");
    ov.put("d_district", "东城区");
    ov.put("d_addr", "中关村119号");
    ov.put("remark", "请尽快安排出库");

    List items = new ArrayList();

    JSONObject item1 = new JSONObject();
    item1.put("skuCode", "S001");
    item1.put("skuName", "农夫山泉(560ml*24)");
    item1.put("qty", 96);
    items.add(item1);

    JSONObject item2 = new JSONObject();
    item2.put("skuCode", "S001");
    item2.put("skuName", "鸿茅药酒(360ml*16)");
    item2.put("qty", 32);
    items.add(item2);

    ov.put("items", items);
    
    executePost("https://wmsdev.boudata.com/tss/wms/edi/order", ov);
  }

  private void executePost(String url, JSONObject ov) throws Exception {
    PostMethod postMethod = new PostMethod(url);
    postMethod.setRequestHeader("Content-Type", "application/json");
    postMethod.removeRequestHeader("referer");

    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();
    httpClient.executeMethod(postMethod);
    String responseBody = postMethod.getResponseBodyAsString();
    System.out.println(responseBody);
  }

以上示例代码依赖的jar包:
  <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
      <version>20180130</version>
  </dependency>
  <dependency>
      <groupId>commons-httpclient</groupId>
      <artifactId>commons-httpclient</artifactId>
      <version>3.1</version>
   </dependency>

响应结果:

响应code及含义:
100  成功
101  参数错误
102  重复请求
503  签名为空
504  时间戳无效
505  验签失败
506  令牌验证失败
555  接口内部异常