快递100API接口常见问题解答。此内容为技术对接FAQ,为您解决对接快递100API接口过程中遇到的问题。如果本篇内容没有覆盖到您的问题,请访问官方网站联系技术人员和运营人员帮您1对1处理。
问题1.快递100api接口里sign该如何处理?
快递100加密方式统一为MD5后转大写,可以参考签名
代码语言:txt复制org.apache.commons.codec.digest.DigestUtils.md5Hex(msg).toUpperCase();
问题2.使用了快递100订阅接口后,该如何处理回调接口?
可以参考推送订阅回调
代码语言:txt复制public SubscribeResp callBackUrl(HttpServletRequest request){
String param = request.getParameter("param");
String sign = request.getParameter("sign");
//建议记录一下这个回调的内容,方便出问题后双方排查问题
log.debug("快递100订阅推送回调结果|{}|{}",param,sign);
//订阅时传的salt,没有可以忽略
String salt = "";
String ourSign = SignUtils.sign(param salt);
SubscribeResp subscribeResp = new SubscribeResp();
subscribeResp.setResult(Boolean.TRUE);
subscribeResp.setReturnCode("200");
subscribeResp.setMessage("成功");
//加密如果相等,属于快递100推送;否则可以忽略掉当前请求
if (ourSign.equals(sign)){
//TODO 业务处理
return subscribeResp;
}
return null;
}
问题3.使用电子面单图片接口,该如何处理返回的base64图片?
返回的是一个字符串json数组,多个子单时会有多个。
添加前缀“data:image/png;base64,”,把“\n”替换成“”;可以参考处理返回的base64字符串
代码语言:txt复制public List<String> getBase64Img(String imgBase64){
List<String> stringList= new Gson().fromJson(imgBase64,
new TypeToken<List<String>>() {}.getType());
List<String> base64Img = new ArrayList<String>();
if (stringList != null && stringList.size()>0){
for (String s : stringList) {
s = "data:image/png;base64," s.replace("\\n","");
base64Img.add(s);
}
}
return base64Img;
}
问题4.云平台其他接口该如何对接?
第一步:根据对应接口新增对应的请求参数类,继承CloudBaseReq,类似快递寄件接口取消寄件请求参数类
代码语言:txt复制public class COrderCancelReq extends CloudBaseReq{
/**
* 任务ID
*/
private String taskId;
/**
* 订单ID
*/
private String orderId;
/**
* 取消原因,例:暂时不寄件了
*/
private String cancelMsg;
}
第二步:调用时只需要更换成第一步新建的实体
代码语言:txt复制public void testCOrderCancel() throws Exception {
COrderCancelReq cOrderCancelReq = new COrderCancelReq();
cOrderCancelReq.setTaskId("B19BB4C6F33BE9E735A63D4142557751");
cOrderCancelReq.setOrderId("11115207");
cOrderCancelReq.setCancelMsg("测试单");
cOrderCancelReq.setSecret_key(secret_key);
cOrderCancelReq.setSecret_code(CloudApiCodeConstant.ORDER_CANCEL);
cOrderCancelReq.setSecret_sign(SignUtils.cloudSign(secret_key,secret_secret));
IBaseClient cloudBase = new CloudBase();
System.out.println(cloudBase.execute(cOrderCancelReq));
}
tips:key、secret、code等账号信息获取,云平台->买家中心-我的接口
在线技术支持:https://api.kuaidi100.com/