当前位置: 首页 > 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);}
}

http://www.lryc.cn/news/590299.html

相关文章:

  • AI Agent开发学习系列 - langchain之LCEL(2):LCEL 链式表达解析
  • Nand2Tetris(计算机系统要素)学习笔记 Project 0
  • 单片机学习笔记.IIC通信协议(根据数据手册写IIC驱动程序,这里以普中开发板上的AT24C02为例)
  • 【深度学习基础】PyTorch中model.eval()与with torch.no_grad()以及detach的区别与联系?
  • 嵌入式学习-PyTorch(5)-day22
  • 人工智能时代下的数据新职业:新兴工作岗位版图研究
  • 智能体架构深度解构:一次用户请求的完整旅程
  • 第二十一 篇 PDF文档自动化:Python一键合并、分割、水印、提取与加密解密!你的PDF全能管家!
  • audiorecord 之 抢占优先级
  • rLLM:用于LLM Agent RL后训练的创新框架
  • ESP32 S3 基于 Arduino 实现局域网视频流传输全解析
  • Python从入门到高手9.2节-Python字典的操作方法
  • 多维动态规划题解——不同路径【LeetCode】记忆化搜索
  • NumPy 常用操作详解汇总和实战示例
  • 泰语OCR识别技术方案
  • 【React Native】安装配置 Expo Router
  • STM32 ODR
  • obsidian1.8.10_win中文_Markdown编辑器_安装教程
  • 逆功率检测设备防逆流解决方案守护电网安全
  • 第五章 管道工程 5.4 管道安全质量控制
  • Uniswap V2/V3/V4简短说明
  • 功能测试和回归测试
  • 架构设计之计算高性能——单体服务器高性能
  • 更灵活方便的初始化、清除方法——fixture【pytest】
  • 使用Node搭建一个直播服务器,实时直播当前桌面
  • 获取印度股票数据API实例:NSE与BSE双市场对接指南
  • Python类中魔术方法(Magic Methods)完全指南:从入门到精通
  • [特殊字符]️ Snort 与 Suricata 入侵检测系统详解
  • 热点综述│高效泛化求解新范式:神经算子综述
  • IIS网站间歇性打不开暴力解决方法