德邦快递接口开发-java(【新】下单服务接口)

查看文档:德邦文档链接

【新】下单服务接口融合了标准类的散客电子面单,快递电子面单,零担电子面单所有的下单接口;
该接口提供的服务:
(1)快递电子面单,零担电子面单和散客电子面单下单,并支持预埋单号或者同步获取运单号;
(2)轨迹订阅

根据提交数据的格式,我们建立对应的类文件,这样方便转化成对应的json数据提交,响应的数据也是一样的道理。

这里给出2个类文件,剩下的根据json结构对应建立即可。

public class DopOrder {

    private String logisticCompanyID = "DEPPON";
    
    private String companyCode = "公司编码"; //核算第三方接入商的公司编码(双方约定,建议公司简拼或者代码,字母大写)
    
    private String customerCode = "客户编码"; //与德邦crm中的客户编码保持一致
    
    private String orderSource = "客户编码";
    
    private String logisticID; //渠道单号 + 单号id
    
    private int    needTraceInfo = 1; //是否需要订阅轨迹 1:是(为是时要对接轨迹推送接口) 2:否 默认否
    
    private int    orderType = 2; //下单模式 1、 散客模式(单量较小,平台类,异地调货,退换货等发货地址不固定-需要通知快递员或者司机上门取件打单); 2、   大客户模式(仓库发货,固定点出货,单量较大客户自行打印标签,快递员直接盲扫走货)
    
    private DopPackageInfo packageInfo; //包裹信息
    
    private DopAddr receiver; //        收货人信息
    
    private DopAddr sender; //  发货人信息
    
    private DopAddService  addServices;  //增值服务
    
    private String transportType; //运输方式/产品类型  快递运输方式:3.60特惠件 RCP;   精准汽运短途 (常用):JZQY_SHORT ; 精准城运(常用):JZQY_LONG ; 精准空运 (一般):JZKY
    
    private String gmtCommit; //订单提交时间 2012-11-27 18:44:19 系统当前时间
    
    private int    payType; //支付方式  0:发货人付款(现付) 1:收货人付款(到付) 2:发货人付款(月结) (电子运单客户不支持寄付)
    
    private String isOut = "N"; //是否外发 Y:需要 N: 不需要(大客户模式下运输方式为零担时必填)
    
    private String   vistReceive = "Y";
    
    private String  remark;

    // getter and setter
}
public class DopPackageInfo {

    private String cargoName; //货物名称
    
    private String    deliveryType; //送货方式 1、自提; 2、送货进仓; 3、送货(不含上楼); 4、送货上楼; 5、大件上楼
    
    private int    totalNumber; //总件数(包裹数)
    
    private double totalWeight = 1; //总重量
    
    private String packageService; //包装  包装(直接用中文) : 纸、纤、木箱、木架、托膜、托木(大客户模式下运输方式为零担时必填)
}

通过表单,生成请求类数据,很多web框架都支持将各种数据整合成类数据:

JSONObject postJson = JSONObject.fromObject(dopOrder);
String _params = postJson.toString();

提交数据并接收响应数据,处理逻辑。

private DopOrderResponse syncOrder(long timestamp, String _params, String url) throws Exception {
    String digest = DopUtils.getDigest(_params + DopUtils.appkey + timestamp);
    Map map = new LinkedHashMap();
    map.put("params", _params);
    map.put("digest", digest);
    map.put("timestamp", String.valueOf(timestamp));
    map.put("companyCode", DopUtils.companyCode);
    
    String response = HttpClientUtils.post(url, map);
    
    System.out.println(response);
    
    JSONObject responseJson = JSONObject.fromObject(response);
    
    DopOrderResponse responseBean = (DopOrderResponse) JSONObject.toBean(responseJson, DopOrderResponse.class);
    return responseBean;
}

你可能感兴趣的:(德邦快递接口开发-java(【新】下单服务接口))