对接顺丰丰桥踩坑汇总(写给自己)
程序员文章站
2022-03-03 12:17:30
顺丰丰桥使用流程登录注册丰桥https://qiao.sf-express.com/index.html申请一条龙开发者信息按提示搞就行了,然后会有个测试月卡,如果正式环境需要申请正式月卡申请接口根据自身情况申请需要的接口其他的按流程做就行了在java代码使用在老版本里只能用xml的方式,在新版本可以使用json和xml两种方式,这里使用的是json方式引入官方提供的java-demo,代码如下:import java.io.UnsupportedEncodingException...
顺丰丰桥使用流程
登录注册丰桥
https://qiao.sf-express.com/index.html
申请一条龙
开发者信息
按提示搞就行了,然后会有个测试月卡,如果正式环境需要申请正式月卡
申请接口
根据自身情况申请需要的接口
其他的按流程做就行了
在java代码使用
在老版本里只能用xml的方式,在新版本可以使用json和xml两种方式,这里使用的是json方式
引入官方提供的java-demo,代码如下:
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import com.sf.csim.express.service.CallExpressServiceTools;
import com.sf.csim.express.service.EspServiceCode;
import com.sf.csim.express.service.HttpClientUtil;
public class TestCallExpressNewAPIService {
//丰桥新沙箱测试顾客编码 Yg4Zf06w_sxZs3A5D
//校验码 3Xdk1jqeG1Xod9nUXus8Op7DNOkchTnw
private static final String CLIENT_CODE = ""; //此处替换为您在丰桥平台获取的顾客编码
private static final String CHECK_WORD = "";//此处替换为您在丰桥平台获取的校验码
//沙箱环境的地址
private static final String CALL_URL_BOX = "https://sfapi-sbox.sf-express.com/std/service";
//生产环境的地址
private static final String CALL_URL_PROD = "https://sfapi.sf-express.com/std/service";
public static void main(String[] args) throws UnsupportedEncodingException {
EspServiceCode testService = EspServiceCode.EXP_RECE_CREATE_ORDER; //下订单
// EspServiceCode testService = EspServiceCode.EXP_RECE_SEARCH_ORDER_RESP; //查订单
// EspServiceCode testService = EspServiceCode.EXP_RECE_UPDATE_ORDER;//订单取消
// EspServiceCode testService = EspServiceCode.EXP_RECE_FILTER_ORDER_BSP;//订单筛选
// EspServiceCode testService = EspServiceCode.EXP_RECE_SEARCH_ROUTES;//查路由
// EspServiceCode testService = EspServiceCode.EXP_RECE_GET_SUB_MAILNO;//子单号
// EspServiceCode testService = EspServiceCode.EXP_RECE_QUERY_SFWAYBILL;//查运费
CallExpressServiceTools client=CallExpressServiceTools.getInstance();
// set common header
Map<String, String> params = new HashMap<String, String>();
String timeStamp = String.valueOf(System.currentTimeMillis());
String msgData =client.packageMsgData(testService);
params.put("partnerID", CLIENT_CODE); // 顾客编码 ,对应丰桥上获取的clientCode
params.put("requestID", UUID.randomUUID().toString().replace("-", ""));
params.put("serviceCode",testService.getCode());// 接口服务码
params.put("timestamp", timeStamp);
params.put("msgData", msgData);
params.put("msgDigest", client.getMsgDigest(msgData,timeStamp,CHECK_WORD));
// System.out.println(params.get("requestID"));
long startTime = System.currentTimeMillis();
System.out.println("====调用请求:" + params.get("msgData"));
String result = HttpClientUtil.post(CALL_URL_BOX, params);
System.out.println("====调用丰桥的接口服务代码:" + String.valueOf(testService.getCode()) + " 接口耗时:"+ String.valueOf(System.currentTimeMillis()-startTime)+"====");
System.out.println("===调用地址 ==="+CALL_URL_BOX);
System.out.println("===顾客编码 ==="+CLIENT_CODE);
System.out.println("===返回结果:" +result);
}
}
我们需要的是:
按要求将顾客编码,校验码改成自己的。
从接口提供的示例报文复制成 msgData的数据
当请求成功时,在丰桥那边---->我的沙盒里会有这条请求成功的消息
踩坑汇总
导入pom坐标时无法导入
丰桥官方提供jar包
登入丰桥----文档中心----API-SDK使用说明
调用接口时,参数出错
顺丰的接口有两种方式传递,1.json。2.xml。个人觉得顺丰的传参太麻烦,推荐使用:
官方提供的demo
下载官方的jar解压----java-demo----TestCallExpressNewAPIService.java
本文地址:https://blog.csdn.net/weixin_45349257/article/details/107361326