当前位置: 首页 > news >正文

【SF顺丰】顺丰开放平台API对接(Java对接篇)

对接前置篇:

【SF顺丰】顺丰开放平台API对接(注册、API测试篇)_顺丰api接口对接指南-CSDN博客

1.实现效果展示

 2.SF顺丰开放平台,JDK资源下载。

     下载地址:顺丰开放平台

3.将下载的JDK放入项目中。

4.将JDK资源引入pom.xml文件中。

<!-- 顺丰丰桥 SDK -->
<dependency><groupId>com.sf</groupId><artifactId>SF-CSIM-EXPRESS-SDK</artifactId><version>2.1.7</version><scope>system</scope><systemPath>${project.basedir}/lib/SF-CSIM-EXPRESS-SDK-V2.1.7.jar</systemPath>
</dependency>

 注:项目启动pom.xml文件中配置打包将外部SDK引入项目包中,否则发布后依然是失效。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!-- 在打包时将引用的外部jar引入到当前项目包中	--><fork>true</fork><includeSystemScope>true</includeSystemScope></configuration></plugin></plugins>
</build>

5.测试DEMO

接下来是一个详细的示例,演示如何使用顺丰丰桥API进行路由信息查询。

    顺丰丰桥Api参考文档:顺丰开放平台

public class SFTestDemo {private static final String CLIENT_CODE = "替换自己应用的顾客编码";  //顾客编码//沙箱环境的地址private static final String CALL_URL_BOX = "https://sfapi-sbox.sf-express.com/std/service";//请求接口private static final String CHECK_WORD_BOX = "替换自己应用的沙箱校验码";//沙箱校验码//生产环境的地址private static final String CALL_URL_PROD = "https://sfapi.sf-express.com/std/service";//请求接口private static final String CHECK_WORD = "替换自己的应用的生产校验码";//生产校验码/*** 查询顺丰路由信息* <p>* 顺丰快递单号* 收件人手机号后四位** @return* @throws UnsupportedEncodingException*/public static void main(String[] args) throws UnsupportedEncodingException {IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_SEARCH_ROUTES;//路由查询String timeStamp = String.valueOf(System.currentTimeMillis());//时间戳CallExpressServiceTools tools = CallExpressServiceTools.getInstance();//数字签名,API文档有说明// set common headerMap<String, String> params = new HashMap<String, String>();//封装查询msgData数据Map<String, Object> map = new HashMap<>();List<String> list = new ArrayList();list.add("替换自己顺丰单号");map.put("language", "0");map.put("trackingType", "1");map.put("methodType", "1");map.put("trackingNumber", list);map.put("checkPhoneNo", "替换快递单手机号后四位");String msgData = JSONObject.toJSONString(map);//        params.put("Content-type", "application/x-www-form-urlencoded");params.put("partnerID", CLIENT_CODE);  // 顾客编码params.put("requestID", UUID.randomUUID().toString().replace("-", ""));params.put("serviceCode", standardService.getCode());// 接口服务码params.put("timestamp", timeStamp);params.put("msgData", msgData);params.put("msgDigest", tools.getMsgDigest(msgData, timeStamp, CHECK_WORD));String result = HttpClientUtil.post(CALL_URL_PROD, params);System.out.println("===调用地址 ===" + CALL_URL_PROD);System.out.println("===顾客编码 ===" + CLIENT_CODE);System.out.println("===返回结果:" + result);}
}

相关文章:

  • 科大讯飞Q1营收46.6亿同比增长27.7%,扣非净利同比增长48.3%
  • 全排列问题cpp
  • OOA-CNN-LSTM-Attention、CNN-LSTM-Attention、OOA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比
  • 代码随想录算法训练营Day32
  • css3新特性第五章(web字体)
  • 推荐系统/业务,相关知识/概念2
  • Vue 3 Proxy 响应式工作原理
  • Python常用的第三方模块之二【openpyxl库】读写Excel文件
  • Python爬虫实战:获取海口最近2周天气数据,为出行做参考
  • [FPGA基础] FIFO篇
  • SAP ERP HCM HR Forms Workplace
  • 海量数据存储策略
  • 程序的编译(预处理操作)+链接
  • Ray Tracing(光线追踪)与 Ray Casting(光线投射)
  • 强化学习(Reinforcement Learning, RL)​​与​​深度强化学习(Deep Reinforcement Learning, DRL)​​
  • 浅谈AI致幻
  • 如何避免流程形式化导致的效率低下?
  • 【CPU】结合RISC-V CPU架构回答中断系统的7个问题(个人草稿)
  • 【C++类和数据抽象】类的作用域
  • 深度学习-全连接神经网络
  • 安徽一季度GDP为12265亿元,同比增长6.2%
  • 国家税务总局镇江市税务局原纪检组组长朱永凯接受审查调查
  • 官方披露:WinRAR安全漏洞可绕过安全警告,执行恶意软件
  • 今年以来金价涨幅超26%,未来会继续上涨吗?
  • 白兰花香飘京城,上海文化体验项目点亮中华民族共同体之美
  • 上海地铁5G信号全覆盖后网速如何?记者亲测有这些发现