快递100API接口帮助文档_接入技术问题FAQ

快递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等账号信息获取,云平台->买家中心-我的接口

key、secret、code等账号信息获取

在线技术支持:https://api.kuaidi100.com/