德邦快递的接入,关键也是组合数据,提交并处理响应数据,流程和顺丰差不多,工具类比较简单,官方文档都有,在做之前,先把官方文档都读一遍,大概知道要找的内容在什么位置,以及了解流程。

对接规范和流程
◆传输协议
暂时只支持HTTP协议进行通信。
◆数据传输格式
所有接口暂只支持json消息格式。
◆编码格式:UTF-8
交互编码格式统一用UTF-8,避免传递中文数据出现乱码。
◆安全验证
在数据传输过程中,为避免数据被篡改,需要对数据进行加密。入参由四个参数组成:
params(请求参数),digest(密文摘要), timestamp(时间戳),companyCode(第三方接入商的公司编码,双方约定)
参数传递采用http post请求,请求消息头设置(“Content-Type”,“application/x-www-form-urlencoded;charset=utf-8”)
在传输的参数中,既要传递原始的json字符串params,又要传输加密后的摘要digest。
设置有效的请求时间戳,当接收端收到请求端的时间差不在有效的时间戳范围内,则认为该订单无效。
德邦开放平台可以根据不同的公司设置不同的时间戳有效时长。调用方在重发消息时时间戳应重新生成,请求报文的摘要也需要重新生成。
timestamp:
13位Unix时间戳 timestamp = System.currentTimeMillis();
digest:
摘要的生成规则是 String plainText = params + appkey + timestamp,注意传递的timestamp要和加密的timestamp值相同。
加密源码如下:

private static String getDigest(String plainText) {return Base64.encodeBase64String(DigestUtils.md5Hex(plainText).getBytes());
}

Base64引用 : org.apache.commons.codec.binary.Base64
DigestUtils引用 : org.apache.commons.codec.digest.DigestUtils

然后可以测试一个流程是否可行,比如【新】下单服务接口:

static String params = "{\n" + "    \"companyCode\":\"EWB111\",\n" + "    \"custOrderNo\":\"123456\",\n" + "    \"customerCode\":\"12345678\",\n" + "    \"logisticID\":\"LPEXP33343111111113445\",\n" + "    \"needTraceInfo\":1,\n" + "    \"orderType\":\"1\",\n" + "    \"packageInfo\":{\n" + "        \"cargoName\":\"货物名\",\n" + "        \"deliveryType\":\"9\",\n" + "        \"totalNumber\":2,\n" + "        \"totalVolume\":0.01,\n" + "        \"totalWeight\":1,\n" + "             \"packageService\":\"纸\"\n" + "    },\n" + "    \"receiver\":{\n" + "        \"address\":\"详细地址\",\n" + "        \"city\":\"上海市\",\n" + "        \"companyName\":\"德邦\",\n" + "        \"county\":\"青浦区\",\n" + "        \"mobile\":\"180****2531\",\n" + "        \"name\":\"AAA\",\n" + "        \"province\":\"上海\",\n" + "        \"town\":\"徐泾镇\"\n" + "    },\n" + "\n" + "    \"sender\":{\n" + "        \"address\":\"详细地址\",\n" + "        \"city\":\"上海市\",\n" + "        \"companyName\":\"德邦\",\n" + "        \"county\":\"青浦区\",\n" + "        \"mobile\":\"180****3451\",\n" + "        \"name\":\"AAA\",\n" + "        \"province\":\"上海\",\n" + "        \"town\":\"徐泾镇\"\n" + "    },\n" + "    \"transportType\":\"PACKAGE\",\n" + "      \"gmtCommit\":\"@time\",\n" + "     \"payType\":\"1\",\n" + "        \"isOut\":\"N\"\n" + "}";public static void main(String[] args) throws JSONException, Exception {long timestamp = System.currentTimeMillis();Calendar cal = Calendar.getInstance();cal.setTimeInMillis(timestamp);String _params = params.replaceAll("@time", DateUtils.dateToString(cal, "yyyy-MM-dd HH:mm:ss"));String digest = getDigest(_params + 你的appkey + timestamp);String companyCode = "你的company code";Map map = new LinkedHashMap();map.put("params", _params);map.put("digest", digest);map.put("timestamp", String.valueOf(timestamp));map.put("companyCode", companyCode);String response = HttpClientUtils.post(NEW_ORDER_URL, map);System.out.println(response);
}

