美文网首页
顺丰丰桥接口开发-java(下订单接口)

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

作者: 我想你是不知道的 | 来源:发表于2019-10-14 17:19 被阅读0次

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

<Request service = "OrderService" lang = "zh-CN" > 
<Head>SLKJ2019</Head>
<Body>
  <Order 
    orderid="SFKD-20160219000019" 
    j_company="深圳宝龙达信息技术股份有限公司" 
    j_contact="邓丽君" 
    j_tel="15323233432" 
    j_mobile="15322234342" 
    j_province="广东省" 
    j_city="深圳市"
    j_county="南山区"
    j_address="广东省深圳市南山区西丽镇塘朗同富裕工业城7栋" 
    d_contact="四海" d_tel="15023434543" 
    d_mobile="15423456545" 
    d_province="广东省" 
    d_city="深圳市" 
    d_county="南山区" 
    d_address="科技园软件产业基地" 
    express_type="1" 
    pay_method="1" 
    custid="7551234567" 
    parcel_quantity="1" 
    is_docall="0" 
    sendstarttime=""  
    remark="电子产品 笔记本+显卡"
        is_unified_waybill_no="1">
</Order>
</Body> 
</Request>

下单表单页面类似下图:

下单表单
接收到表单数据,需要转换成对应的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(下订单接口)

      本文链接:https://www.haomeiwen.com/subject/zyarmctx.html