顺丰开放平台地址:顺丰开放平台
一、了解官网
1.1、开发文档
开发接口之前可以先查看熟悉文档,尤其是API文档仔细阅读。进入之后是如下图,根据自己需要开发的接口,先查看文档,然后根据文档要求来请求并处理响应。
1.2、服务接口
点击开发者对接,进入之后,点击开发者对接,再点击新建应用,根据要求填写信息。
创建成功之后,会在下面展示你创建的应用。
关联API,创建的时候可以关联API,创建之后也可以在查看API里面进行关联。
点击查看API进入
然后点击关联API
关联你想要的API
关联之后才可以联调测试上线!
二、 SDK使用
2.1、查看官网SDK
点击控制台,找到开发规范点进去。
找到 API-SDK使用说明
官网的是拿java举例是哟SDK的,这里我们也是用跟java做集成的SDK
点击SDK工具,然后选择JAVA的 ,点击下载最新版就可以了(也可以查看版本下载其他的版本)
下载之后是一个zip压缩包,解压之后,我们需要下面标红的这三个部分。
code:是一些枚举类,可以不用,因为SF-CSIM-EXPRESS-SDK-V2.1.7.jar里面包含了。
java-demo:是测试类,这个我们需要将他拷贝到我们的项目里,然后封装成一个工具类。
json:这里面是请求API接口的一些请求参数示例,这个可要可不要。
lib:这个是需要的其他依赖包。
readme.txt:无关紧要的东西吧。
SF-CSIM-EXPRESS-SDK-V2.1.7.jar:这个是核心包,顺丰封装的jar包。
2.2、集成到项目
2.2.1、添加依赖(这里我用的是maven管理依赖的方式)
<!--顺丰依赖--> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.3.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency> <!--顺丰的核心包(本地打包)--> <dependency> <groupId>com.sf.csim.express</groupId> <artifactId>SF-CSIM-EXPRESS-SDF</artifactId> <version>V2.1.7</version> </dependency>
注意顺丰的核心包maven官网是不提供的,需要我们自己将下载的SF-CSIM-EXPRESS-SDK-V2.1.7.jar包打到我们maven的本地仓库(这里不过多解释,主要针对集成顺丰)。其他的依赖包maven远程仓库都是可以下砸的。
2.2.2、配置应用信息
配置应用信息,下一步封装工具类需要。
2.2.3、封装工具类
package com.casic.cloud.webtrans.utils;
import com.sf.csim.express.service.CallExpressServiceTools;
import com.sf.csim.express.service.HttpClientUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* 20 ^O^开心快乐!!!
*
* @Description: CallExpressNewAPIServiceUtil类...,调用顺丰API
* @Author: Wuxinke
* @Date: 2023/3/20
**/
@Component
public class CallExpressNewAPIServiceUtil {
//此处替换为您在丰桥平台获取的顾客编码
@Value("${CLIENT_CODE}")
private String CLIENT_CODE;
//此处替换为您在丰桥平台获取的校验码
@Value("${CHECK_WORD}")
private String CHECK_WORD;
//沙箱环境的地址 -PRO
@Value("${CALL_URL_BOX}")
private String CALL_URL_BOX;
//生产环境的地址 -PRO
@Value("${CALL_URL_PROD}")
private String CALL_URL_PROD;
/**
*@Description: 调用顺丰API方法
* msgData:请求报文 serviceCode:接口服务码
*@Date: 2023/3/20 17:25
**/
public String callSFApi(String serviceCode,String msgData) throws Exception {
//验证请求参数
if(StringUtils.isEmpty(serviceCode) || StringUtils.isEmpty(msgData)){
throw new Exception("参数不能为空!");
}
CallExpressServiceTools tools=CallExpressServiceTools.getInstance();
// set common header
Map<String, String> params = new HashMap<String, String>();
String timeStamp = String.valueOf(System.currentTimeMillis());
params.put("partnerID", CLIENT_CODE); // 顾客编码 ,对应丰桥上获取的clientCode
params.put("requestID", UUID.randomUUID().toString().replace("-", ""));//请求唯一号UUID
params.put("serviceCode",serviceCode);// 接口服务码
params.put("timestamp", timeStamp);//调用接口时间戳
params.put("msgData", msgData);//报文
params.put("msgDigest", tools.getMsgDigest(msgData,timeStamp,CHECK_WORD));//数字签名
long startTime = System.currentTimeMillis();
System.out.println("====调用实际请求:" + params);
String result = HttpClientUtil.post(CALL_URL_BOX, params);
System.out.println("====调用丰桥的接口服务代码:" + String.valueOf(serviceCode) + " 接口耗时:"+ String.valueOf(System.currentTimeMillis()-startTime)+"====");
System.out.println("===调用地址 ==="+CALL_URL_BOX);
System.out.println("===顾客编码 ==="+CLIENT_CODE);
System.out.println("===返回结果:" +result);
return result;
}
}
到这一步就算集成成功了,接下来就是去具体的操作某些接口。