如无意外,应该会收到成功的响应数据,然后你就可以一次性地把你需要的接口都测试一遍,只需要修改一下传入的参数,看到一片绿还是挺爽的。测试完,再慢慢逐个完善业务逻辑吧。

德邦快递接口开发-java(工具类)相关推荐

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

    查看文档:德邦文档链接 [新]下单服务接口融合了标准类的散客电子面单,快递电子面单,零担电子面单所有的下单接口: 该接口提供的服务: (1)快递电子面单,零担电子面单和散客电子面单下单,并支持预埋单号 ...

  2. 德邦快递接口开发-java(问题简集)

    1.怎么分精准汽运短途 JZQY_SHORT 和 精准汽运长途 JZQY_LONG? 省内选短途:省外选长途. 2.快递业务,一单里面有多个件的,子母单是怎么体现的,[新]下单服务接口,返回结果 cu ...

  3. 德邦快递接口开发-php(亲测有效)

    德邦快递的接入,关键也是组合数据,提交并处理响应数据,流程和顺丰差不多,工具类比较简单,官方SDK指给出了JAVA的demo,对于PHP来说的话就有点难度了,博主研究这个代码也是研究了半个小时之久的, ...

  4. java 实现限流器,可用于Rest接口请求处理 | Java工具类

    目录 前言 Maven依赖 代码 总结 前言 在工作中是否会碰到这样的场景,高并发的请求但是无法全部执行,需要一定的限流.如果你是使用的微服务框架,比如SpringCloud,可以使用Gateway增 ...

  5. 网络请求以及网络请求下载图片的工具类 android开发java工具类

    2019独角兽企业重金招聘Python工程师标准>>> package cc.jiusan.www.utils;import org.apache.http.HttpEntity; ...

  6. java escape工具类_java开发常用工具类

    在Java中,,工具类定义了一组公共方法.你把你的类继承这些类或者实现这些接口,就可以使用这些类的方法了.下面给大家介绍一下十六种最常用的java开发常用工具类. 一. org.apache.comm ...

  7. java时间随机数_java开发代码工具类(时间戳/随机数/日期等)

    简介 java开发代码工具类,提高开发效率,持续更新~ 实践 package com.springboot.sixmonth.common.util; import java.math.BigInte ...

  8. java开发工具排名_干货:排名前16的Java工具类

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  9. Java工具类——通过配置XML验证Map

    Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...

最新文章

  1. centos yum mysql-devel 5.5_CentOS 6.5下yum安装 MySQL-5.5全过程图文教程
  2. python 3.5-python3.5
  3. linux 命令之电子书chm格式下载
  4. Spring5参考指南:IOC容器
  5. 漫画:什么是人工智能
  6. 大数据时代下,App数据隐私安全你真的了解么?
  7. k8s通过yaml创建pod_Kubernetes根据yaml创建pod的时候8080访问被拒绝报错
  8. 「新手向」koa2从起步到填坑
  9. Android心电图动画效果,手把手教你打造一个心电图效果View Android自定义View
  10. 14.2 movielens
  11. Visio 下载,及密钥
  12. 智遥工作流为Sap报工时(实例)
  13. 到底什么样的网站才需要办理ICP许可证?
  14. 新手做seo该怎么做?seo新手入门基础教程
  15. HTTP,TCP,UDP常见端口对照表大全
  16. 如何写出好文案,不妨看看这篇(上)
  17. Forexclub:澳元陷入美元漩涡
  18. facebook-pop 概述
  19. vulnhub——Bulldog2
  20. 海思高校合作——QA培训资料

热门文章

  1. 企业开发:选Flex?还是HTML5?
  2. C# 7. ShowDialog与Form.Show区别
  3. Bootstrapbxslider
  4. C++学习之 编程基础(中国科学院大学)
  5. FJNU2019级第二场排位赛D题Nim题解
  6. 2017杭电ACM集训队单人排位赛 - 2 饶学妹的比赛
  7. Initializing Spring DispatcherServlet dispatcherServlet
  8. ES6基础:变量的解构赋值
  9. COM 组件设计与应用
  10. c#创建画布_C# – 调整图像画布大小(保留源图像的原始像素尺寸)