107 changed files with 4012 additions and 189 deletions
@ -1,54 +0,0 @@ |
|||||||
/** |
|
||||||
* Copyright (C) 2018-2022 |
|
||||||
* All rights reserved, Designed By www.yixiang.co |
|
||||||
* 注意: |
|
||||||
* 本软件为www.yixiang.co开发研制,未经购买不得使用 |
|
||||||
* 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) |
|
||||||
* 一经发现盗用、分享等行为,将追究法律责任,后果自负 |
|
||||||
*/ |
|
||||||
package co.yixiang.tools.express.config; |
|
||||||
|
|
||||||
|
|
||||||
import co.yixiang.constant.ShopConstants; |
|
||||||
import co.yixiang.enums.ShopCommonEnum; |
|
||||||
import co.yixiang.tools.express.ExpressService; |
|
||||||
import co.yixiang.utils.RedisUtils; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.context.annotation.Configuration; |
|
||||||
|
|
||||||
@Configuration(proxyBeanMethods = false) |
|
||||||
public class ExpressAutoConfiguration { |
|
||||||
|
|
||||||
|
|
||||||
private static RedisUtils redisUtil; |
|
||||||
|
|
||||||
@Autowired |
|
||||||
public ExpressAutoConfiguration(RedisUtils redisUtil) { |
|
||||||
ExpressAutoConfiguration.redisUtil = redisUtil; |
|
||||||
} |
|
||||||
|
|
||||||
public static ExpressService expressService() { |
|
||||||
ExpressService expressService = (ExpressService)redisUtil.get(ShopConstants.ZSW_EXPRESS_SERVICE); |
|
||||||
if(expressService != null) { |
|
||||||
return expressService; |
|
||||||
} |
|
||||||
|
|
||||||
ExpressProperties properties = new ExpressProperties(); |
|
||||||
String enable = redisUtil.getY("exp_enable"); |
|
||||||
String appId = redisUtil.getY("exp_appId"); |
|
||||||
String appKey = redisUtil.getY("exp_appKey"); |
|
||||||
properties.setAppId(appId); |
|
||||||
properties.setAppKey(appKey); |
|
||||||
|
|
||||||
if(ShopCommonEnum.ENABLE_2.getValue().toString().equals(enable)){ |
|
||||||
properties.setEnable(false); |
|
||||||
}else{ |
|
||||||
properties.setEnable(true); |
|
||||||
} |
|
||||||
ExpressService service = new ExpressService(); |
|
||||||
service.setProperties(properties); |
|
||||||
redisUtil.set(ShopConstants.ZSW_EXPRESS_SERVICE,service); |
|
||||||
return service; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.express.config; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties; |
||||||
|
|
||||||
|
@ConfigurationProperties(prefix = "kuaidi100") |
||||||
|
@Data |
||||||
|
public class Kuaidi100Properties { |
||||||
|
|
||||||
|
private String key; |
||||||
|
|
||||||
|
private String customer; |
||||||
|
|
||||||
|
private String secret; |
||||||
|
|
||||||
|
private String userid; |
||||||
|
|
||||||
|
private Boolean enable; |
||||||
|
} |
@ -0,0 +1,54 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.AutoNumReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.AutoNumResp; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import com.google.gson.reflect.TypeToken; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 快递100智能判断接口(只提供给正式用户使用) |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 9:59 |
||||||
|
*/ |
||||||
|
public class AutoNum extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
AutoNumReq autoNumReq = (AutoNumReq) request; |
||||||
|
return String.format(ApiInfoConstant.AUTO_NUM_URL,autoNumReq.getNum(),autoNumReq.getKey()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据单号获取快递公司列表 |
||||||
|
* |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public List<AutoNumResp> getComByNumList(BaseRequest request) throws Exception{ |
||||||
|
HttpResult httpResult = this.execute(request); |
||||||
|
if ( httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),new TypeToken<List<AutoNumResp>>(){}.getType()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据单号获取第一个快递公司 |
||||||
|
* |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public String getFirstComByNum(BaseRequest request) throws Exception{ |
||||||
|
List<AutoNumResp> comByNumList = this.getComByNumList(request); |
||||||
|
if (comByNumList != null && comByNumList.size()>0){ |
||||||
|
return comByNumList.get(0).getComCode(); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,63 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.BOrderQueryData; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.BOrderResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import com.google.gson.reflect.TypeToken; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* 商家寄件(优选寄件) |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-09-17 11:14 |
||||||
|
*/ |
||||||
|
public class BOrder extends BaseClient { |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.B_ORDER_URL; |
||||||
|
} |
||||||
|
|
||||||
|
public PrintBaseResp transportCapacity(PrintReq param) throws Exception{ |
||||||
|
HttpResult httpResult = execute(param); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),new TypeToken<PrintBaseResp<BOrderQueryData>>(){}.getType()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
public PrintBaseResp order(PrintReq param) throws Exception{ |
||||||
|
HttpResult httpResult = execute(param); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),new TypeToken<PrintBaseResp<BOrderResp>>(){}.getType()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
public PrintBaseResp getCode(PrintReq param) throws Exception{ |
||||||
|
HttpResult httpResult = execute(param); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),new TypeToken<PrintBaseResp<Map<String,String>>>(){}.getType()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
public PrintBaseResp cancel(PrintReq param) throws Exception{ |
||||||
|
HttpResult httpResult = execute(param); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),new TypeToken<PrintBaseResp>(){}.getType()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
|
||||||
|
/** |
||||||
|
* 商家寄件(官方快递) |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-01-21 15:55 |
||||||
|
*/ |
||||||
|
public class BOrderOfficial extends BaseClient { |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.B_ORDER_OFFICIAL_URL; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,52 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.CloudAttachmentReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.utils.HttpUtils; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import com.google.gson.reflect.TypeToken; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
import java.net.URLEncoder; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* 附件云打印 |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-20 9:26 |
||||||
|
*/ |
||||||
|
public class CloudPrintAttachment extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public HttpResult execute(BaseRequest request) throws Exception{ |
||||||
|
if (request instanceof CloudAttachmentReq){ |
||||||
|
CloudAttachmentReq cloudPrintAttachmentReq = (CloudAttachmentReq)request; |
||||||
|
String url = String.format(ApiInfoConstant.CLOUD_PRINT_URL, |
||||||
|
cloudPrintAttachmentReq.getMethod(), |
||||||
|
cloudPrintAttachmentReq.getT(), |
||||||
|
cloudPrintAttachmentReq.getKey(), |
||||||
|
cloudPrintAttachmentReq.getSign(), |
||||||
|
URLEncoder.encode(cloudPrintAttachmentReq.getParam(), "UTF-8")); |
||||||
|
return HttpUtils.doPostFile(url,cloudPrintAttachmentReq.getFile(),super.getConnectTimeout(),super.getSocketTimeout()); |
||||||
|
} |
||||||
|
throw new ClassCastException(); |
||||||
|
} |
||||||
|
|
||||||
|
public PrintBaseResp print(CloudAttachmentReq cloudPrintAttachmentReq) throws Exception{ |
||||||
|
HttpResult httpResult = this.execute(cloudPrintAttachmentReq); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),new TypeToken<PrintBaseResp<Map<String,String>>>(){}.getType()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,54 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.utils.HttpUtils; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
import java.net.URLEncoder; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义云打印 |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-20 9:22 |
||||||
|
*/ |
||||||
|
public class CloudPrintCustom extends BaseClient { |
||||||
|
private int connectTimeout = 3000; |
||||||
|
|
||||||
|
private int socketTimeout = 3000; |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public HttpResult execute(BaseRequest request) throws Exception{ |
||||||
|
if (request instanceof PrintReq){ |
||||||
|
PrintReq printReq = (PrintReq)request; |
||||||
|
String url = String.format(ApiInfoConstant.CLOUD_PRINT_URL, |
||||||
|
printReq.getMethod(), |
||||||
|
printReq.getT(), |
||||||
|
printReq.getKey(), |
||||||
|
printReq.getSign(), |
||||||
|
URLEncoder.encode(printReq.getParam(), "UTF-8")); |
||||||
|
return HttpUtils.doPost(url,printReq,super.getConnectTimeout(),super.getSocketTimeout()); |
||||||
|
} |
||||||
|
throw new ClassCastException(); |
||||||
|
} |
||||||
|
|
||||||
|
public PrintBaseResp print(PrintReq printReq) throws Exception { |
||||||
|
HttpResult httpResult = execute(printReq); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())) { |
||||||
|
return new Gson().fromJson(httpResult.getBody(), PrintBaseResp.class); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,52 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.utils.HttpUtils; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
import java.net.URLEncoder; |
||||||
|
|
||||||
|
/** |
||||||
|
* 复打 |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-20 9:26 |
||||||
|
*/ |
||||||
|
public class CloudPrintOld extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public HttpResult execute(BaseRequest request) throws Exception{ |
||||||
|
if (request instanceof PrintReq){ |
||||||
|
PrintReq printReq = (PrintReq)request; |
||||||
|
String url = String.format(ApiInfoConstant.CLOUD_PRINT_URL, |
||||||
|
printReq.getMethod(), |
||||||
|
printReq.getT(), |
||||||
|
printReq.getKey(), |
||||||
|
printReq.getSign(), |
||||||
|
URLEncoder.encode(printReq.getParam(), "UTF-8")); |
||||||
|
return HttpUtils.doPost(url,printReq,super.getConnectTimeout(),super.getSocketTimeout()); |
||||||
|
} |
||||||
|
throw new ClassCastException(); |
||||||
|
} |
||||||
|
|
||||||
|
public PrintBaseResp print(PrintReq request) throws Exception{ |
||||||
|
HttpResult httpResult = this.execute(request); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
|
||||||
|
return new Gson().fromJson(httpResult.getBody(),PrintBaseResp.class); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintCloudData; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import com.google.gson.reflect.TypeToken; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 15:46 |
||||||
|
*/ |
||||||
|
public class PrintCloud extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.ELECTRONIC_ORDER_PRINT_URL; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 电子面单打印 |
||||||
|
* |
||||||
|
* @param printReq |
||||||
|
* @author: api.kuaidi100.com |
||||||
|
* @time: 2020/7/17 17:15 |
||||||
|
*/ |
||||||
|
public PrintBaseResp<PrintCloudData> print(PrintReq printReq) throws Exception{ |
||||||
|
HttpResult httpResult = execute(printReq); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),new TypeToken<PrintBaseResp<PrintCloudData>>(){}.getType()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintHtmlResp; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 17:20 |
||||||
|
*/ |
||||||
|
public class PrintHtml extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.ELECTRONIC_ORDER_HTML_URL; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 电子面单打印 |
||||||
|
* |
||||||
|
* @param printReq |
||||||
|
* @return: java.lang.String |
||||||
|
* @author: api.kuaidi100.com |
||||||
|
* @time: 2020/7/17 17:15 |
||||||
|
*/ |
||||||
|
public PrintHtmlResp print(PrintReq printReq) throws Exception{ |
||||||
|
HttpResult httpResult = execute(printReq); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
|
||||||
|
return new Gson().fromJson(httpResult.getBody(),PrintHtmlResp.class); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,61 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintImgData; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import com.google.gson.reflect.TypeToken; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 15:46 |
||||||
|
*/ |
||||||
|
public class PrintImg extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.ELECTRONIC_ORDER_PIC_URL; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取电子面单图片(BASE64) |
||||||
|
* |
||||||
|
* @param printReq |
||||||
|
* @return: java.lang.String |
||||||
|
* @author: api.kuaidi100.com |
||||||
|
* @time: 2020/7/17 17:15 |
||||||
|
*/ |
||||||
|
public PrintBaseResp<PrintImgData> printImG(PrintReq printReq) throws Exception{ |
||||||
|
HttpResult httpResult = execute(printReq); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),new TypeToken<PrintBaseResp<PrintImgData>>(){}.getType()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 处理返回的base64字符串(返回的是一个字符串json数组,多个子单时会有多个) |
||||||
|
* |
||||||
|
* @param imgBase64 base64 json字符串数组 |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
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; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.QueryTrackReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.QueryTrackResp; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* 实时查询 |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-14 16:27 |
||||||
|
*/ |
||||||
|
public class QueryTrack extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.QUERY_URL; |
||||||
|
} |
||||||
|
|
||||||
|
public QueryTrackResp queryTrack(QueryTrackReq queryTrackReq) throws Exception{ |
||||||
|
HttpResult httpResult = execute(queryTrackReq); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),QueryTrackResp.class); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
|
||||||
|
/** |
||||||
|
* 快递信息地图轨迹 |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-14 16:27 |
||||||
|
*/ |
||||||
|
public class QueryTrackMap extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.QUERY_MAP_VIEW_URL; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
|
||||||
|
/** |
||||||
|
* 同城配送 |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-03-22 16:37 |
||||||
|
*/ |
||||||
|
public class SameCityOrder extends BaseClient { |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.SAME_CITY_ORDER_URL; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,59 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.SendSmsReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.SendSmsResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.SmsCallbackResp; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-20 19:00 |
||||||
|
*/ |
||||||
|
public class SendSms extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.SEND_SMS_URL; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 发送短信 |
||||||
|
* |
||||||
|
* @param sendSmsReq |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public SendSmsResp sendSms(SendSmsReq sendSmsReq) throws Exception{ |
||||||
|
HttpResult httpResult = execute(sendSmsReq); |
||||||
|
if (StringUtils.isNotBlank(httpResult.getBody()) && httpResult.getStatus() == HttpStatus.SC_OK){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),SendSmsResp.class); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 短信回调接口 例子 |
||||||
|
* @param |
||||||
|
* @return: java.util.Map<java.lang.String, java.lang.Boolean> |
||||||
|
* @author: api.kuaidi100.com |
||||||
|
* @time: 2020/7/21 10:11 |
||||||
|
*/ |
||||||
|
public Map<String,Boolean> callback(SmsCallbackResp smsCallbackResp){ |
||||||
|
//建议记录一下这个回调的内容,方便出问题后双方排查问题
|
||||||
|
//log.debug("快递100短信回调结果|{}",new Gson().toJson(smsCallbackResp));
|
||||||
|
Map<String,Boolean> result = new HashMap<String, Boolean>(); |
||||||
|
if (smsCallbackResp == null){ |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
result.put("status",Boolean.TRUE); |
||||||
|
return result; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,79 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.SubscribeReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.SubscribePushParamResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.SubscribeResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.utils.SignUtils; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
|
||||||
|
/** |
||||||
|
* 订阅 |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-16 14:38 |
||||||
|
*/ |
||||||
|
public class Subscribe extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.SUBSCRIBE_URL; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 订阅接口 |
||||||
|
* |
||||||
|
* @param subscribeReq |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public SubscribeResp subscribe(SubscribeReq subscribeReq) throws Exception{ |
||||||
|
HttpResult httpResult = execute(subscribeReq); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(), SubscribeResp.class); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 订阅推送处理(参照) |
||||||
|
* 订阅成功后,如果该快递单号有轨迹(包括已经签收的单),快递100将会在15分钟-4个小时推送;后面将会4个小时跟踪一次,跟踪到有轨迹变化则推送; |
||||||
|
* 如果订阅成功后,3天查无结果(录错单/快递公司错了/揽收比较晚),快递100将会推送3天查无结果,可以继续重新订阅。 |
||||||
|
* |
||||||
|
* 回调接口支持自定义参数,比如订阅时回调地址填写的是 http://www.xxx.com?orderId=1233333
|
||||||
|
* 可以通过下面这种方式获取到orderId: String orderId = request.getParameter("orderId"); |
||||||
|
* |
||||||
|
* 返回值必须是下面这样的格式,否则快递100将认为该推送失败,快递100将会重试3次该推送,时间间隔35分钟; |
||||||
|
* 成功结果返回例子: {"result":true,"returnCode":"200","message":"提交成功"} |
||||||
|
* |
||||||
|
* @param request |
||||||
|
* @return: com.zsw.tools.utils.kuaidi100.sdk.response.SubscribeResp |
||||||
|
* @author: api.kuaidi100.com |
||||||
|
* @time: 2020/7/16 19:48 |
||||||
|
*/ |
||||||
|
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 业务处理
|
||||||
|
SubscribePushParamResp subscribePushParamResp = new Gson().fromJson(param, SubscribePushParamResp.class); |
||||||
|
return subscribeResp; |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,79 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.SubscribeReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.SubscribeResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.SubscribeWithMapPushParamResp; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.utils.SignUtils; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
|
||||||
|
/** |
||||||
|
* 订阅(地图) |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-16 14:38 |
||||||
|
*/ |
||||||
|
public class SubscribeWithMap extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.SUBSCRIBE_WITH_MAP_URL; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 订阅接口 |
||||||
|
* |
||||||
|
* @param subscribeReq |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public SubscribeResp subscribe(SubscribeReq subscribeReq) throws Exception{ |
||||||
|
HttpResult httpResult = execute(subscribeReq); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(), SubscribeResp.class); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 订阅推送处理(参照) |
||||||
|
* 订阅成功后,如果该快递单号有轨迹(包括已经签收的单),快递100将会在15分钟-4个小时推送;后面将会4个小时跟踪一次,跟踪到有轨迹变化则推送; |
||||||
|
* 如果订阅成功后,3天查无结果(录错单/快递公司错了/揽收比较晚),快递100将会推送3天查无结果,可以继续重新订阅。 |
||||||
|
* |
||||||
|
* 回调接口支持自定义参数,比如订阅时回调地址填写的是 http://www.xxx.com?orderId=1233333
|
||||||
|
* 可以通过下面这种方式获取到orderId: String orderId = request.getParameter("orderId"); |
||||||
|
* |
||||||
|
* 返回值必须是下面这样的格式,否则快递100将认为该推送失败,快递100将会重试3次该推送,时间间隔35分钟; |
||||||
|
* 成功结果返回例子: {"result":true,"returnCode":"200","message":"提交成功"} |
||||||
|
* |
||||||
|
* @param request |
||||||
|
* @return: com.zsw.tools.utils.kuaidi100.sdk.response.SubscribeResp |
||||||
|
* @author: api.kuaidi100.com |
||||||
|
* @time: 2020/7/16 19:48 |
||||||
|
*/ |
||||||
|
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 业务处理
|
||||||
|
SubscribeWithMapPushParamResp mapPushParamResp = new Gson().fromJson(param, SubscribeWithMapPushParamResp.class); |
||||||
|
return subscribeResp; |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.api; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
|
||||||
|
/** |
||||||
|
* 第三方平台账号授权 |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-01-06 14:12 |
||||||
|
*/ |
||||||
|
public class ThirdAuth extends BaseClient { |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.THIRD_AUTH_URL; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.cloud; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.cloud.CloudBaseReq; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.cloud.CloudBaseResp; |
||||||
|
import com.google.gson.Gson; |
||||||
|
import com.google.gson.reflect.TypeToken; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.apache.http.HttpStatus; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-11-20 10:36 |
||||||
|
*/ |
||||||
|
public class CloudBase<T> extends BaseClient { |
||||||
|
|
||||||
|
public String getApiUrl(BaseRequest request) { |
||||||
|
return ApiInfoConstant.CLOUD_NORMAL_URL; |
||||||
|
} |
||||||
|
|
||||||
|
public CloudBaseResp<T> executeToObject(CloudBaseReq param) throws Exception{ |
||||||
|
HttpResult httpResult = execute(param); |
||||||
|
if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ |
||||||
|
return new Gson().fromJson(httpResult.getBody(),new TypeToken<CloudBaseResp<T>>(){}.getType()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,144 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.contant; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-15 17:43 |
||||||
|
*/ |
||||||
|
public class ApiInfoConstant { |
||||||
|
/** |
||||||
|
* 查询url |
||||||
|
*/ |
||||||
|
public static final String QUERY_URL = "https://poll.kuaidi100.com/poll/query.do"; |
||||||
|
/** |
||||||
|
* 快递查询地图轨迹url |
||||||
|
*/ |
||||||
|
public static final String QUERY_MAP_VIEW_URL = "https://poll.kuaidi100.com/poll/maptrack.do"; |
||||||
|
/** |
||||||
|
* 订阅url |
||||||
|
*/ |
||||||
|
public static final String SUBSCRIBE_URL = "https://poll.kuaidi100.com/poll"; |
||||||
|
/** |
||||||
|
* 订阅带地图url |
||||||
|
*/ |
||||||
|
public static final String SUBSCRIBE_WITH_MAP_URL = "http://poll.kuaidi100.com/pollmap"; |
||||||
|
/** |
||||||
|
* 订阅SCHEMA |
||||||
|
*/ |
||||||
|
public static final String SUBSCRIBE_SCHEMA = "json"; |
||||||
|
/** |
||||||
|
* 智能单号识别url |
||||||
|
*/ |
||||||
|
public static final String AUTO_NUM_URL = "http://www.kuaidi100.com/autonumber/auto?num=%s&key=%s"; |
||||||
|
/** |
||||||
|
* 电子面单html url |
||||||
|
*/ |
||||||
|
public static final String ELECTRONIC_ORDER_HTML_URL = "http://poll.kuaidi100.com/eorderapi.do"; |
||||||
|
/** |
||||||
|
* 电子面单html方法 |
||||||
|
*/ |
||||||
|
public static final String ELECTRONIC_ORDER_HTML_METHOD = "getElecOrder"; |
||||||
|
/** |
||||||
|
* 电子面单获取图片 url |
||||||
|
*/ |
||||||
|
public static final String ELECTRONIC_ORDER_PIC_URL = "https://poll.kuaidi100.com/printapi/printtask.do"; |
||||||
|
/** |
||||||
|
* 电子面单获取图片 |
||||||
|
*/ |
||||||
|
public static final String ELECTRONIC_ORDER_PIC_METHOD = "getPrintImg"; |
||||||
|
/** |
||||||
|
* 电子面单打印 url |
||||||
|
*/ |
||||||
|
public static final String ELECTRONIC_ORDER_PRINT_URL = "https://poll.kuaidi100.com/printapi/printtask.do"; |
||||||
|
/** |
||||||
|
* 电子面单打印方法 |
||||||
|
*/ |
||||||
|
public static final String ELECTRONIC_ORDER_PRINT_METHOD = "eOrder"; |
||||||
|
/** |
||||||
|
* 菜鸟淘宝账号授权 |
||||||
|
*/ |
||||||
|
public static final String AUTH_THIRD_URL = "https://poll.kuaidi100.com/printapi/authThird.do"; |
||||||
|
/** |
||||||
|
* 云打印url |
||||||
|
*/ |
||||||
|
public static final String CLOUD_PRINT_URL = "http://poll.kuaidi100.com/printapi/printtask.do?method=%s&t=%s&key=%s&sign=%s¶m=%s"; |
||||||
|
/** |
||||||
|
* 自定义打印方法 |
||||||
|
*/ |
||||||
|
public static final String CLOUD_PRINT_CUSTOM_METHOD = "printOrder"; |
||||||
|
/** |
||||||
|
* 附件打印方法 |
||||||
|
*/ |
||||||
|
public static final String CLOUD_PRINT_ATTACHMENT_METHOD = "imgOrder"; |
||||||
|
/** |
||||||
|
* 复打方法 |
||||||
|
*/ |
||||||
|
public static final String CLOUD_PRINT_OLD_METHOD = "printOld"; |
||||||
|
/** |
||||||
|
* 复打方法 |
||||||
|
*/ |
||||||
|
public static final String SEND_SMS_URL = "http://apisms.kuaidi100.com:9502/sms/send.do"; |
||||||
|
/** |
||||||
|
* 商家寄件 |
||||||
|
*/ |
||||||
|
public static final String B_ORDER_URL = "https://order.kuaidi100.com/order/borderbestapi.do"; |
||||||
|
/** |
||||||
|
* 商家寄件查询运力 |
||||||
|
*/ |
||||||
|
public static final String B_ORDER_QUERY_TRANSPORT_CAPACITY_METHOD = "querymkt"; |
||||||
|
/** |
||||||
|
* 商家寄件下单 |
||||||
|
*/ |
||||||
|
public static final String B_ORDER_SEND_METHOD = "bOrderBest"; |
||||||
|
/** |
||||||
|
* 商家寄件获取验证码 |
||||||
|
*/ |
||||||
|
public static final String B_ORDER_CODE_METHOD = "getCode"; |
||||||
|
/** |
||||||
|
* 商家寄件取消 |
||||||
|
*/ |
||||||
|
public static final String B_ORDER_CANCEL_METHOD = "cancelBest"; |
||||||
|
/** |
||||||
|
* 云平台通用请求url |
||||||
|
*/ |
||||||
|
public static final String CLOUD_NORMAL_URL = "http://cloud.kuaidi100.com/api"; |
||||||
|
/** |
||||||
|
* 第三方电商平台账号授权请求url |
||||||
|
*/ |
||||||
|
public static final String THIRD_AUTH_URL = "https://poll.kuaidi100.com/printapi/authThird.do"; |
||||||
|
/** |
||||||
|
* 商家寄件(官方寄件)请求url |
||||||
|
*/ |
||||||
|
public static final String B_ORDER_OFFICIAL_URL = "https://poll.kuaidi100.com/order/borderapi.do"; |
||||||
|
/** |
||||||
|
* 商家寄件(官方寄件)下单 |
||||||
|
*/ |
||||||
|
public static final String B_ORDER_OFFICIAL_ORDER_METHOD = "bOrder"; |
||||||
|
/** |
||||||
|
* 商家寄件(官方寄件)取消 |
||||||
|
*/ |
||||||
|
public static final String B_ORDER_OFFICIAL_CANCEL_METHOD = "cancel"; |
||||||
|
/** |
||||||
|
* 商家寄件(官方寄件)查询价格 |
||||||
|
*/ |
||||||
|
public static final String B_ORDER_OFFICIAL_PRICE_METHOD = "queryPrice"; |
||||||
|
/** |
||||||
|
* 同城配送请求url |
||||||
|
*/ |
||||||
|
public static final String SAME_CITY_ORDER_URL = "https://order.kuaidi100.com/sameCity/order"; |
||||||
|
/** |
||||||
|
* 同城配送授权方法 |
||||||
|
*/ |
||||||
|
public static final String SAME_CITY_AUTH_METHOD = "auth"; |
||||||
|
/** |
||||||
|
* 同城配送下单方法 |
||||||
|
*/ |
||||||
|
public static final String SAME_CITY_ORDER_METHOD = "order"; |
||||||
|
/** |
||||||
|
* 同城配送查询订单方法 |
||||||
|
*/ |
||||||
|
public static final String SAME_CITY_QUERY_METHOD = "query"; |
||||||
|
/** |
||||||
|
* 同城配送取消订单方法 |
||||||
|
*/ |
||||||
|
public static final String SAME_CITY_CANCEL_METHOD = "cancel"; |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.contant; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-11-27 9:27 |
||||||
|
*/ |
||||||
|
public class CloudApiCodeConstant { |
||||||
|
/** |
||||||
|
* 快递寄件查询运力 |
||||||
|
*/ |
||||||
|
public final static String ORDER_QUERY_EXPRESS = "7c5c49c5e51a4b75bd960f4997d2846a"; |
||||||
|
/** |
||||||
|
* 快递寄件 |
||||||
|
*/ |
||||||
|
public final static String ORDER = "ddffadd3df4b4c0d8d6f9942c7a8c990"; |
||||||
|
/** |
||||||
|
* 快递寄件取消寄件 |
||||||
|
*/ |
||||||
|
public final static String ORDER_CANCEL = "bcb0428c1dd84aca9d6e19ea4dcf683d"; |
||||||
|
/** |
||||||
|
* 快递时效查询V1版 |
||||||
|
*/ |
||||||
|
public final static String AGING_V1 = "8ffb952184224877a561b300dc57b935"; |
||||||
|
/** |
||||||
|
* 快递时效查询V2版 |
||||||
|
*/ |
||||||
|
public final static String AGING_V2 = "4cdfccdf64ea4088a94eb2ea1ef40c97"; |
||||||
|
/** |
||||||
|
* 快递时效详情查询V1版 |
||||||
|
*/ |
||||||
|
public final static String AGING_DETAILS_V1 = "60d6fa8809134c40879e5f0a7228183e"; |
||||||
|
/** |
||||||
|
* 快递时效详情查询V2版 |
||||||
|
*/ |
||||||
|
public final static String AGING_DETAILS_V2 = "81bb0620fbaf460db4e6dab84a05ec00"; |
||||||
|
/** |
||||||
|
* 实时快递查询 |
||||||
|
*/ |
||||||
|
public final static String SYNC_QUERY = "c3e50f627ff6452ba44688ba8883f2dc"; |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.contant; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-15 17:24 |
||||||
|
*/ |
||||||
|
public class CompanyConstant { |
||||||
|
|
||||||
|
public static final String SF = "shunfeng"; |
||||||
|
public static final String ZT = "zhongtong"; |
||||||
|
public static final String YT = "yuantong"; |
||||||
|
public static final String HT = "huitongkuaidi"; |
||||||
|
public static final String ST = "shentong"; |
||||||
|
public static final String YD = "yunda"; |
||||||
|
public static final String EMS = "ems"; |
||||||
|
public static final String JD = "jd"; |
||||||
|
public static final String ZJS = "zhaijisong"; |
||||||
|
public static final String DB = "debangkuaidi"; |
||||||
|
|
||||||
|
|
||||||
|
public static final String SS = "shansong"; |
||||||
|
public static final String KFW = "kfw"; |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.core; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.BaseResponse; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.utils.HttpUtils; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-11-25 16:02 |
||||||
|
*/ |
||||||
|
public abstract class BaseClient implements IBaseClient{ |
||||||
|
|
||||||
|
private int connectTimeout = 3000; |
||||||
|
|
||||||
|
private int socketTimeout = 3000; |
||||||
|
|
||||||
|
public HttpResult execute(BaseRequest request) throws Exception{ |
||||||
|
|
||||||
|
return HttpUtils.doPost(getApiUrl(request),request,connectTimeout,socketTimeout); |
||||||
|
} |
||||||
|
|
||||||
|
public BaseResponse executeToObject(BaseRequest request) throws Exception{ |
||||||
|
|
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTimeOut(int connectTimeout, int socketTimeout) { |
||||||
|
this.connectTimeout = connectTimeout; |
||||||
|
this.socketTimeout = socketTimeout; |
||||||
|
} |
||||||
|
|
||||||
|
public abstract String getApiUrl(BaseRequest request); |
||||||
|
|
||||||
|
public int getConnectTimeout() { |
||||||
|
return connectTimeout; |
||||||
|
} |
||||||
|
|
||||||
|
public int getSocketTimeout() { |
||||||
|
return socketTimeout; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.core; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.response.BaseResponse; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-11-25 16:09 |
||||||
|
*/ |
||||||
|
public interface IBaseClient { |
||||||
|
|
||||||
|
HttpResult execute(BaseRequest request) throws Exception; |
||||||
|
|
||||||
|
BaseResponse executeToObject(BaseRequest request) throws Exception; |
||||||
|
|
||||||
|
void setTimeOut(int connectTimeout,int socketTimeout); |
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.pojo; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
|
||||||
|
@Data |
||||||
|
public class HttpResult { |
||||||
|
private int status; |
||||||
|
private String body; |
||||||
|
private String error; |
||||||
|
|
||||||
|
public HttpResult() { |
||||||
|
} |
||||||
|
|
||||||
|
public HttpResult(int status, String body, String error) { |
||||||
|
this.status = status; |
||||||
|
this.body = body; |
||||||
|
this.error = error; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,15 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-12-04 11:11 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class AutoNumReq extends BaseRequest { |
||||||
|
|
||||||
|
private String key; |
||||||
|
|
||||||
|
private String num; |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-09-17 14:37 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BOrderCancelReq { |
||||||
|
/** |
||||||
|
* 任务ID |
||||||
|
*/ |
||||||
|
private String taskId; |
||||||
|
/** |
||||||
|
* 订单ID |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
/** |
||||||
|
* 取消原因,例:暂时不寄件了 |
||||||
|
*/ |
||||||
|
private String cancelMsg; |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-09-17 14:37 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BOrderGetCodeReq { |
||||||
|
/** |
||||||
|
* 任务ID |
||||||
|
*/ |
||||||
|
private String taskId; |
||||||
|
/** |
||||||
|
* 订单ID |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* 商家寄件(官方快递) |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-03-22 15:29 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BOrderOfficialQueryPriceReq { |
||||||
|
/** |
||||||
|
* 快递公司编码 |
||||||
|
*/ |
||||||
|
private String kuaidiCom; |
||||||
|
/** |
||||||
|
* 出发地地址,最小颗粒到市级,例如:广东省深圳市 |
||||||
|
*/ |
||||||
|
private String address; |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-09-17 11:17 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BOrderQueryReq { |
||||||
|
|
||||||
|
private String sendAddr; |
||||||
|
} |
@ -0,0 +1,64 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-09-17 14:33 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BOrderReq { |
||||||
|
|
||||||
|
/** |
||||||
|
* 快递公司的编码,一律用小写字母,见《快递公司编码》 |
||||||
|
*/ |
||||||
|
private String kuaidicom; |
||||||
|
/** |
||||||
|
* 收件人姓名 |
||||||
|
*/ |
||||||
|
private String recManName; |
||||||
|
/** |
||||||
|
* 收件人的手机号,手机号和电话号二者其一必填 |
||||||
|
*/ |
||||||
|
private String recManMobile; |
||||||
|
/** |
||||||
|
* 收件人所在完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园 |
||||||
|
*/ |
||||||
|
private String recManPrintAddr; |
||||||
|
/** |
||||||
|
* 寄件人姓名 |
||||||
|
*/ |
||||||
|
private String sendManName; |
||||||
|
/** |
||||||
|
* 寄件人的手机号,手机号和电话号二者其一必填 |
||||||
|
*/ |
||||||
|
private String sendManMobile; |
||||||
|
/** |
||||||
|
* 寄件人所在的完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园B10 |
||||||
|
*/ |
||||||
|
private String sendManPrintAddr; |
||||||
|
/** |
||||||
|
* 物品名称,例:文件 |
||||||
|
*/ |
||||||
|
private String cargo; |
||||||
|
/** |
||||||
|
* 物品总重量KG,例:1.5,单位kg |
||||||
|
*/ |
||||||
|
private String weight; |
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
private String remark; |
||||||
|
/** |
||||||
|
* 签名用随机字符串 |
||||||
|
*/ |
||||||
|
private String salt; |
||||||
|
/** |
||||||
|
* callBackUrl订单信息回调 |
||||||
|
*/ |
||||||
|
private String callBackUrl; |
||||||
|
/** |
||||||
|
* 快递业务服务类型,例:标准快递,默认为标准快递 |
||||||
|
*/ |
||||||
|
private String serviceType; |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-11-25 16:12 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BaseRequest { |
||||||
|
|
||||||
|
private String url; |
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-20 9:36 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class CloudAttachmentReq extends PrintReq { |
||||||
|
private File file; |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-20 9:37 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class CloudPrintAttachmentParam { |
||||||
|
/** |
||||||
|
* 贵司内部自定义的订单编号,需要保证唯一性,非必填 |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
/** |
||||||
|
* 打印纸的高度,以mm为单位 |
||||||
|
*/ |
||||||
|
private String height; |
||||||
|
/** |
||||||
|
* 打印纸的宽度,以mm为单位 |
||||||
|
*/ |
||||||
|
private String width; |
||||||
|
/** |
||||||
|
* 需要打印的份数,默认是一份 |
||||||
|
*/ |
||||||
|
private String copyNum; |
||||||
|
/** |
||||||
|
* 打印范围,起始页,仅对多页文件支持,默认是打印整个文档 |
||||||
|
*/ |
||||||
|
private String startPage; |
||||||
|
/** |
||||||
|
* 打印范围,结束页,仅对多页文件支持,默认是打印整个文档 |
||||||
|
*/ |
||||||
|
private String endPage; |
||||||
|
/** |
||||||
|
* 签名用随机字符串 |
||||||
|
*/ |
||||||
|
private String salt; |
||||||
|
/** |
||||||
|
* 打印设备,通过打印机输出的设备码进行获取 |
||||||
|
*/ |
||||||
|
private String siid; |
||||||
|
/** |
||||||
|
* 打印状态回调地址 |
||||||
|
*/ |
||||||
|
private String callBackUrl; |
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-20 9:38 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class CloudPrintCustomParam { |
||||||
|
/** |
||||||
|
* 贵司内部自定义的订单编号,需要保证唯一性,非必填 |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
/** |
||||||
|
* 通过管理后台的打印摸版配置信息获取 |
||||||
|
*/ |
||||||
|
private String tempid; |
||||||
|
/** |
||||||
|
* 打印设备,通过打印机输出的设备码进行获取 |
||||||
|
*/ |
||||||
|
private String siid; |
||||||
|
/** |
||||||
|
* 打印纸的高度 |
||||||
|
*/ |
||||||
|
private String height; |
||||||
|
/** |
||||||
|
* 打印纸的宽度 |
||||||
|
*/ |
||||||
|
private String width; |
||||||
|
/** |
||||||
|
* 打印状态回调地址 |
||||||
|
*/ |
||||||
|
private String callBackUrl; |
||||||
|
/** |
||||||
|
* 签名用随机字符串 |
||||||
|
*/ |
||||||
|
private String salt; |
||||||
|
} |
@ -0,0 +1,8 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-20 9:37 |
||||||
|
*/ |
||||||
|
public class CloudPrintCustomReq { |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-20 10:43 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class CloudPrintOldParam { |
||||||
|
|
||||||
|
private String taskId; |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 16:30 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class ManInfo { |
||||||
|
/** |
||||||
|
* 收件人姓名 (必填) |
||||||
|
*/ |
||||||
|
private String name; |
||||||
|
/** |
||||||
|
* 收件人的手机号,手机号和电话号二者其一必填 (必填) |
||||||
|
*/ |
||||||
|
private String mobile; |
||||||
|
/** |
||||||
|
* 收件人所在完整地址 (必填) |
||||||
|
*/ |
||||||
|
private String printAddr; |
||||||
|
/** |
||||||
|
* 收件人所在公司名称(可选) |
||||||
|
*/ |
||||||
|
private String company; |
||||||
|
} |
@ -0,0 +1,181 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 17:05 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintCloudParam { |
||||||
|
|
||||||
|
/** |
||||||
|
* 业务类型,默认为10 |
||||||
|
*/ |
||||||
|
private String type; |
||||||
|
/** |
||||||
|
* 电子面单客户账户或月结账号,需贵司向当地快递公司网点申请 |
||||||
|
*/ |
||||||
|
private String partnerId; |
||||||
|
/** |
||||||
|
* 电子面单密码,需贵司向当地快递公司网点申请 |
||||||
|
*/ |
||||||
|
private String partnerKey; |
||||||
|
/** |
||||||
|
* 收件网点名称,由快递公司当地网点分配, |
||||||
|
* 若使用淘宝授权填入(taobao),使用菜鸟授权填入(cainiao) |
||||||
|
*/ |
||||||
|
private String net; |
||||||
|
/** |
||||||
|
* 快递公司的编码,一律用小写字母 |
||||||
|
*/ |
||||||
|
private String kuaidicom; |
||||||
|
/** |
||||||
|
* 收件人信息 |
||||||
|
*/ |
||||||
|
private ManInfo recMan; |
||||||
|
/** |
||||||
|
* 收件人信息 |
||||||
|
*/ |
||||||
|
private ManInfo sendMan; |
||||||
|
/** |
||||||
|
* 物品名称(部分快递公司必填) |
||||||
|
*/ |
||||||
|
private String cargo; |
||||||
|
/** |
||||||
|
* 物品总数量。 |
||||||
|
* 另外该属性与子单有关,如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号), |
||||||
|
* needChild = 1、count 需要大于1,如count = 2 则一个主单 一个子单, |
||||||
|
* count = 3则一个主单 二个子单;返回的子单号码见返回结果的childNum字段 |
||||||
|
*/ |
||||||
|
private String count; |
||||||
|
/** |
||||||
|
* 物品总重量,单位:KG (例子:0.5) |
||||||
|
*/ |
||||||
|
private String weight; |
||||||
|
/** |
||||||
|
* 支付方式: |
||||||
|
* SHIPPER:寄方付(默认) |
||||||
|
* CONSIGNEE:到付 |
||||||
|
* MONTHLY:月结 |
||||||
|
* THIRDPARTY:第三方支付 |
||||||
|
*/ |
||||||
|
private String payType; |
||||||
|
/** |
||||||
|
* 快递类型: |
||||||
|
* 标准快递(默认) |
||||||
|
* 顺丰特惠 |
||||||
|
* EMS经济 |
||||||
|
*/ |
||||||
|
private String expType; |
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
private String remark; |
||||||
|
/** |
||||||
|
* 电子面单模板编码 |
||||||
|
*/ |
||||||
|
private String tempid; |
||||||
|
/** |
||||||
|
* 打印设备编码。通过打印机输出的设备码进行获取 |
||||||
|
*/ |
||||||
|
private String siid; |
||||||
|
/** |
||||||
|
* 保价额度 |
||||||
|
*/ |
||||||
|
private String valinsPay; |
||||||
|
/** |
||||||
|
* 代收货款额度 |
||||||
|
*/ |
||||||
|
private String collection; |
||||||
|
/** |
||||||
|
* 是否需要子单(支持子单的快递公司才可以用,是否支持可以参考参数字典) |
||||||
|
* 1:需要 |
||||||
|
* 0:不需要(默认) |
||||||
|
* 如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号); |
||||||
|
* needChild = 1、count 需要大于1,如count = 2 一个主单 一个子单, |
||||||
|
* count = 3 一个主单 二个子单,返回的子单号码见返回结果的childNum字段 |
||||||
|
*/ |
||||||
|
private String needChild; |
||||||
|
/** |
||||||
|
* 是否需要回单(支持回单的快递公司才可以用,是否支持可以参考参数字典) |
||||||
|
* 1:需要 |
||||||
|
* 0:不需要(默认) |
||||||
|
* 返回的回单号见返回结果的returnNum字段 |
||||||
|
*/ |
||||||
|
private String needBack; |
||||||
|
/** |
||||||
|
* 贵司内部自定义的订单编号,需要保证唯一性 |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
/** |
||||||
|
* 生成图片的高,以mm为单位(默认100) |
||||||
|
*/ |
||||||
|
private String height; |
||||||
|
/** |
||||||
|
* 生成图片的宽,以mm为单位(默认180) |
||||||
|
*/ |
||||||
|
private String width; |
||||||
|
/** |
||||||
|
* 打印状态回调地址 |
||||||
|
*/ |
||||||
|
private String callBackUrl; |
||||||
|
/** |
||||||
|
* 签名用随机字符串 |
||||||
|
*/ |
||||||
|
private String salt; |
||||||
|
/** |
||||||
|
* 是否开启订阅功能: |
||||||
|
* 0:不开启(默认) |
||||||
|
* 1:开启 |
||||||
|
* 说明开启订阅功能时:pollCallBackUrl必须填入 |
||||||
|
* 此功能只针对有快递单号的单 |
||||||
|
*/ |
||||||
|
private String op; |
||||||
|
/** |
||||||
|
* 如果op设置为1时,pollCallBackUrl必须填入,用于跟踪回调 |
||||||
|
*/ |
||||||
|
private String pollCallBackUrl; |
||||||
|
/** |
||||||
|
* 添加此字段表示开通行政区域解析功能:0:关闭(默认);1:开通行政区域解析功能 |
||||||
|
*/ |
||||||
|
private String resultv2; |
||||||
|
/** |
||||||
|
* 扩展字段,不同快递公司具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String code; |
||||||
|
/** |
||||||
|
* 扩展字段,具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String partnerSecret; |
||||||
|
/** |
||||||
|
* 扩展字段,具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String partnerName; |
||||||
|
/** |
||||||
|
* 扩展字段,具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String checkMan; |
||||||
|
|
||||||
|
/** |
||||||
|
* 打印方向(默认0) 0-正方向 1-反方向 |
||||||
|
*/ |
||||||
|
private String direction; |
||||||
|
|
||||||
|
/** |
||||||
|
* 打印时间 |
||||||
|
*/ |
||||||
|
private String printTime; |
||||||
|
/** |
||||||
|
* 额外服务(类似部分物流公司的需定义派送方式,包装等) |
||||||
|
*/ |
||||||
|
private String addService; |
||||||
|
/* |
||||||
|
* 到付金额(单位:元) |
||||||
|
*/ |
||||||
|
private String freight; |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 16:21 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintCloudReq extends PrintReq{ |
||||||
|
|
||||||
|
/** |
||||||
|
* 业务类型(默认:getPrintImg) |
||||||
|
*/ |
||||||
|
private String method; |
||||||
|
/** |
||||||
|
* 快递100分配给贵司的的授权key |
||||||
|
*/ |
||||||
|
private String key; |
||||||
|
/** |
||||||
|
* 加密签名信息:MD5(param+t+key+secret);加密后字符串转大写 |
||||||
|
*/ |
||||||
|
private String sign; |
||||||
|
/** |
||||||
|
* 当前请求时间戳 |
||||||
|
*/ |
||||||
|
private String t; |
||||||
|
/** |
||||||
|
* 其他参数组合成的json对象 |
||||||
|
*/ |
||||||
|
private String param; |
||||||
|
} |
@ -0,0 +1,145 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 16:55 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintHtmlParam { |
||||||
|
/** |
||||||
|
* 电子面单客户账户或月结账号,需贵司向当地快递公司网点申请 |
||||||
|
*/ |
||||||
|
private String partnerId; |
||||||
|
/** |
||||||
|
* 电子面单密码,需贵司向当地快递公司网点申请 |
||||||
|
*/ |
||||||
|
private String partnerKey; |
||||||
|
/** |
||||||
|
* 收件网点名称,由快递公司当地网点分配, |
||||||
|
* 若使用淘宝授权填入(taobao),使用菜鸟授权填入(cainiao) |
||||||
|
*/ |
||||||
|
private String net; |
||||||
|
/** |
||||||
|
* 快递公司的编码,一律用小写字母 |
||||||
|
*/ |
||||||
|
private String kuaidicom; |
||||||
|
/** |
||||||
|
* 收件人信息 |
||||||
|
*/ |
||||||
|
private ManInfo recMan; |
||||||
|
/** |
||||||
|
* 收件人信息 |
||||||
|
*/ |
||||||
|
private ManInfo sendMan; |
||||||
|
/** |
||||||
|
* 物品名称(部分快递公司必填) |
||||||
|
*/ |
||||||
|
private String cargo; |
||||||
|
/** |
||||||
|
* 物品总数量。 |
||||||
|
* 另外该属性与子单有关,如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号), |
||||||
|
* needChild = 1、count 需要大于1,如count = 2 则一个主单 一个子单, |
||||||
|
* count = 3则一个主单 二个子单;返回的子单号码见返回结果的childNum字段 |
||||||
|
*/ |
||||||
|
private int count; |
||||||
|
/** |
||||||
|
* 物品总重量,单位:KG (例子:0.5) |
||||||
|
*/ |
||||||
|
private String weight; |
||||||
|
/** |
||||||
|
* 支付方式: |
||||||
|
* SHIPPER:寄方付(默认) |
||||||
|
* CONSIGNEE:到付 |
||||||
|
* MONTHLY:月结 |
||||||
|
* THIRDPARTY:第三方支付 |
||||||
|
*/ |
||||||
|
private String payType; |
||||||
|
/** |
||||||
|
* 快递类型: |
||||||
|
* 标准快递(默认) |
||||||
|
* 顺丰特惠 |
||||||
|
* EMS经济 |
||||||
|
*/ |
||||||
|
private String expType; |
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
private String remark; |
||||||
|
/** |
||||||
|
* 保价额度 |
||||||
|
*/ |
||||||
|
private String valinsPay; |
||||||
|
/** |
||||||
|
* 代收货款额度 |
||||||
|
*/ |
||||||
|
private String collection; |
||||||
|
/** |
||||||
|
* 是否需要子单(支持子单的快递公司才可以用,是否支持可以参考参数字典) |
||||||
|
* 1:需要 |
||||||
|
* 0:不需要(默认) |
||||||
|
* 如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号); |
||||||
|
* needChild = 1、count 需要大于1,如count = 2 一个主单 一个子单, |
||||||
|
* count = 3 一个主单 二个子单,返回的子单号码见返回结果的childNum字段 |
||||||
|
*/ |
||||||
|
private int needChild; |
||||||
|
/** |
||||||
|
* 是否需要回单(支持回单的快递公司才可以用,是否支持可以参考参数字典) |
||||||
|
* 1:需要 |
||||||
|
* 0:不需要(默认) |
||||||
|
* 返回的回单号见返回结果的returnNum字段 |
||||||
|
*/ |
||||||
|
private String needBack; |
||||||
|
/** |
||||||
|
* 贵司内部自定义的订单编号,需要保证唯一性 |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
/** |
||||||
|
* 是否返回面单 |
||||||
|
* 0:不需要(默认) |
||||||
|
* 1:需要 |
||||||
|
* 如果需要,则返回要打印的模版的HTML代码,贵司可以直接将之显示到IE等浏览器,然后通过浏览器进行打印 |
||||||
|
*/ |
||||||
|
private String needTemplate; |
||||||
|
/** |
||||||
|
* 签名用随机字符串 |
||||||
|
*/ |
||||||
|
private String salt; |
||||||
|
/** |
||||||
|
* 是否开启订阅功能: |
||||||
|
* 0:不开启(默认) |
||||||
|
* 1:开启 |
||||||
|
* 说明开启订阅功能时:pollCallBackUrl必须填入 |
||||||
|
* 此功能只针对有快递单号的单 |
||||||
|
*/ |
||||||
|
private String op; |
||||||
|
/** |
||||||
|
* 如果op设置为1时,pollCallBackUrl必须填入,用于跟踪回调 |
||||||
|
*/ |
||||||
|
private String pollCallBackUrl; |
||||||
|
/** |
||||||
|
* 添加此字段表示开通行政区域解析功能:0:关闭(默认);1:开通行政区域解析功能 |
||||||
|
*/ |
||||||
|
private String resultv2; |
||||||
|
/** |
||||||
|
* 扩展字段,不同快递公司具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String code; |
||||||
|
/** |
||||||
|
* 扩展字段,具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String partnerSecret; |
||||||
|
/** |
||||||
|
* 扩展字段,具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String partnerName; |
||||||
|
/** |
||||||
|
* 扩展字段,具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String checkMan; |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 16:14 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintHtmlReq { |
||||||
|
|
||||||
|
/** |
||||||
|
* 业务类型(默认:getPrintImg) |
||||||
|
*/ |
||||||
|
private String method; |
||||||
|
/** |
||||||
|
* 快递100分配给贵司的的授权key |
||||||
|
*/ |
||||||
|
private String key; |
||||||
|
/** |
||||||
|
* 加密签名信息:MD5(param+t+key+secret);加密后字符串转大写 |
||||||
|
*/ |
||||||
|
private String sign; |
||||||
|
/** |
||||||
|
* 当前请求时间戳 |
||||||
|
*/ |
||||||
|
private String t; |
||||||
|
/** |
||||||
|
* 其他参数组合成的json对象 |
||||||
|
*/ |
||||||
|
private String param; |
||||||
|
} |
@ -0,0 +1,179 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 15:49 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintImgParam { |
||||||
|
/** |
||||||
|
* 业务类型,默认为10 |
||||||
|
*/ |
||||||
|
private String type; |
||||||
|
/** |
||||||
|
* 电子面单客户账户或月结账号,需贵司向当地快递公司网点申请 |
||||||
|
*/ |
||||||
|
private String partnerId; |
||||||
|
/** |
||||||
|
* 电子面单密码,需贵司向当地快递公司网点申请 |
||||||
|
*/ |
||||||
|
private String partnerKey; |
||||||
|
/** |
||||||
|
* 收件网点名称,由快递公司当地网点分配, |
||||||
|
* 若使用淘宝授权填入(taobao),使用菜鸟授权填入(cainiao) |
||||||
|
*/ |
||||||
|
private String net; |
||||||
|
/** |
||||||
|
* 快递公司的编码,一律用小写字母 |
||||||
|
*/ |
||||||
|
private String kuaidicom; |
||||||
|
/** |
||||||
|
* 收件人姓名 |
||||||
|
*/ |
||||||
|
private String recManName; |
||||||
|
/** |
||||||
|
* 收件人的手机号 |
||||||
|
*/ |
||||||
|
private String recManMobile; |
||||||
|
/** |
||||||
|
* 收件人的手机号 |
||||||
|
*/ |
||||||
|
private String recManTel; |
||||||
|
/** |
||||||
|
* 收件人所在完整地址 |
||||||
|
*/ |
||||||
|
private String recManPrintAddr; |
||||||
|
/** |
||||||
|
* 寄件人姓名 |
||||||
|
*/ |
||||||
|
private String sendManName; |
||||||
|
/** |
||||||
|
* 寄件人的手机号 |
||||||
|
*/ |
||||||
|
private String sendManMobile; |
||||||
|
/** |
||||||
|
* 寄件人所在的完整地址 |
||||||
|
*/ |
||||||
|
private String sendManPrintAddr; |
||||||
|
/** |
||||||
|
* 打印电子面单模板编码(登录快递100管理后台查看) |
||||||
|
*/ |
||||||
|
private String tempid; |
||||||
|
/** |
||||||
|
* 物品名称(部分快递公司必填) |
||||||
|
*/ |
||||||
|
private String cargo; |
||||||
|
/** |
||||||
|
* 物品总数量。 |
||||||
|
* 另外该属性与子单有关,如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号), |
||||||
|
* needChild = 1、count 需要大于1,如count = 2 则一个主单 一个子单, |
||||||
|
* count = 3则一个主单 二个子单;返回的子单号码见返回结果的childNum字段 |
||||||
|
*/ |
||||||
|
private String count; |
||||||
|
/** |
||||||
|
* 物品总重量,单位:KG (例子:0.5) |
||||||
|
*/ |
||||||
|
private String weight; |
||||||
|
/** |
||||||
|
* 支付方式: |
||||||
|
* SHIPPER:寄方付(默认) |
||||||
|
* CONSIGNEE:到付 |
||||||
|
* MONTHLY:月结 |
||||||
|
* THIRDPARTY:第三方支付 |
||||||
|
*/ |
||||||
|
private String payType; |
||||||
|
/** |
||||||
|
* 快递类型: |
||||||
|
* 标准快递(默认) |
||||||
|
* 顺丰特惠 |
||||||
|
* EMS经济 |
||||||
|
*/ |
||||||
|
private String expType; |
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
private String remark; |
||||||
|
/** |
||||||
|
* 保价额度 |
||||||
|
*/ |
||||||
|
private String valinsPay; |
||||||
|
/** |
||||||
|
* 代收货款额度 |
||||||
|
*/ |
||||||
|
private String collection; |
||||||
|
/** |
||||||
|
* 是否需要子单(支持子单的快递公司才可以用,是否支持可以参考参数字典) |
||||||
|
* 1:需要 |
||||||
|
* 0:不需要(默认) |
||||||
|
* 如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号); |
||||||
|
* needChild = 1、count 需要大于1,如count = 2 一个主单 一个子单, |
||||||
|
* count = 3 一个主单 二个子单,返回的子单号码见返回结果的childNum字段 |
||||||
|
*/ |
||||||
|
private String needChild; |
||||||
|
/** |
||||||
|
* 是否需要回单(支持回单的快递公司才可以用,是否支持可以参考参数字典) |
||||||
|
* 1:需要 |
||||||
|
* 0:不需要(默认) |
||||||
|
* 返回的回单号见返回结果的returnNum字段 |
||||||
|
*/ |
||||||
|
private String needBack; |
||||||
|
/** |
||||||
|
* 贵司内部自定义的订单编号,需要保证唯一性 |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
/** |
||||||
|
* 生成图片的高,以mm为单位(默认100) |
||||||
|
*/ |
||||||
|
private String height; |
||||||
|
/** |
||||||
|
* 生成图片的宽,以mm为单位(默认180) |
||||||
|
*/ |
||||||
|
private String width; |
||||||
|
/** |
||||||
|
* 签名用随机字符串 |
||||||
|
*/ |
||||||
|
private String salt; |
||||||
|
/** |
||||||
|
* 是否开启订阅功能: |
||||||
|
* 0:不开启(默认) |
||||||
|
* 1:开启 |
||||||
|
* 说明开启订阅功能时:pollCallBackUrl必须填入 |
||||||
|
* 此功能只针对有快递单号的单 |
||||||
|
*/ |
||||||
|
private String op; |
||||||
|
/** |
||||||
|
* 如果op设置为1时,pollCallBackUrl必须填入,用于跟踪回调 |
||||||
|
*/ |
||||||
|
private String pollCallBackUrl; |
||||||
|
/** |
||||||
|
* 添加此字段表示开通行政区域解析功能:0:关闭(默认);1:开通行政区域解析功能 |
||||||
|
*/ |
||||||
|
private String resultv2; |
||||||
|
/** |
||||||
|
* 打印时间 |
||||||
|
*/ |
||||||
|
private String printTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 扩展字段,不同快递公司具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String code; |
||||||
|
/** |
||||||
|
* 扩展字段,具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String partnerSecret; |
||||||
|
/** |
||||||
|
* 扩展字段,具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String partnerName; |
||||||
|
/** |
||||||
|
* 扩展字段,具体详情看参数字典 |
||||||
|
* https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95
|
||||||
|
*/ |
||||||
|
private String checkMan; |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 15:49 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintImgReq extends PrintReq{ |
||||||
|
/** |
||||||
|
* 业务类型(默认:getPrintImg) |
||||||
|
*/ |
||||||
|
private String method; |
||||||
|
/** |
||||||
|
* 快递100分配给贵司的的授权key |
||||||
|
*/ |
||||||
|
private String key; |
||||||
|
/** |
||||||
|
* 加密签名信息:MD5(param+t+key+secret);加密后字符串转大写 |
||||||
|
*/ |
||||||
|
private String sign; |
||||||
|
/** |
||||||
|
* 当前请求时间戳 |
||||||
|
*/ |
||||||
|
private String t; |
||||||
|
/** |
||||||
|
* 其他参数组合成的json对象 |
||||||
|
*/ |
||||||
|
private String param; |
||||||
|
} |
@ -0,0 +1,36 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-20 9:41 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintReq extends BaseRequest { |
||||||
|
|
||||||
|
/** |
||||||
|
* 业务类型(默认:getPrintImg) |
||||||
|
*/ |
||||||
|
private String method; |
||||||
|
/** |
||||||
|
* 快递100分配给贵司的的授权key |
||||||
|
*/ |
||||||
|
private String key; |
||||||
|
/** |
||||||
|
* 加密签名信息:MD5(param+t+key+secret);加密后字符串转大写 |
||||||
|
*/ |
||||||
|
private String sign; |
||||||
|
/** |
||||||
|
* 当前请求时间戳 |
||||||
|
*/ |
||||||
|
private String t; |
||||||
|
/** |
||||||
|
* 其他参数 |
||||||
|
*/ |
||||||
|
private String param; |
||||||
|
/** |
||||||
|
* 快递100分配给贵司的的授权key |
||||||
|
*/ |
||||||
|
private String secret; |
||||||
|
} |
@ -0,0 +1,43 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-14 15:58 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class QueryTrackParam { |
||||||
|
/** |
||||||
|
* 查询的快递公司的编码,一律用小写字母 |
||||||
|
*/ |
||||||
|
private String com; |
||||||
|
/** |
||||||
|
* 查询的快递单号, 单号的最大长度是32个字符 |
||||||
|
*/ |
||||||
|
private String num; |
||||||
|
/** |
||||||
|
* 收件人或寄件人的手机号或固话 |
||||||
|
*/ |
||||||
|
private String phone; |
||||||
|
/** |
||||||
|
* 出发地城市,省-市-区 |
||||||
|
*/ |
||||||
|
private String from; |
||||||
|
/** |
||||||
|
* 目的地城市,省-市-区 |
||||||
|
*/ |
||||||
|
private String to; |
||||||
|
/** |
||||||
|
* 添加此字段表示开通行政区域解析功能。0:关闭(默认),1:开通行政区域解析功能,2:开通行政解析功能并且返回出发、目的及当前城市信息 |
||||||
|
*/ |
||||||
|
private String resultv2 = "0"; |
||||||
|
/** |
||||||
|
* 返回数据格式。0:json(默认),1:xml,2:html,3:text |
||||||
|
*/ |
||||||
|
private String show = "0"; |
||||||
|
/** |
||||||
|
* 返回结果排序方式。desc:降序(默认),asc:升序 |
||||||
|
*/ |
||||||
|
private String order = "desc"; |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-14 15:56 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class QueryTrackReq extends BaseRequest { |
||||||
|
/** |
||||||
|
* 我方分配给贵司的的公司编号, 点击查看账号信息 |
||||||
|
*/ |
||||||
|
private String customer; |
||||||
|
/** |
||||||
|
* 签名, 用于验证身份, 按param + key + customer 的顺序进行MD5加密(注意加密后字符串要转大写), 不需要“+”号 |
||||||
|
*/ |
||||||
|
private String sign; |
||||||
|
/** |
||||||
|
* 其他参数组合成的json对象 |
||||||
|
*/ |
||||||
|
private String param; |
||||||
|
} |
@ -0,0 +1,44 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-21 9:14 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SendSmsReq extends BaseRequest { |
||||||
|
/** |
||||||
|
* 加密签名信息:MD5(key + userid);加密后字符串转大写 |
||||||
|
*/ |
||||||
|
private String sign; |
||||||
|
/** |
||||||
|
* 我方分配给贵司的的短信接口用户ID,点击查看账号信息 |
||||||
|
*/ |
||||||
|
private String userid; |
||||||
|
/** |
||||||
|
* 商户名称签名;最好用简称,该字段信息会在短信标签处显示。不要超过5个字符 |
||||||
|
*/ |
||||||
|
private String seller; |
||||||
|
/** |
||||||
|
* 接收短信手机号 |
||||||
|
*/ |
||||||
|
private String phone; |
||||||
|
/** |
||||||
|
* 短信模板ID |
||||||
|
*/ |
||||||
|
private String tid; |
||||||
|
/** |
||||||
|
* 短信模板替换内容 |
||||||
|
*/ |
||||||
|
private String content; |
||||||
|
/** |
||||||
|
* 外部订单号:当该短信发送模板有回调地址时,外部订单号会返回给调用者,方便用户更新数据 |
||||||
|
*/ |
||||||
|
private String outorder; |
||||||
|
/** |
||||||
|
* 回调地址:如果客户在发送短信时填写该参数,将按照这个参数回调短信发送状态; |
||||||
|
* 如果为空,将按照模板配置的地址回调短信发送状态;如果两个参数都不填写,将不会回调通知状态 |
||||||
|
*/ |
||||||
|
private String callback; |
||||||
|
} |
@ -0,0 +1,36 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-16 13:41 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SubscribeParam { |
||||||
|
|
||||||
|
/** |
||||||
|
* 订阅的快递公司的编码,一律用小写字母 |
||||||
|
*/ |
||||||
|
private String company; |
||||||
|
/** |
||||||
|
* 订阅的快递单号,单号的最大长度是32个字符 |
||||||
|
*/ |
||||||
|
private String number; |
||||||
|
/** |
||||||
|
* 出发地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,请尽量提供 |
||||||
|
*/ |
||||||
|
private String from; |
||||||
|
/** |
||||||
|
* 目的地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,且到达目的地后会加大监控频率,请尽量提供 |
||||||
|
*/ |
||||||
|
private String to; |
||||||
|
/** |
||||||
|
* 我方分配给贵司的的授权key |
||||||
|
*/ |
||||||
|
private String key; |
||||||
|
/** |
||||||
|
* 附加参数信息 |
||||||
|
*/ |
||||||
|
private SubscribeParameters parameters; |
||||||
|
} |
@ -0,0 +1,57 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-16 13:42 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SubscribeParameters { |
||||||
|
/** |
||||||
|
* 回调接口的地址。如果需要在推送信息回传自己业务参数,可以在回调地址URL后面拼接上去,如示例中的orderId |
||||||
|
* http://www.xxxxx.com/callback?orderId=123
|
||||||
|
*/ |
||||||
|
private String callbackurl; |
||||||
|
/** |
||||||
|
* 签名用随机字符串。32位自定义字符串。添加该参数,则推送的时候会增加sign给贵司校验消息的可靠性 |
||||||
|
*/ |
||||||
|
private String salt; |
||||||
|
/** |
||||||
|
* 添加此字段表示开通行政区域解析功能。0:关闭(默认),1:开通行政区域解析功能 |
||||||
|
*/ |
||||||
|
private String resultv2; |
||||||
|
/** |
||||||
|
* 添加此字段且将此值设为1,则表示开始智能判断单号所属公司的功能, |
||||||
|
* 开启后,company字段可为空,即只传运单号(number字段),我方收到后会根据单号判断出其所属的快递公司(即company字段)。 |
||||||
|
* 建议只有在无法知道单号对应的快递公司(即company的值)的情况下才开启此功能。 |
||||||
|
*/ |
||||||
|
private String autoCom; |
||||||
|
/** |
||||||
|
* 添加此字段表示开启国际版 |
||||||
|
* 开启后,若订阅的单号(即number字段)属于国际单号,会返回出发国与目的国两个国家的跟踪信息; |
||||||
|
* 本功能暂时只支持邮政体系(国际类的邮政小包、EMS)内的快递公司; |
||||||
|
* 若单号我方识别为非国际单,即使添加本字段,也不会返回destResult元素组. |
||||||
|
*/ |
||||||
|
private String interCom; |
||||||
|
/** |
||||||
|
* 出发国家编码 |
||||||
|
*/ |
||||||
|
private String departureCountry; |
||||||
|
/** |
||||||
|
* 出发国家快递公司的编码 |
||||||
|
*/ |
||||||
|
private String departureCom; |
||||||
|
/** |
||||||
|
* 目的国家编码 |
||||||
|
*/ |
||||||
|
private String destinationCountry; |
||||||
|
/** |
||||||
|
* 目的国家快递公司的编码 |
||||||
|
*/ |
||||||
|
private String destinationCom; |
||||||
|
/** |
||||||
|
* 收件人或寄件人的手机号或固话(顺丰单号必填,也可以填写后四位,如果是固话,请不要上传分机号) |
||||||
|
*/ |
||||||
|
private String phone; |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-16 13:41 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SubscribeReq extends BaseRequest { |
||||||
|
/** |
||||||
|
* 返回数据格式(json、xml、text) |
||||||
|
*/ |
||||||
|
private String schema; |
||||||
|
/** |
||||||
|
* 其他参数 |
||||||
|
*/ |
||||||
|
private String param; |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request; |
||||||
|
|
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-01-06 14:16 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class ThirdAuthReq { |
||||||
|
/** |
||||||
|
* 请求的第三方平台,淘宝:taobao,菜鸟:cainiao,京东:jdalpha,拼多多:pinduoduoWx |
||||||
|
*/ |
||||||
|
private String net; |
||||||
|
/** |
||||||
|
* 授权完后的信息回调地址 |
||||||
|
*/ |
||||||
|
private String callBackUrl; |
||||||
|
/** |
||||||
|
* 已经授权完需要重新获取授权信息 |
||||||
|
*/ |
||||||
|
private String partnerId; |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request.cloud; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-11-25 15:47 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class COrderCancelReq extends CloudBaseReq{ |
||||||
|
/** |
||||||
|
* 任务ID |
||||||
|
*/ |
||||||
|
private String taskId; |
||||||
|
/** |
||||||
|
* 订单ID |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
/** |
||||||
|
* 取消原因,例:暂时不寄件了 |
||||||
|
*/ |
||||||
|
private String cancelMsg; |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request.cloud; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-11-20 11:09 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class COrderQueryReq extends CloudBaseReq{ |
||||||
|
/** |
||||||
|
* |
||||||
|
*/ |
||||||
|
private String sendManPrintAddr; |
||||||
|
|
||||||
|
private String recManPrintAddr; |
||||||
|
|
||||||
|
private String address; |
||||||
|
} |
@ -0,0 +1,75 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request.cloud; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-10-27 15:47 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class COrderReq extends CloudBaseReq{ |
||||||
|
/** |
||||||
|
* 快递公司的编码,一律用小写字母,见《快递公司编码》 |
||||||
|
*/ |
||||||
|
private String com; |
||||||
|
/** |
||||||
|
* 收件人姓名 |
||||||
|
*/ |
||||||
|
private String recManName; |
||||||
|
/** |
||||||
|
* 收件人的手机号,手机号和电话号二者其一必填 |
||||||
|
*/ |
||||||
|
private String recManMobile; |
||||||
|
/** |
||||||
|
* 收件人所在完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园 |
||||||
|
*/ |
||||||
|
private String recManPrintAddr; |
||||||
|
/** |
||||||
|
* 寄件人姓名 |
||||||
|
*/ |
||||||
|
private String sendManName; |
||||||
|
/** |
||||||
|
* 寄件人的手机号,手机号和电话号二者其一必填 |
||||||
|
*/ |
||||||
|
private String sendManMobile; |
||||||
|
/** |
||||||
|
* 寄件人所在的完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园B10 |
||||||
|
*/ |
||||||
|
private String sendManPrintAddr; |
||||||
|
/** |
||||||
|
* 物品名称,例:文件 |
||||||
|
*/ |
||||||
|
private String cargo; |
||||||
|
/** |
||||||
|
* 物品总重量KG,例:1.5,单位kg |
||||||
|
*/ |
||||||
|
private String weight; |
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
private String remark; |
||||||
|
/** |
||||||
|
* 签名用随机字符串 |
||||||
|
*/ |
||||||
|
private String salt; |
||||||
|
/** |
||||||
|
* callBackUrl订单信息回调 |
||||||
|
*/ |
||||||
|
private String callBackUrl; |
||||||
|
/** |
||||||
|
* 预约日期,例如:今天/明天/后天 |
||||||
|
*/ |
||||||
|
private String dayType; |
||||||
|
/** |
||||||
|
* 预约起始时间(HH:mm),例如:09:00 |
||||||
|
*/ |
||||||
|
private String pickupStartTime; |
||||||
|
/** |
||||||
|
* 预约截止时间(HH:mm),例如:10:00 |
||||||
|
*/ |
||||||
|
private String pickupEndTime; |
||||||
|
/** |
||||||
|
* 支付方式,SHIPPER: 寄付(默认),CONSIGNEE: 到付 |
||||||
|
*/ |
||||||
|
private String payment; |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request.cloud; |
||||||
|
|
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; |
||||||
|
import co.yixiang.tools.utils.kuaidi100.sdk.utils.SignUtils; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-10-27 15:45 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class CloudBaseReq extends BaseRequest { |
||||||
|
/** |
||||||
|
* 用户授权key |
||||||
|
*/ |
||||||
|
private String secret_key; |
||||||
|
/** |
||||||
|
* 接口编号 |
||||||
|
*/ |
||||||
|
private String secret_code; |
||||||
|
/** |
||||||
|
* 加密签名:md5(secret_key+secret_secret)转大写 |
||||||
|
*/ |
||||||
|
private String secret_sign; |
||||||
|
|
||||||
|
private String secret_secret; |
||||||
|
|
||||||
|
public String getSecret_sign() { |
||||||
|
return SignUtils.sign(secret_key+secret_secret); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request.samecity; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-03-22 16:57 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class AuthReq { |
||||||
|
/** |
||||||
|
* 快递公司,一律用小写字母,见参数字典 |
||||||
|
*/ |
||||||
|
private String com; |
||||||
|
/** |
||||||
|
* 授权店铺id |
||||||
|
*/ |
||||||
|
private String storeId; |
||||||
|
/** |
||||||
|
* 授权后信息的信息回调地址 |
||||||
|
*/ |
||||||
|
private String callbackUrl; |
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request.samecity; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-03-22 17:24 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class CancelReq { |
||||||
|
|
||||||
|
/** |
||||||
|
* 任务ID |
||||||
|
*/ |
||||||
|
private String taskId; |
||||||
|
/** |
||||||
|
* 订单ID |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
/** |
||||||
|
* 取消原因 |
||||||
|
*/ |
||||||
|
private String cancelMsg; |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request.samecity; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-03-09 10:15 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class OrderGoods { |
||||||
|
/** |
||||||
|
* 商品名称 |
||||||
|
*/ |
||||||
|
private String name; |
||||||
|
/** |
||||||
|
* 商品价格(分) |
||||||
|
*/ |
||||||
|
private Integer price; |
||||||
|
/** |
||||||
|
* 商品数量 |
||||||
|
*/ |
||||||
|
private Integer count; |
||||||
|
/** |
||||||
|
* 商品单位 |
||||||
|
*/ |
||||||
|
private String unit; |
||||||
|
} |
@ -0,0 +1,115 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request.samecity; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-03-22 17:25 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class OrderReq { |
||||||
|
/** |
||||||
|
* 快递公司的编码,一律用小写字母,见《快递公司编码》 |
||||||
|
*/ |
||||||
|
private String com; |
||||||
|
/** |
||||||
|
* 收件人姓名 |
||||||
|
*/ |
||||||
|
private String recManName; |
||||||
|
/** |
||||||
|
* 收件人的手机号,手机号和电话号二者其一必填 |
||||||
|
*/ |
||||||
|
private String recManMobile; |
||||||
|
/** |
||||||
|
* 收件人所在完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园 |
||||||
|
*/ |
||||||
|
private String recManPrintAddr; |
||||||
|
/** |
||||||
|
* 寄件人姓名 |
||||||
|
*/ |
||||||
|
private String sendManName; |
||||||
|
/** |
||||||
|
* 寄件人的手机号,手机号和电话号二者其一必填 |
||||||
|
*/ |
||||||
|
private String sendManMobile; |
||||||
|
/** |
||||||
|
* 寄件人所在的完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园B10 |
||||||
|
*/ |
||||||
|
private String sendManPrintAddr; |
||||||
|
/** |
||||||
|
* 服务类型 |
||||||
|
*/ |
||||||
|
private String serviceType; |
||||||
|
/** |
||||||
|
* 物品总重量KG,例:1.5,单位kg |
||||||
|
*/ |
||||||
|
private Double weight; |
||||||
|
/** |
||||||
|
* 备注 |
||||||
|
*/ |
||||||
|
private String remark; |
||||||
|
/** |
||||||
|
* 签名用随机字符串 |
||||||
|
*/ |
||||||
|
private String salt; |
||||||
|
/** |
||||||
|
* callBackUrl订单信息回调 |
||||||
|
*/ |
||||||
|
private String callbackUrl; |
||||||
|
/** |
||||||
|
* 订单类型,默认为0 0: 立即单 1: 预约单 |
||||||
|
*/ |
||||||
|
private Integer orderType; |
||||||
|
/** |
||||||
|
* 取货时间(2020-02-02 22:00,指的是预约取件时间) |
||||||
|
*/ |
||||||
|
|
||||||
|
private String pickupTime; |
||||||
|
/** |
||||||
|
* 支付方式,SHIPPER: 寄付(默认),CONSIGNEE: 到付 |
||||||
|
*/ |
||||||
|
private String payment; |
||||||
|
/** |
||||||
|
* 对应商家版物品来源流水号 |
||||||
|
*/ |
||||||
|
private String orderSourceNo; |
||||||
|
/** |
||||||
|
* 物品来源 |
||||||
|
*/ |
||||||
|
private String orderSourceType; |
||||||
|
/** |
||||||
|
* 店铺ID |
||||||
|
*/ |
||||||
|
private String storeId; |
||||||
|
/** |
||||||
|
* 小费(分) |
||||||
|
*/ |
||||||
|
private Integer additionFee; |
||||||
|
/** |
||||||
|
* 保险费用(闪送支持) |
||||||
|
*/ |
||||||
|
private Integer insurance; |
||||||
|
/** |
||||||
|
* 保险产品ID(闪送支持) |
||||||
|
*/ |
||||||
|
private String insuranceProId; |
||||||
|
/** |
||||||
|
* 商品价格 |
||||||
|
*/ |
||||||
|
private Integer price; |
||||||
|
/** |
||||||
|
* 代收价格 |
||||||
|
*/ |
||||||
|
private Integer CollectionPrice; |
||||||
|
|
||||||
|
private String partnerId; |
||||||
|
|
||||||
|
private String partnerKey; |
||||||
|
|
||||||
|
/** |
||||||
|
* 商品详情(强烈建议提供,方便骑手在取货时确认货品信息 ;顺丰时必填) |
||||||
|
*/ |
||||||
|
private List<OrderGoods> goods; |
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.request.samecity; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-03-22 17:24 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class QueryReq { |
||||||
|
|
||||||
|
/** |
||||||
|
* 任务ID |
||||||
|
*/ |
||||||
|
private String taskId; |
||||||
|
/** |
||||||
|
* 订单ID |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 10:04 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class AutoNumResp { |
||||||
|
/** |
||||||
|
* 请忽略 |
||||||
|
*/ |
||||||
|
public String lengthPre; |
||||||
|
/** |
||||||
|
* 快递公司对应的编码 |
||||||
|
*/ |
||||||
|
private String comCode; |
||||||
|
/** |
||||||
|
* 请忽略 |
||||||
|
*/ |
||||||
|
private String noPre; |
||||||
|
/** |
||||||
|
* 请忽略 |
||||||
|
*/ |
||||||
|
private String noCount; |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-09-17 14:17 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BOrderQueryData { |
||||||
|
|
||||||
|
private String province; |
||||||
|
|
||||||
|
private String city; |
||||||
|
|
||||||
|
private String district; |
||||||
|
|
||||||
|
private String addr; |
||||||
|
|
||||||
|
private String latitude; |
||||||
|
|
||||||
|
private String longitude; |
||||||
|
|
||||||
|
private List<BOrderQueryDataInfo> mktInfo; |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-09-17 14:24 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BOrderQueryDataInfo { |
||||||
|
/** |
||||||
|
* 业务服务类型 |
||||||
|
*/ |
||||||
|
private List<String> serviceType; |
||||||
|
/** |
||||||
|
* 支持的快递公司编码 |
||||||
|
*/ |
||||||
|
private String kuaidiCom; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-09-17 14:31 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class BOrderResp { |
||||||
|
/** |
||||||
|
* 任务ID |
||||||
|
*/ |
||||||
|
private String taskId; |
||||||
|
/** |
||||||
|
* 订单ID |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
} |
@ -0,0 +1,8 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-11-25 16:11 |
||||||
|
*/ |
||||||
|
public class BaseResponse<K> { |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 18:48 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintBaseResp<T> { |
||||||
|
|
||||||
|
private String returnCode; |
||||||
|
|
||||||
|
private boolean result; |
||||||
|
|
||||||
|
private String message; |
||||||
|
|
||||||
|
private T data; |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 19:49 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintCloudData { |
||||||
|
|
||||||
|
private String taskId; |
||||||
|
|
||||||
|
private String eOrder; |
||||||
|
|
||||||
|
private String kuaidinum; |
||||||
|
|
||||||
|
private String kuaidicom; |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 19:31 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintHtmlData { |
||||||
|
/** |
||||||
|
* html代码 |
||||||
|
*/ |
||||||
|
private List<String> template; |
||||||
|
/** |
||||||
|
* 快递单号 |
||||||
|
*/ |
||||||
|
private String kuaidinum; |
||||||
|
/** |
||||||
|
* 大头笔 |
||||||
|
*/ |
||||||
|
private String bulkpen; |
||||||
|
/** |
||||||
|
* 电子面单链接 |
||||||
|
*/ |
||||||
|
private List<String> templateurl; |
||||||
|
/** |
||||||
|
* 子单号 |
||||||
|
*/ |
||||||
|
private String childNum; |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 19:29 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintHtmlResp { |
||||||
|
|
||||||
|
private String taskId; |
||||||
|
|
||||||
|
private String message; |
||||||
|
|
||||||
|
private String status; |
||||||
|
|
||||||
|
private boolean result; |
||||||
|
|
||||||
|
private List<PrintHtmlData> data; |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-17 18:52 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class PrintImgData { |
||||||
|
|
||||||
|
private String taskId; |
||||||
|
|
||||||
|
private String eOrder; |
||||||
|
|
||||||
|
private String kuaidinum; |
||||||
|
|
||||||
|
private String kuaidicom; |
||||||
|
|
||||||
|
private String imgBase64; |
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-14 16:13 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class QueryTrackData { |
||||||
|
/** |
||||||
|
* 时间,原始格式 |
||||||
|
*/ |
||||||
|
private String time; |
||||||
|
/** |
||||||
|
* 物流轨迹节点内容 |
||||||
|
*/ |
||||||
|
private String context; |
||||||
|
/** |
||||||
|
* 格式化后时间 |
||||||
|
*/ |
||||||
|
private String ftime; |
||||||
|
/** |
||||||
|
* 行政区域的编码 |
||||||
|
*/ |
||||||
|
private String areaCode; |
||||||
|
/** |
||||||
|
* 行政区域的名称 |
||||||
|
*/ |
||||||
|
private String areaName; |
||||||
|
/** |
||||||
|
* 签收状态 (0在途,1揽收,2疑难,3签收,4退签,5派件,6退回,7转投) |
||||||
|
*/ |
||||||
|
private String status; |
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import lombok.ToString; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-12-24 17:34 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@ToString(callSuper = true) |
||||||
|
public class QueryTrackMapResp extends QueryTrackResp { |
||||||
|
|
||||||
|
/** |
||||||
|
* 轨迹地图链接 |
||||||
|
*/ |
||||||
|
private String trailUrl; |
||||||
|
/** |
||||||
|
* 预计到达时间 |
||||||
|
*/ |
||||||
|
private String arrivalTime; |
||||||
|
/** |
||||||
|
* 平均耗时 |
||||||
|
*/ |
||||||
|
private String totalTime; |
||||||
|
/** |
||||||
|
* 到达还需多少时间 |
||||||
|
*/ |
||||||
|
private String remainTime; |
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-14 16:16 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class QueryTrackPosition { |
||||||
|
|
||||||
|
/** |
||||||
|
* 地址编码 |
||||||
|
*/ |
||||||
|
private String number; |
||||||
|
/** |
||||||
|
* 地址名称 |
||||||
|
*/ |
||||||
|
private String name; |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-14 16:14 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class QueryTrackRouteInfo { |
||||||
|
/** |
||||||
|
* 出发位置 |
||||||
|
*/ |
||||||
|
private QueryTrackPosition from; |
||||||
|
/** |
||||||
|
* 当前位置 |
||||||
|
*/ |
||||||
|
private QueryTrackPosition cur; |
||||||
|
/** |
||||||
|
* 收货地 |
||||||
|
*/ |
||||||
|
private QueryTrackPosition to; |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-21 9:19 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SendSmsResp { |
||||||
|
|
||||||
|
private Integer status; |
||||||
|
|
||||||
|
private String data; |
||||||
|
|
||||||
|
private String msg; |
||||||
|
|
||||||
|
private Integer code; |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-21 10:05 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SmsCallbackData { |
||||||
|
/** |
||||||
|
* 传入的外部订单号 |
||||||
|
*/ |
||||||
|
private String outorder; |
||||||
|
/** |
||||||
|
* 附加信息 |
||||||
|
*/ |
||||||
|
private String message; |
||||||
|
/** |
||||||
|
* 短信发送状态:发送成功、发送失败、接收成功、接收失败 |
||||||
|
*/ |
||||||
|
private String status; |
||||||
|
/** |
||||||
|
* 返回校验信息:MD5(id + phone + outorder);校验方式是MD5加密的:模板ID+手机号+外部订单号。用户可根据加密签名判断是否进行处理请求 |
||||||
|
*/ |
||||||
|
private String sign; |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* 短信回调结果 |
||||||
|
* |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-21 10:02 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SmsCallbackResp { |
||||||
|
/** |
||||||
|
* 状态值:0-表示失败;1-表示成功 |
||||||
|
*/ |
||||||
|
private Integer status; |
||||||
|
/** |
||||||
|
* 返回数据信息:短信发送状态 |
||||||
|
*/ |
||||||
|
private SmsCallbackData data; |
||||||
|
/** |
||||||
|
* 信息内容:返回具体的信息体描述 |
||||||
|
*/ |
||||||
|
private String msg; |
||||||
|
/** |
||||||
|
* 附加信息 |
||||||
|
*/ |
||||||
|
private String extra; |
||||||
|
/** |
||||||
|
* 该值表示所数据的总条数 |
||||||
|
*/ |
||||||
|
private Integer total; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-08-28 14:24 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SubscribePushData { |
||||||
|
/** |
||||||
|
* 物流轨迹节点内容 |
||||||
|
*/ |
||||||
|
private String context; |
||||||
|
/** |
||||||
|
* 时间,原始格式 |
||||||
|
*/ |
||||||
|
private String time; |
||||||
|
/** |
||||||
|
* 格式化后时间 |
||||||
|
*/ |
||||||
|
private String ftime; |
||||||
|
/** |
||||||
|
* 本数据元对应的签收状态。只有在开通签收状态服务(见上面"status"后的说明)且在订阅接口中提交resultv2标记后才会出现 |
||||||
|
*/ |
||||||
|
private String status; |
||||||
|
/** |
||||||
|
* 本数据元对应的行政区域的编码,只有在开通签收状态服务(见上面"status"后的说明)且在订阅接口中提交resultv2标记后才会出现 |
||||||
|
*/ |
||||||
|
private String areaCode; |
||||||
|
/** |
||||||
|
* 本数据元对应的行政区域的名称,开通签收状态服务(见上面"status"后的说明)且在订阅接口中提交resultv2标记后才会出现 |
||||||
|
*/ |
||||||
|
private String areaName; |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-08-28 14:23 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SubscribePushParamResp { |
||||||
|
/** |
||||||
|
* 监控状态:polling:监控中,shutdown:结束,abort:中止,updateall:重新推送。 |
||||||
|
* 其中当快递单为已签收时status=shutdown,当message为“3天查询无记录”或“60天无变化时”status= abort ,对于stuatus=abort的状态, |
||||||
|
* 需要增加额外的处理逻辑:若贵司校验快递公司编码和单号无误后仍需继续跟踪,则隔半小时再发起该单的订阅即可 |
||||||
|
*/ |
||||||
|
private String status; |
||||||
|
/** |
||||||
|
* 包括got、sending、check三个状态,由于意义不大,已弃用,请忽略 |
||||||
|
*/ |
||||||
|
private String billstatus; |
||||||
|
/** |
||||||
|
* 监控状态相关消息,如:3天查询无记录,60天无变化 |
||||||
|
*/ |
||||||
|
private String message; |
||||||
|
/** |
||||||
|
* 快递公司编码是否出错,0为本推送信息对应的是贵司提交的原始快递公司编码,1为本推送信息对应的是我方纠正后的新的快递公司编码。 |
||||||
|
* 一个单如果我们连续3天都查不到结果,我方会 |
||||||
|
* (1)判断一次贵司提交的快递公司编码是否正确,如果正确,给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=0、comOld与comNew都为空; |
||||||
|
* (2)如果贵司提交的快递公司编码出错,我们会帮忙用正确的快递公司编码+原来的运单号重新提交订阅并开启监控(后续如果监控到单号有更新就给贵司的回调接口(callbackurl) |
||||||
|
* 推送带有如下字段的信息:autoCheck=1、comOld=原来的公司编码、comNew=新的公司编码); |
||||||
|
* 并且给贵方的回调接口(callbackurl)推送一条含有如下字段的信息:status=abort、autoCheck=0、comOld为空、comNew=纠正后的快递公司编码。 |
||||||
|
*/ |
||||||
|
private String autoCheck; |
||||||
|
/** |
||||||
|
* 贵司提交的原始的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 |
||||||
|
*/ |
||||||
|
private String comOld; |
||||||
|
/** |
||||||
|
* 我司纠正后的新的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 |
||||||
|
*/ |
||||||
|
private String comNew; |
||||||
|
/** |
||||||
|
* 最新查询结果,若在订阅报文中通过interCom字段开通了国际版,则此lastResult表示出发国的查询结果,全量,倒序(即时间最新的在最前) |
||||||
|
*/ |
||||||
|
private SubscribePushResult lastResult; |
||||||
|
/** |
||||||
|
* 表示最新的目的国家的查询结果,只有在订阅报文中通过interCom=1字段开通了国际版才会显示此数据元,全量,倒序(即时间最新的在最前) |
||||||
|
*/ |
||||||
|
private SubscribePushResult destResult; |
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-07-16 19:18 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SubscribeResp { |
||||||
|
|
||||||
|
private boolean result; |
||||||
|
|
||||||
|
private String returnCode; |
||||||
|
|
||||||
|
private String message; |
||||||
|
} |
@ -0,0 +1,46 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-08-28 14:23 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SubscribeWithMapPushParamResp { |
||||||
|
/** |
||||||
|
* 监控状态:polling:监控中,shutdown:结束,abort:中止,updateall:重新推送。 |
||||||
|
* 其中当快递单为已签收时status=shutdown,当message为“3天查询无记录”或“60天无变化时”status= abort ,对于stuatus=abort的状态, |
||||||
|
* 需要增加额外的处理逻辑:若贵司校验快递公司编码和单号无误后仍需继续跟踪,则隔半小时再发起该单的订阅即可 |
||||||
|
*/ |
||||||
|
private String status; |
||||||
|
/** |
||||||
|
* 包括got、sending、check三个状态,由于意义不大,已弃用,请忽略 |
||||||
|
*/ |
||||||
|
private String billstatus; |
||||||
|
/** |
||||||
|
* 监控状态相关消息,如:3天查询无记录,60天无变化 |
||||||
|
*/ |
||||||
|
private String message; |
||||||
|
/** |
||||||
|
* 快递公司编码是否出错,0为本推送信息对应的是贵司提交的原始快递公司编码,1为本推送信息对应的是我方纠正后的新的快递公司编码。 |
||||||
|
* 一个单如果我们连续3天都查不到结果,我方会 |
||||||
|
* (1)判断一次贵司提交的快递公司编码是否正确,如果正确,给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=0、comOld与comNew都为空; |
||||||
|
* (2)如果贵司提交的快递公司编码出错,我们会帮忙用正确的快递公司编码+原来的运单号重新提交订阅并开启监控(后续如果监控到单号有更新就给贵司的回调接口(callbackurl) |
||||||
|
* 推送带有如下字段的信息:autoCheck=1、comOld=原来的公司编码、comNew=新的公司编码); |
||||||
|
* 并且给贵方的回调接口(callbackurl)推送一条含有如下字段的信息:status=abort、autoCheck=0、comOld为空、comNew=纠正后的快递公司编码。 |
||||||
|
*/ |
||||||
|
private String autoCheck; |
||||||
|
/** |
||||||
|
* 贵司提交的原始的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 |
||||||
|
*/ |
||||||
|
private String comOld; |
||||||
|
/** |
||||||
|
* 我司纠正后的新的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 |
||||||
|
*/ |
||||||
|
private String comNew; |
||||||
|
/** |
||||||
|
* 最新查询结果,若在订阅报文中通过interCom字段开通了国际版,则此lastResult表示出发国的查询结果,全量,倒序(即时间最新的在最前) |
||||||
|
*/ |
||||||
|
private SubscribeWithMapPushResult lastResult; |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response; |
||||||
|
|
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2021-01-06 14:24 |
||||||
|
*/ |
||||||
|
@Getter |
||||||
|
@Setter |
||||||
|
public class ThirdAuthResp { |
||||||
|
// 授权链接
|
||||||
|
private String url; |
||||||
|
// 面单需要的partnerKey
|
||||||
|
private String partnerKey; |
||||||
|
// 面单需要的parterId
|
||||||
|
private String parterId; |
||||||
|
// 面单需要的net
|
||||||
|
private String net; |
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response.cloud; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-10-27 16:00 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class COrderRespData { |
||||||
|
/** |
||||||
|
* 任务id |
||||||
|
*/ |
||||||
|
private String taskId; |
||||||
|
/** |
||||||
|
* 快递100返回给您的平台订单id |
||||||
|
*/ |
||||||
|
private String orderId; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
package co.yixiang.tools.utils.kuaidi100.sdk.response.cloud; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author: api.kuaidi100.com |
||||||
|
* @Date: 2020-10-27 15:58 |
||||||
|
*/ |
||||||
|
public class CloudBaseResp<T> { |
||||||
|
/** |
||||||
|
* 响应码 |
||||||
|
*/ |
||||||
|
private String code; |
||||||
|
/** |
||||||
|
* 响应结果描述 |
||||||
|
*/ |
||||||
|
private String message; |
||||||
|
/** |
||||||
|
* 响应数据 |
||||||
|
*/ |
||||||
|
private T data; |
||||||
|
} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue