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

<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;}@XmlAttributepublic String getService() {return service;}public void setService(String service) {this.service = service;}@XmlAttributepublic 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(下订单接口)相关推荐

  1. 顺丰丰桥接口开发-java(订单取消接口)

    订单取消接口,咨询了顺丰公司,下单后不取消也没什么问题,不过为了自己的业务系统的完整性,我们还是需要弄的.取消的xml没有那么复杂,偷懒就不搞java类了,直接替换相关数据提交,操作看之前的文章. & ...

  2. 亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(下)

    亚马逊电商数据自动化管理接口平台JAVA SP-API接口开发(下) 重要说明 本文章为亚马逊系列其中的一篇,具体详见 主页 中亚马逊分类 该系列项目均为[CSDN轻夏]原创,未经允许禁止转载 如有疑 ...

  3. java微信接口开发java SpringMVC mybatis 后台框架

    获取[下载地址]   QQ: 313596790   [免费支持更新] 支持三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [ 新录针对本系统的视频教 ...

  4. 支付接口开发总结,支付宝接口、通联接口

    主要知识点:会使用httpclient.理解回调和通知机制.理解session机制 支付宝开发主要就是三个接口:一个是下订单的接口. 这个接口中,先存储自己的订单业务逻辑. 然后根据自己支付宝注册成为 ...

  5. 公众号php支付接口开发,公众号支付接口的开发

    这次给大家带来公众号支付接口的开发,公众号支付接口开发的注意事项有哪些,下面就是实战案例,一起来看一下. 公众号支付就是在微信里面的H5页面唤起微信支付,不用扫码即可付款的功能.做这个功能首先要明确的 ...

  6. python中restful接口开发实例_Python RESTful接口开发02

    什么是RESTful RESTful是一种设计思想,一种风格. RESTful主要包括 资源 和 对资源的操作. 资源: 对实体的抽象,图书.音乐.电影.学生等都属于资源. 对资源的操作: ===== ...

  7. 顺丰丰桥java demo_顺丰丰桥接口开发-java(前篇)

    因原系统jdk版本较低,所以没有使用丰桥提供的jar,纯手写完成,主要包括下单接口.取消接口.增加件数接口.路由接口等,难度不大,就是遇到问题很难找到客服,哈哈... 开发主要解决的无非是如何提交数据 ...

  8. 顺丰丰桥接口开发-java(工具类)

    上一篇讲到我们用的是xml与bean之间的转换的方式来处理数据,那么就需要用到一些类库来解决,网上搜一下JAXBContext,就有很多相关的文章介绍(感谢大咖们的贡献),主要涉及两个方法如下: /* ...

  9. 顺丰丰桥接口开发-java(前篇)

    因原系统jdk版本较低,所以没有使用丰桥提供的jar,纯手写完成,主要包括下单接口.取消接口.增加件数接口.路由接口等,难度不大,就是遇到问题很难找到客服,哈哈- 开发主要解决的无非是如何提交数据,以 ...

最新文章

  1. Active Directory边界
  2. easyui动态显示和隐藏表头
  3. 探索C/C++大数快(自然数)模板
  4. 美来临公司商业模式分析,公司是不昨的
  5. 泊松分布 二项分布 正态分布之间的联系,与绘制高斯分布图
  6. css3 border渐变实现
  7. 浅谈计算机教学论文,浅谈计算机教学(论文)
  8. python mysql插入数据报错:TypeError: %d format: a number is required, not str
  9. 04夯实基础之MySQL基础
  10. 维乐美学系列:美丽背后的匠心打造
  11. MySQL的下载与安装(超详细)
  12. 【英语词组】恋恋不忘Day 3-4
  13. 蓝汛之GPIO基本操作寄存器【篇】
  14. 期货破位(期货破位做单法)
  15. 台式计算机的CPU上安装有小风扇,台式电脑cpu风扇安装教程
  16. 带你读懂Java GC日志信息 教你如何使用工具查看【图文演示】
  17. windows微信如何双开
  18. 企业安全级世界杯,红芯助你捧得大力神杯
  19. Oracle自治数据库技术概要白皮书读书笔记
  20. Cpolar配合Everything快速搜索私有云资料

热门文章

  1. service暴露端口的方式与代理方式
  2. JAVA程序员面试30问(附带答案)
  3. 办公技巧 original 设置自适应画布,让图像大小跟图形保持一致
  4. win10+ubuntu 18.04双系统(联想小新13pro)——我终于安好了!
  5. 基于JAVA(Springboot框架)助农商城平台系统设计与实现 毕业设计开题报告
  6. mysql数据库学习之索引
  7. Java实验报告(三)
  8. brand.php dnfire.cn_火灾报警系统品牌
  9. HCNA期末测试题答案
  10. 从零学习Vue - 02模板语法、el与data两种写法、mvvm模型、数据代理