顺丰丰桥接口开发-java(下订单接口)

下订单接口,提交的数据如下:

 
SLKJ2019

  

 

下单表单页面类似下图:

顺丰丰桥接口开发-java(下订单接口)_第1张图片
下单表单

接收到表单数据,需要转换成对应的xml数据提交,所以我们会根据xml结构构建对应的类,参考如下:
首先是最顶层的Request, 主要看注解

@XmlRootElement(name="Request")
public class SfRequest {

    private String service;
    
    private String lang = "zh-CN";
    
    private String head = SfUtils.clientCode;
    
    private SfRequestBody body;

    public SfRequest() {}
    
    public SfRequest(String service) {
        this.service = service;
    }

    @XmlAttribute
    public String getService() {
        return service;
    }

    public void setService(String service) {
        this.service = service;
    }

    @XmlAttribute
    public String getLang() {
        return lang;
    }

    public void setLang(String lang) {
        this.lang = lang;
    }

    @XmlElement(name="Head")
    public String getHead() {
        return head;
    }

    public void setHead(String head) {
        this.head = head;
    }

    @XmlElement(name="Body")
    public SfRequestBody getBody() {
        return body;
    }

    public void setBody(SfRequestBody body) {
        this.body = body;
    }
}

然后是Body:

@XmlRootElement(name="Body")
public class SfRequestBody {
    SfRequestOrder order;

    public SfRequestBody() {}

    @XmlElement(name = "Order")  
    public SfRequestOrder getOrder() {
        return order;
    }

    public void setOrder(SfRequestOrder order) {
        this.order = order;
    }
}

然后就是Order,属性太多就不逐个列了,需要注意的是XmlAttribute和XmlElement的区别,对比xml一下就知道了:

@XmlRootElement(name="Order")
public class SfRequestOrder {
    ……
    private SfRequestCargo cargo;
    public SfRequestOrder() {}
    
    @XmlAttribute(name="j_province")
    public String getJ_province() {
        return j_province;
    }

    public void setJ_province(String j_province) {
        this.j_province = j_province;
    }

    @XmlElement(name="Cargo")
    public SfRequestCargo getCargo() {
        return cargo;
    }

    public void setCargo(SfRequestCargo cargo) {
        this.cargo = cargo;
    }

}

下面的就不再一一列了,这些类文件都写好之后,就可以将表单数据整合成请求的数据了,再通过上一篇的工具转成xml数据,以及使用上一篇的testRequest方法,稍微修改下,下单提交就完成了。

响应数据收到后,我们可以根据xml的数据结构,如上建立对应的类文件,将xml反转成类数据:
SfResponseVo responseVo = (SfResponseVo) SfUtils.xmlToBean(response, SfResponseVo.class);

那么下单的接口就完成了,是不是很简单?这种方式在写前面那些类文件时感觉比较繁琐,但是写完后,后面处理逻辑就非常清晰了。

你可能感兴趣的:(顺丰丰桥接口开发-java(下订单接口))