From 80fd9e3da4b45285c29cdb380ce743202b0c2af4 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 21 Nov 2024 11:22:36 +0800
Subject: [PATCH] feat(mall): 添加快递信息查询功能
---
src/main/java/com/best/javaSdk/kdTraceQuery/response/KdTraceQueryRsp.java | 19
src/main/java/com/best/javaSdk/kdTraceQuery/response/TraceLogs.java | 51
src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/response/ChildMailNo.java | 19
src/main/java/com/best/javaSdk/Param.java | 56
src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONReader.java | 238 +++
src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidator.java | 214 +++
src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONErrorListener.java | 7
src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/response/KdCreateWaybillOrderPdfNotifyRsp.java | 120 +
src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Sender.java | 107 +
src/main/java/com/best/javaSdk/converter/impl/BooleanConverter.java | 25
src/main/java/com/best/javaSdk/BaseRequest.java | 7
src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/response/KdCreateWaybillOrderNotifyRsp.java | 98 +
src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Item.java | 74 +
src/main/java/com/best/javaSdk/Client.java | 49
src/main/java/com/best/javaSdk/kdTraceQuery/request/KdTraceQueryReq.java | 44
src/main/java/com/best/javaSdk/Sign.java | 53
src/main/java/com/best/javaSdk/kdTraceQuery/request/MailNos.java | 12
src/main/java/com/best/javaSdk/kdUpdateOrderNotify/response/ChildMailNo.java | 19
src/main/java/cc/mrbird/febs/mall/controller/CommonController.java | 14
src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Receiver.java | 107 +
src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/response/ChildMailNo.java | 19
src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidatingReader.java | 23
src/main/java/com/best/javaSdk/BsApi.java | 32
src/main/java/com/best/javaSdk/kdCancelOrderNotify/response/KdCancelOrderNotifyRsp.java | 53
src/main/java/com/best/javaSdk/kdTraceQuery/response/Trace.java | 118 +
src/main/java/com/best/javaSdk/kdUpdateOrderNotify/response/KdUpdateOrderNotifyRsp.java | 109 +
src/main/java/cc/mrbird/febs/mall/dto/ApiCheckTraceInfoDto.java | 15
src/main/java/com/best/javaSdk/converter/impl/IntConverter.java | 24
pom.xml | 20
src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Sender.java | 107 +
src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Receiver.java | 107 +
src/main/java/com/best/javaSdk/converter/util/jsonReader/BufferErrorListener.java | 41
src/main/java/com/best/javaSdk/converter/impl/DoubleConverter.java | 25
src/main/java/com/best/javaSdk/Parser.java | 278 +++
src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONWriter.java | 221 +++
src/main/java/com/best/javaSdk/converter/impl/LongConverter.java | 25
src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/KdCreateWaybillOrderPdfNotifyReq.java | 333 ++++
src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/KdCreateWaybillOrderNotifyReq.java | 333 ++++
src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java | 27
src/main/java/com/best/javaSdk/converter/impl/FloatConverter.java | 25
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java | 11
src/main/java/com/best/javaSdk/kdCancelOrderNotify/request/KdCancelOrderNotifyReq.java | 44
src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Items.java | 20
src/main/java/com/best/javaSdk/kdUpdateOrderNotify/request/KdUpdateOrderNotifyReq.java | 56
src/main/java/com/best/javaSdk/BaseResponse.java | 4
src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidatingWriter.java | 56
src/main/java/com/best/javaSdk/converter/util/jsonReader/StdoutStreamErrorListener.java | 8
src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Items.java | 20
src/main/java/com/best/javaSdk/kdUpdateOrderNotify/request/Params.java | 360 +++++
src/main/java/com/best/javaSdk/converter/ConverterUtil.java | 12
src/main/java/cc/mrbird/febs/mall/service/ICommonService.java | 4
src/main/java/com/best/javaSdk/converter/impl/DateConverter.java | 47
src/main/java/com/best/javaSdk/kdTraceQuery/response/Traces.java | 19
src/main/java/com/best/javaSdk/converter/Converter.java | 15
src/main/java/com/best/javaSdk/converter/XmlConverter.java | 12
src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Item.java | 74 +
src/main/java/com/best/javaSdk/converter/impl/StringConverter.java | 25
src/main/java/com/best/javaSdk/HttpService.java | 96 +
src/main/java/com/best/javaSdk/converter/util/jsonReader/ExceptionErrorListener.java | 9
src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java | 2
src/main/resources/application.yml | 2
61 files changed, 4,151 insertions(+), 13 deletions(-)
diff --git a/pom.xml b/pom.xml
index 3f933da..900945f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,16 +40,16 @@
<artifactId>json</artifactId>
<version>20230618</version>
</dependency>
- <dependency>
- <groupId>com.github.wechatpay-apiv3</groupId>
- <artifactId>wechatpay-apache-httpclient</artifactId>
- <version>0.4.7</version>
- </dependency>
- <dependency>
- <groupId>com.github.wechatpay-apiv3</groupId>
- <artifactId>wechatpay-java</artifactId>
- <version>0.2.12</version>
- </dependency>
+<!-- <dependency>-->
+<!-- <groupId>com.github.wechatpay-apiv3</groupId>-->
+<!-- <artifactId>wechatpay-apache-httpclient</artifactId>-->
+<!-- <version>0.4.7</version>-->
+<!-- </dependency>-->
+<!-- <dependency>-->
+<!-- <groupId>com.github.wechatpay-apiv3</groupId>-->
+<!-- <artifactId>wechatpay-java</artifactId>-->
+<!-- <version>0.2.12</version>-->
+<!-- </dependency>-->
<!-- 图片压缩-->
<dependency>
<groupId>net.coobird</groupId>
diff --git a/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
index 7165cd8..984c91a 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.common.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@@ -40,4 +41,14 @@
registration.excludePathPatterns("/configuration/security");
registration.excludePathPatterns("/swagger-resources");
}
+
+ @Override
+ public void addCorsMappings( CorsRegistry registry) {
+ // 跨域请求配置
+ registry.addMapping("/**")//允许请求路径
+ .allowedOrigins("*")//表示允许所有网址发起跨域请求
+ .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")//表示允许跨域请求的方法
+ .maxAge(3600)//表示在3600秒内不需要再发送预校验请求
+ .allowCredentials(true);//允许客户端携带验证信息,即允许携带cookie
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java b/src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java
index 2d10d5b..4e1b19c 100644
--- a/src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java
+++ b/src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java
@@ -31,7 +31,7 @@
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- String headerToken = request.getHeader("token");
+ String headerToken = request.getHeader("Token");
if (StringUtils.isBlank(headerToken)) {
responseUnAuth(response);
return false;
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java b/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java
index 58cb018..7db03b9 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java
@@ -5,11 +5,13 @@
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.*;
import cc.mrbird.febs.mall.dto.AccountAndCodeDto;
+import cc.mrbird.febs.mall.dto.ApiCheckTraceInfoDto;
import cc.mrbird.febs.mall.dto.Base64UploadDto;
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.service.ICommonService;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
+import com.best.javaSdk.kdTraceQuery.response.KdTraceQueryRsp;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@@ -210,4 +212,16 @@
}
return new FebsResponse().fail().message("验证码错误");
}
+
+ @ApiOperation(value = "获取快递信息接口")
+ @PostMapping(value = "/checkTraceInfo")
+ public FebsResponse checkTraceInfo(@RequestBody ApiCheckTraceInfoDto checkTraceInfoDto) {
+
+ KdTraceQueryRsp traceQueryRsp = commonService.checkTraceInfo(checkTraceInfoDto);
+ boolean result = traceQueryRsp.isResult();
+ if (result) {
+ return new FebsResponse().success().data(traceQueryRsp);
+ }
+ return new FebsResponse().fail().message("请检查您的快递单号是否输入正确。");
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiCheckTraceInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiCheckTraceInfoDto.java
new file mode 100644
index 0000000..1730a0a
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiCheckTraceInfoDto.java
@@ -0,0 +1,15 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class ApiCheckTraceInfoDto {
+
+
+ @NotBlank(message = "快递单号不能为空")
+ @ApiModelProperty(value = "快递单号", example = "60850007041815")
+ private String traceNo;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/ICommonService.java b/src/main/java/cc/mrbird/febs/mall/service/ICommonService.java
index afd64f4..f574449 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/ICommonService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/ICommonService.java
@@ -1,8 +1,9 @@
package cc.mrbird.febs.mall.service;
+import cc.mrbird.febs.mall.dto.ApiCheckTraceInfoDto;
import cc.mrbird.febs.mall.entity.AppVersion;
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
-import cc.mrbird.febs.mall.vo.CashOutSettingVo;
+import com.best.javaSdk.kdTraceQuery.response.KdTraceQueryRsp;
import java.util.List;
@@ -21,4 +22,5 @@
void addDataDic(String type, String key, Object value, String description, boolean isJson);
+ KdTraceQueryRsp checkTraceInfo(ApiCheckTraceInfoDto checkTraceInfoDto);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java
index 4f4cd2f..89ef59d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.mall.dto.ApiCheckTraceInfoDto;
import cc.mrbird.febs.mall.entity.AppVersion;
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.mapper.AppVersionMapper;
@@ -9,10 +10,15 @@
import cc.mrbird.febs.mall.service.ICommonService;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
+import com.best.javaSdk.Client;
+import com.best.javaSdk.kdTraceQuery.request.KdTraceQueryReq;
+import com.best.javaSdk.kdTraceQuery.request.MailNos;
+import com.best.javaSdk.kdTraceQuery.response.KdTraceQueryRsp;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -83,4 +89,25 @@
dic.setDescription(description);
dataDictionaryCustomMapper.insert(dic);
}
+
+ @Override
+ public KdTraceQueryRsp checkTraceInfo(ApiCheckTraceInfoDto checkTraceInfoDto) {
+ String url = "http://open-sgp.800best.com/api-server/m9api/api/process";
+ String partnerID = "71";
+ String partnerKey = "G95DIM64";
+ String format = "JSON";
+
+ Client client = new Client(url, partnerID, partnerKey, format);
+
+ KdTraceQueryReq tdTraceQueryReq = new KdTraceQueryReq();
+ MailNos mailNos = new MailNos();
+ List<String> mailNo = new ArrayList<>();
+ mailNo.add(checkTraceInfoDto.getTraceNo());
+ mailNos.setMailNo(mailNo);
+ tdTraceQueryReq.setMailNos(mailNos);
+ tdTraceQueryReq.setLangType("zh-CN");
+
+ KdTraceQueryRsp kdTraceQueryRsp = client.executed(tdTraceQueryReq);
+ return kdTraceQueryRsp;
+ }
}
diff --git a/src/main/java/com/best/javaSdk/BaseRequest.java b/src/main/java/com/best/javaSdk/BaseRequest.java
new file mode 100644
index 0000000..ad0ea7f
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/BaseRequest.java
@@ -0,0 +1,7 @@
+package com.best.javaSdk;
+
+public interface BaseRequest {
+ public String obtainServiceType();
+
+ BaseResponse makeResponse(String rsp, String format);
+}
diff --git a/src/main/java/com/best/javaSdk/BaseResponse.java b/src/main/java/com/best/javaSdk/BaseResponse.java
new file mode 100644
index 0000000..c409afb
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/BaseResponse.java
@@ -0,0 +1,4 @@
+package com.best.javaSdk;
+
+public interface BaseResponse {
+}
diff --git a/src/main/java/com/best/javaSdk/BsApi.java b/src/main/java/com/best/javaSdk/BsApi.java
new file mode 100644
index 0000000..1792271
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/BsApi.java
@@ -0,0 +1,32 @@
+package com.best.javaSdk;
+
+import cn.hutool.json.JSONUtil;
+import com.best.javaSdk.kdTraceQuery.request.KdTraceQueryReq;
+import com.best.javaSdk.kdTraceQuery.request.MailNos;
+import com.best.javaSdk.kdTraceQuery.response.KdTraceQueryRsp;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BsApi {
+
+ public static void main(String[] args) {
+ String url = "http://open-sgp.800best.com/api-server/m9api/api/process";
+ String partnerID = "71";
+ String partnerKey = "G95DIM64";
+ String format = "JSON";
+
+ Client client = new Client(url, partnerID, partnerKey, format);
+
+ KdTraceQueryReq tdTraceQueryReq = new KdTraceQueryReq();
+ MailNos mailNos = new MailNos();
+ List<String> mailNo = new ArrayList<>();
+ mailNo.add("JT689574278404");
+ mailNos.setMailNo(mailNo);
+ tdTraceQueryReq.setMailNos(mailNos);
+ tdTraceQueryReq.setLangType("zh-CN");
+
+ KdTraceQueryRsp kdTraceQueryRsp = client.executed(tdTraceQueryReq);
+ System.out.println(JSONUtil.parseObj(kdTraceQueryRsp));
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/Client.java b/src/main/java/com/best/javaSdk/Client.java
new file mode 100644
index 0000000..b3e08d8
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/Client.java
@@ -0,0 +1,49 @@
+package com.best.javaSdk;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Client {
+
+ private String url;
+ private String partnerID;
+ private String partnerKey;
+ private String messageFormat;
+
+ public Client(String url, String partnerID, String partnerKey, String messageFormat){
+ this.url = url;
+ this.messageFormat = messageFormat;
+ this.partnerID = partnerID;
+ this.partnerKey = partnerKey;
+
+ }
+
+ public <T extends BaseResponse> T executed(BaseRequest baseRequest) {
+ String response = "";
+ Map<String, String> params = new HashMap<>();
+ Map<String, String> headers = new HashMap<>();
+ Param param = new Param();
+ param.setPartnerID(partnerID);
+ param.setServiceType(baseRequest.obtainServiceType());
+ param.setBizData(makeBizData(baseRequest));
+ param.setPartnerKey(partnerKey);
+
+ params.put("partnerID", param.getPartnerID());
+ params.put("serviceType", param.getServiceType());
+ params.put("bizData", param.getBizData());
+ params.put("sign", Sign.makeSign(param));
+ try {
+ response = HttpService.sendPost(url, params, headers);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return response == null ? null : (T) baseRequest.makeResponse(response, messageFormat);
+ }
+
+ private String makeBizData(BaseRequest baseRequest) {
+ if("xml".equalsIgnoreCase(this.messageFormat)) {
+ return Parser.coverObject2Xml(baseRequest);
+ }
+ return Parser.convertObject2Json(baseRequest);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/best/javaSdk/HttpService.java b/src/main/java/com/best/javaSdk/HttpService.java
new file mode 100644
index 0000000..fd80477
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/HttpService.java
@@ -0,0 +1,96 @@
+package com.best.javaSdk;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+import java.util.Map;
+
+public class HttpService {
+ public static String sendPost(String url, Map<String, String> paramMap, Map<String, String> headerMap) throws Exception {
+ StringBuffer buffer = new StringBuffer(); //用来拼接参数
+ StringBuffer result = new StringBuffer(); //用来接受返回值
+ //创建URL
+ URL httpUrl = new URL(url);
+ //建立连接
+ URLConnection connection = httpUrl.openConnection();
+ connection.setRequestProperty("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
+ connection.setRequestProperty("connection", "keep-alive");
+ connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
+ connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
+ connection.setDoOutput(true);
+ connection.setDoInput(true);
+ if (headerMap != null && !headerMap.isEmpty()) {
+ for (Map.Entry<String, String> entry : headerMap.entrySet()) {
+ connection.setRequestProperty(entry.getKey(), URLEncoder.encode(entry.getValue(), "utf-8"));
+ }
+ }
+
+ PrintWriter printWriter = new PrintWriter(connection.getOutputStream());
+ String request = "";
+ if(paramMap != null && !paramMap.isEmpty()){
+ for (Map.Entry<String, String> entry : paramMap.entrySet()) {
+ buffer.append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue(), "utf-8")).append("&");
+ }
+ //去掉最后一个&并urlencode
+ request = buffer.toString().substring(0, buffer.toString().length() - 1);
+ }
+ printWriter.print(request);
+ printWriter.flush();
+ connection.connect();
+ //接受连接返回参数
+ BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+ String line;
+ while ((line = bufferedReader.readLine()) != null) {
+ result.append(line);
+ }
+ bufferedReader.close();
+ return result.toString();
+ }
+
+ public static String sendPost(String url, Map<String, String> paramMap, Map<String, String> headerMap, String body) throws Exception {
+ StringBuffer buffer = new StringBuffer(); //用来拼接参数
+ StringBuffer result = new StringBuffer(); //用来接受返回值
+ String request = "";
+ if(paramMap != null && !paramMap.isEmpty()){
+ for (Map.Entry<String, String> entry : paramMap.entrySet()) {
+ buffer.append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue(), "utf-8")).append("&");
+ }
+ //去掉最后一个&并urlencode
+ request = buffer.toString().substring(0, buffer.toString().length() - 1);
+ }
+
+ //创建URL
+ URL httpUrl = new URL(url + "?" + request);
+ //建立连接
+ URLConnection connection = httpUrl.openConnection();
+ connection.setRequestProperty("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
+ connection.setRequestProperty("connection", "keep-alive");
+ connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
+ connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
+ connection.setDoOutput(true);
+ connection.setDoInput(true);
+ if (headerMap != null && !headerMap.isEmpty()) {
+ for (Map.Entry<String, String> entry : headerMap.entrySet()) {
+ connection.setRequestProperty(entry.getKey(), URLEncoder.encode(entry.getValue(), "utf-8"));
+ }
+ }
+
+ PrintWriter printWriter = new PrintWriter(connection.getOutputStream());
+
+ printWriter.print(body);
+ printWriter.flush();
+ connection.connect();
+ //接受连接返回参数
+ BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+ String line;
+ while ((line = bufferedReader.readLine()) != null) {
+ result.append(line);
+ }
+ bufferedReader.close();
+ return result.toString();
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/Param.java b/src/main/java/com/best/javaSdk/Param.java
new file mode 100644
index 0000000..eb37609
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/Param.java
@@ -0,0 +1,56 @@
+package com.best.javaSdk;
+
+
+public class Param {
+ private String partnerID;
+ private String serviceType;
+ private String bizData;
+ private String partnerKey;
+ private String sign;
+
+ public String getPartnerID()
+ {
+ return this.partnerID;
+ }
+
+ public void setPartnerID(String value)
+ {
+ this.partnerID = value;
+ }
+ public String getServiceType()
+ {
+ return this.serviceType;
+ }
+
+ public void setServiceType(String value)
+ {
+ this.serviceType = value;
+ }
+ public String getBizData()
+ {
+ return this.bizData;
+ }
+
+ public void setBizData(String value)
+ {
+ this.bizData = value;
+ }
+ public String getPartnerKey()
+ {
+ return this.partnerKey;
+ }
+
+ public void setPartnerKey(String value)
+ {
+ this.partnerKey = value;
+ }
+ public String getSign()
+ {
+ return this.sign;
+ }
+
+ public void setSign(String value)
+ {
+ this.sign = value;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/best/javaSdk/Parser.java b/src/main/java/com/best/javaSdk/Parser.java
new file mode 100644
index 0000000..ee1eeb7
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/Parser.java
@@ -0,0 +1,278 @@
+package com.best.javaSdk;
+
+import com.best.javaSdk.converter.Converter;
+import com.best.javaSdk.converter.impl.*;
+import com.best.javaSdk.converter.util.jsonReader.*;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import java.io.StringReader;
+import java.lang.reflect.Field;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.*;
+
+public class Parser {
+
+ private static Map<Class, Converter> converterMap;
+
+ static {
+ converterMap = new HashMap<>();
+ converterMap.put(String.class, new StringConverter());
+ converterMap.put(int.class, new IntConverter());
+ converterMap.put(Integer.class, new IntConverter());
+ converterMap.put(float.class, new FloatConverter());
+ converterMap.put(Float.class, new FloatConverter());
+ converterMap.put(double.class, new DoubleConverter());
+ converterMap.put(Double.class, new DoubleConverter());
+ converterMap.put(long.class, new LongConverter());
+ converterMap.put(Long.class, new LongConverter());
+ converterMap.put(boolean.class, new BooleanConverter());
+ converterMap.put(Boolean.class, new BooleanConverter());
+ converterMap.put(Date.class, new DateConverter());
+ }
+
+ public static String coverObject2Xml(Object o) {
+ StringBuilder sb = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ Class cls = o.getClass();
+ String className = cls.getName();
+ className = className.substring(className.lastIndexOf(".") + 1);
+ if (className.endsWith("Req")) {
+ sb.append(appendXmlNode("request", object2XmlConvert(o)));
+ } else {
+ sb.append(appendXmlNode("response", object2XmlConvert(o)));
+ }
+
+ return sb.toString();
+ }
+
+ public static String object2XmlConvert(Object o) {
+ StringBuilder stringBuilder = new StringBuilder();
+ try {
+ Class cls = o.getClass();
+ if (cls.getName().startsWith("java.lang")) {
+ return o.toString();
+ }
+
+ Field[] props = cls.getDeclaredFields();
+ for (Field prop : props) {
+ prop.setAccessible(true);
+ String propName = prop.getName();
+ Class propType = prop.getType();
+ Object propValue = prop.get(o);
+ StringBuilder stb = new StringBuilder();
+ if(propValue == null) {
+ continue;
+ }
+ if(converterMap.containsKey(propType)) {
+ stb = new StringBuilder(converterMap.get(propType).xmlReverse(propValue, prop));
+ } else if (propType.getName().equals("java.util.List")) {
+ List valueList = (List) propValue;
+ for (Object value : valueList) {
+ stb.append(appendXmlNode(propName, object2XmlConvert(value)));
+ }
+ } else {
+ stb = new StringBuilder(appendXmlNode(propName, object2XmlConvert(propValue)));
+ }
+ stringBuilder.append(stb);
+ }
+ } catch (Exception e) {
+ return "parser error : " + e.getMessage();
+ }
+ return stringBuilder.toString();
+ }
+
+ public static String appendXmlNode(String nodeName, String nodeValue) {
+ StringBuilder sb = new StringBuilder();
+ return sb.append("<").append(nodeName).append(">").append(nodeValue).append("</").append(nodeName).append(">").toString();
+ }
+
+ public static <T> T coverXml2Object(String xml, Class<T> clazz) {
+
+ if(xml == null || "".equals(xml)) {
+ return null;
+ }
+
+ try {
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(new InputSource(new StringReader(xml)));
+ Element root = doc.getDocumentElement();
+ NodeList nodeList = root.getChildNodes();
+ return handelNodes(nodeList, clazz);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static <T> T handelNodes(NodeList nodeList, Class<T> clazz) {
+ try {
+ if (nodeList == null) {
+ return null;
+ }
+ if (clazz.getName().startsWith("java.lang")) {
+ return (T)nodeList.item(0).getNodeValue();
+ }
+
+ T obj = clazz.newInstance();
+ Map<Field, List<Object>> listChildMap = new HashMap<>();
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node node = nodeList.item(i);
+ String nodeName = node.getNodeName();
+ short nodeType = node.getNodeType();
+ if (nodeType == 3 || nodeType == 4) {
+ continue;
+ }
+ if(!node.hasChildNodes()) {
+ continue;
+ }
+ Field[] fields = clazz.getDeclaredFields();
+ if(!isContainProp(fields, nodeName)) {
+ continue;
+ }
+ Field field = clazz.getDeclaredField(nodeName);
+ field.setAccessible(true);
+ Class<?> fieldType = field.getType();
+
+ if (fieldType.getName().equals("java.util.List")) {
+ Type type = field.getGenericType();
+ if(type instanceof ParameterizedType) {
+ ParameterizedType pt = (ParameterizedType) type;
+ Class genericClazz = (Class) pt.getActualTypeArguments()[0];
+ Object listChildObj = handelNodes(node.getChildNodes(), genericClazz);
+
+ if (listChildMap.get(field) == null) {
+ List<Object> objectList = new ArrayList<>();
+ objectList.add(listChildObj);
+ listChildMap.put(field, objectList);
+ } else {
+ listChildMap.get(field).add(listChildObj);
+ }
+ }
+ } else {
+ Converter converter = converterMap.get(fieldType);
+ if (converter == null) {
+ field.set(obj, handelNodes(node.getChildNodes(), fieldType));
+ continue;
+ }
+ Object convert = converter.convertXml(node, field);
+ if (convert != null) {
+ field.set(obj, convert);
+ }
+ }
+ }
+ for (Field field : listChildMap.keySet()) {
+ field.set(obj, listChildMap.get(field));
+ }
+ return obj;
+ } catch (InstantiationException | IllegalAccessException | NoSuchFieldException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static <T> T convertJson2Object(String str, Class<T> clazz) {
+ try {
+ JSONReader reader = new JSONValidatingReader(new ExceptionErrorListener());
+ Object rootObj = reader.read(str);
+ return convertJson2Object(rootObj, clazz);
+ }catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private static <T> T convertJson2Object(Object object, Class<T> clazz) throws Exception {
+ T t = clazz.newInstance();
+ if (object instanceof Map<?, ?>) {
+ Map<?, ?> rootJson = (Map<?, ?>) object;
+ for (Object obj : rootJson.keySet()) {
+ String itemName = obj.toString();
+ Object itemValue = rootJson.get(obj);
+ Field[] fields = clazz.getDeclaredFields();
+ if (!isContainProp(fields, itemName)) {
+ continue;
+ }
+ Field field = clazz.getDeclaredField(itemName);
+ field.setAccessible(true);
+ Class<?> fieldType = field.getType();
+ Object value;
+
+ Converter converter = converterMap.get(fieldType);
+ if (converter == null && itemValue instanceof Map<?, ?>) {
+ value = convertJson2Object(itemValue, fieldType);
+ } else if (itemValue instanceof ArrayList<?> && fieldType.equals(List.class)) {
+ value = handlerListJson((ArrayList<?>) itemValue, field);
+ } else if (converter != null) {
+ if (itemValue == null) {
+ value = null;
+ } else {
+ value = converter.convertJson(itemValue, field);
+ }
+ } else {
+ continue;
+ }
+ if (value != null) {
+ field.set(t, value);
+ }
+ }
+ }
+ return t;
+ }
+
+ private static List handlerListJson(ArrayList<?> value, Field field) throws Exception {
+ List list = new ArrayList<>();
+ Type type = field.getGenericType();
+ if(type instanceof ParameterizedType) {
+ ParameterizedType pt = (ParameterizedType) type;
+ Class genericClazz = (Class) pt.getActualTypeArguments()[0];
+ Converter converter = converterMap.get(genericClazz);
+ for (Object object : value) {
+ if (object instanceof Map<?, ?>) {
+ list.add(convertJson2Object(object, genericClazz));
+ }else {
+ list.add(converter.convertJson(object, field));
+ }
+ }
+ }
+
+ return list;
+ }
+
+ public static String convertObject2Json(Object object) {
+ try {
+ JSONWriter jsonWriter = new JSONWriter();
+ return jsonWriter.write(object);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private static boolean isContainProp(Field[] fields, String nodeName) {
+
+ if(fields == null || fields.length < 0) {
+ return false;
+ }
+
+ if(nodeName == null || "".equals(nodeName)) {
+ return false;
+ }
+
+ for(Field field : fields) {
+ if(field.getName().equals(nodeName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/Sign.java b/src/main/java/com/best/javaSdk/Sign.java
new file mode 100644
index 0000000..315b1d5
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/Sign.java
@@ -0,0 +1,53 @@
+package com.best.javaSdk;
+
+import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+public class Sign {
+ public static String makeSign(Param param){
+ String signString = makeSignString(param);
+ String sign = "";
+ try {
+ sign = digestEncrypte(signString.getBytes("utf-8"), "MD5");
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return sign;
+ }
+
+ public static String makeBase64Sign(Param param){
+ String signString = makeSignString(param);
+ String sign = "";
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ md.update(signString.getBytes("utf-8"));
+ byte[] b = md.digest();
+ sign = (new sun.misc.BASE64Encoder()).encode(b);
+ }catch (Throwable e) {
+ e.printStackTrace();
+ }
+ return sign;
+ }
+
+ private static String makeSignString(Param param) {
+ String signString = param.getBizData() + param.getPartnerKey(); return signString;
+ }
+
+ public static String digestEncrypte(byte[] plainText, String algorithm) throws NoSuchAlgorithmException, UnsupportedEncodingException {
+ MessageDigest md = MessageDigest.getInstance(algorithm);
+ md.update(plainText);
+ byte[] b = md.digest();
+ StringBuilder output = new StringBuilder(32);
+ for (int i = 0; i < b.length; i++) {
+ String temp = Integer.toHexString(b[i] & 0xff);
+ if (temp.length() < 2) {
+ output.append("0");
+ }
+ output.append(temp);
+ }
+ return output.toString();
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/Converter.java b/src/main/java/com/best/javaSdk/converter/Converter.java
new file mode 100644
index 0000000..f7e3a89
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/Converter.java
@@ -0,0 +1,15 @@
+package com.best.javaSdk.converter;
+
+import org.w3c.dom.Node;
+
+import java.lang.reflect.Field;
+
+public interface Converter {
+
+ Object convertXml(Node node, Field field);
+
+ String xmlReverse(Object propValue, Field prop);
+
+ Object convertJson(Object value, Field field);
+
+}
diff --git a/src/main/java/com/best/javaSdk/converter/ConverterUtil.java b/src/main/java/com/best/javaSdk/converter/ConverterUtil.java
new file mode 100644
index 0000000..dff3f8b
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/ConverterUtil.java
@@ -0,0 +1,12 @@
+package com.best.javaSdk.converter;
+
+public class ConverterUtil {
+ public static Object convert(Class<?> type, String value){
+ if(type.isAssignableFrom(int.class)){
+ return Integer.parseInt(value);
+ }else if(type.isAssignableFrom(double.class)){
+ return Double.valueOf(value);
+ }
+ return value;
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/XmlConverter.java b/src/main/java/com/best/javaSdk/converter/XmlConverter.java
new file mode 100644
index 0000000..0e50889
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/XmlConverter.java
@@ -0,0 +1,12 @@
+package com.best.javaSdk.converter;
+
+import org.w3c.dom.Node;
+
+import java.lang.reflect.Field;
+
+public interface XmlConverter {
+
+ Object convert(Node node, Field field);
+
+ String reverse(Object propValue, Field prop);
+}
diff --git a/src/main/java/com/best/javaSdk/converter/impl/BooleanConverter.java b/src/main/java/com/best/javaSdk/converter/impl/BooleanConverter.java
new file mode 100644
index 0000000..d59aef7
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/impl/BooleanConverter.java
@@ -0,0 +1,25 @@
+package com.best.javaSdk.converter.impl;
+
+import com.best.javaSdk.converter.Converter;
+import org.w3c.dom.Node;
+
+import java.lang.reflect.Field;
+
+public class BooleanConverter implements Converter {
+ @Override
+ public Object convertXml(Node node, Field field) {
+ Node firstChild = node.getFirstChild();
+ return Boolean.parseBoolean(firstChild.getNodeValue());
+ }
+
+ @Override
+ public String xmlReverse(Object propValue, Field prop) {
+ String propName = prop.getName();
+ return com.best.javaSdk.Parser.appendXmlNode(propName, propValue.toString());
+ }
+
+ @Override
+ public Object convertJson(Object value, Field field) {
+ return Boolean.parseBoolean(value.toString());
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/impl/DateConverter.java b/src/main/java/com/best/javaSdk/converter/impl/DateConverter.java
new file mode 100644
index 0000000..fd05673
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/impl/DateConverter.java
@@ -0,0 +1,47 @@
+package com.best.javaSdk.converter.impl;
+
+import com.best.javaSdk.converter.Converter;
+import org.w3c.dom.Node;
+
+import java.lang.reflect.Field;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.TimeZone;
+
+public class DateConverter implements Converter {
+
+ private static DateFormat format;
+
+ static {
+ format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ format.setTimeZone(TimeZone.getTimeZone("GMT+8"));
+ }
+
+ @Override
+ public Object convertXml(Node node, Field field) {
+ Node firstChild = node.getFirstChild();
+ try {
+ return format.parse(firstChild.getNodeValue().toString());
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Override
+ public String xmlReverse(Object propValue, Field prop) {
+ String propName = prop.getName();
+ return com.best.javaSdk.Parser.appendXmlNode(propName, propValue.toString());
+ }
+
+ @Override
+ public Object convertJson(Object value, Field field) {
+ try {
+ return format.parse(value.toString());
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/impl/DoubleConverter.java b/src/main/java/com/best/javaSdk/converter/impl/DoubleConverter.java
new file mode 100644
index 0000000..ae0201c
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/impl/DoubleConverter.java
@@ -0,0 +1,25 @@
+package com.best.javaSdk.converter.impl;
+
+import com.best.javaSdk.converter.Converter;
+import org.w3c.dom.Node;
+
+import java.lang.reflect.Field;
+
+public class DoubleConverter implements Converter {
+ @Override
+ public Object convertXml(Node node, Field field) {
+ Node firstChild = node.getFirstChild();
+ return Double.valueOf(firstChild.getNodeValue());
+ }
+
+ @Override
+ public String xmlReverse(Object propValue, Field prop) {
+ String propName = prop.getName();
+ return com.best.javaSdk.Parser.appendXmlNode(propName, propValue.toString());
+ }
+
+ @Override
+ public Object convertJson(Object value, Field field) {
+ return Double.valueOf(value.toString());
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/impl/FloatConverter.java b/src/main/java/com/best/javaSdk/converter/impl/FloatConverter.java
new file mode 100644
index 0000000..268f04b
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/impl/FloatConverter.java
@@ -0,0 +1,25 @@
+package com.best.javaSdk.converter.impl;
+
+import com.best.javaSdk.converter.Converter;
+import org.w3c.dom.Node;
+
+import java.lang.reflect.Field;
+
+public class FloatConverter implements Converter {
+ @Override
+ public Object convertXml(Node node, Field field) {
+ Node firstChild = node.getFirstChild();
+ return Float.valueOf(firstChild.getNodeValue());
+ }
+
+ @Override
+ public String xmlReverse(Object propValue, Field prop) {
+ String propName = prop.getName();
+ return com.best.javaSdk.Parser.appendXmlNode(propName, propValue.toString());
+ }
+
+ @Override
+ public Object convertJson(Object value, Field field) {
+ return Float.valueOf(value.toString());
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/impl/IntConverter.java b/src/main/java/com/best/javaSdk/converter/impl/IntConverter.java
new file mode 100644
index 0000000..2bac771
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/impl/IntConverter.java
@@ -0,0 +1,24 @@
+package com.best.javaSdk.converter.impl;
+
+import org.w3c.dom.Node;
+
+import java.lang.reflect.Field;
+
+public class IntConverter implements com.best.javaSdk.converter.Converter {
+ @Override
+ public Object convertXml(Node node, Field field) {
+ Node firstChild = node.getFirstChild();
+ return Integer.parseInt(firstChild.getNodeValue());
+ }
+
+ @Override
+ public String xmlReverse(Object propValue, Field prop) {
+ String propName = prop.getName();
+ return com.best.javaSdk.Parser.appendXmlNode(propName, propValue.toString());
+ }
+
+ @Override
+ public Object convertJson(Object value, Field field) {
+ return Integer.parseInt(value.toString());
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/impl/LongConverter.java b/src/main/java/com/best/javaSdk/converter/impl/LongConverter.java
new file mode 100644
index 0000000..f7b57ca
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/impl/LongConverter.java
@@ -0,0 +1,25 @@
+package com.best.javaSdk.converter.impl;
+
+import com.best.javaSdk.converter.Converter;
+import org.w3c.dom.Node;
+
+import java.lang.reflect.Field;
+
+public class LongConverter implements Converter {
+ @Override
+ public Object convertXml(Node node, Field field) {
+ Node firstChild = node.getFirstChild();
+ return Long.valueOf(firstChild.getNodeValue());
+ }
+
+ @Override
+ public String xmlReverse(Object propValue, Field prop) {
+ String propName = prop.getName();
+ return com.best.javaSdk.Parser.appendXmlNode(propName, propValue.toString());
+ }
+
+ @Override
+ public Object convertJson(Object value, Field field) {
+ return Long.valueOf(value.toString());
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/impl/StringConverter.java b/src/main/java/com/best/javaSdk/converter/impl/StringConverter.java
new file mode 100644
index 0000000..3b8195c
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/impl/StringConverter.java
@@ -0,0 +1,25 @@
+package com.best.javaSdk.converter.impl;
+
+import com.best.javaSdk.converter.Converter;
+import org.w3c.dom.Node;
+
+import java.lang.reflect.Field;
+
+public class StringConverter implements Converter {
+ @Override
+ public Object convertXml(Node node, Field field) {
+ Node firstChild = node.getFirstChild();
+ return firstChild.getNodeValue();
+ }
+
+ @Override
+ public String xmlReverse(Object propValue, Field prop) {
+ String propName = prop.getName();
+ return com.best.javaSdk.Parser.appendXmlNode(propName, propValue.toString());
+ }
+
+ @Override
+ public Object convertJson(Object value, Field field) {
+ return value.toString();
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/util/jsonReader/BufferErrorListener.java b/src/main/java/com/best/javaSdk/converter/util/jsonReader/BufferErrorListener.java
new file mode 100644
index 0000000..2dea0fa
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/util/jsonReader/BufferErrorListener.java
@@ -0,0 +1,41 @@
+package com.best.javaSdk.converter.util.jsonReader;
+
+public class BufferErrorListener implements JSONErrorListener {
+
+ protected StringBuffer buffer;
+ private String input;
+
+ public BufferErrorListener(StringBuffer buffer) {
+ this.buffer = buffer;
+ }
+
+ public BufferErrorListener() {
+ this(new StringBuffer());
+ }
+
+ public void start(String input) {
+ this.input = input;
+ buffer.setLength(0);
+ }
+
+ public void error(String type, int col) {
+ buffer.append("expected ");
+ buffer.append(type);
+ buffer.append(" at column ");
+ buffer.append(col);
+ buffer.append("\n");
+ buffer.append(input);
+ buffer.append("\n");
+ indent(col-1, buffer);
+ buffer.append("^");
+ }
+
+ private void indent(int n, StringBuffer ret) {
+ for (int i = 0; i< n; ++i) {
+ ret.append(' ');
+ }
+ }
+
+ public void end() {
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/util/jsonReader/ExceptionErrorListener.java b/src/main/java/com/best/javaSdk/converter/util/jsonReader/ExceptionErrorListener.java
new file mode 100644
index 0000000..21eaf32
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/util/jsonReader/ExceptionErrorListener.java
@@ -0,0 +1,9 @@
+package com.best.javaSdk.converter.util.jsonReader;
+
+public class ExceptionErrorListener extends BufferErrorListener {
+
+ public void error(String type, int col) {
+ super.error(type, col);
+ throw new IllegalArgumentException(buffer.toString());
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONErrorListener.java b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONErrorListener.java
new file mode 100644
index 0000000..d7a483e
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONErrorListener.java
@@ -0,0 +1,7 @@
+package com.best.javaSdk.converter.util.jsonReader;
+
+public interface JSONErrorListener {
+ void start(String text);
+ void error(String message, int column);
+ void end();
+}
diff --git a/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONReader.java b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONReader.java
new file mode 100644
index 0000000..23da6a7
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONReader.java
@@ -0,0 +1,238 @@
+package com.best.javaSdk.converter.util.jsonReader;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.text.CharacterIterator;
+import java.text.StringCharacterIterator;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 不能直接使用JSONReader,请用JSONValidatingReader,所以这里改为abstract修饰。
+ */
+public abstract class JSONReader {
+
+ private static final Object OBJECT_END = new Object();
+ private static final Object ARRAY_END = new Object();
+ private static final Object COLON = new Object();
+ private static final Object COMMA = new Object();
+ public static final int FIRST = 0;
+ public static final int CURRENT = 1;
+ public static final int NEXT = 2;
+
+ private static Map<Character, Character> escapes = new HashMap<Character, Character>();
+ static {
+ escapes.put(Character.valueOf('"'), Character.valueOf('"'));
+ escapes.put(Character.valueOf('\\'), Character.valueOf('\\'));
+ escapes.put(Character.valueOf('/'), Character.valueOf('/'));
+ escapes.put(Character.valueOf('b'), Character.valueOf('\b'));
+ escapes.put(Character.valueOf('f'), Character.valueOf('\f'));
+ escapes.put(Character.valueOf('n'), Character.valueOf('\n'));
+ escapes.put(Character.valueOf('r'), Character.valueOf('\r'));
+ escapes.put(Character.valueOf('t'), Character.valueOf('\t'));
+ }
+
+ private CharacterIterator it;
+ private char c;
+ private Object token;
+ private StringBuffer buf = new StringBuffer();
+
+ private char next() {
+ c = it.next();
+ return c;
+ }
+
+ private void skipWhiteSpace() {
+ while (Character.isWhitespace(c)) {
+ next();
+ }
+ }
+
+ /**
+ * 2
+ * @param ci
+ * @param start
+ * @return
+ */
+ public Object read(CharacterIterator ci, int start) {
+ it = ci;
+ switch (start) {
+ case FIRST:
+ c = it.first();
+ break;
+ case CURRENT:
+ c = it.current();
+ break;
+ case NEXT:
+ c = it.next();
+ break;
+ }
+ return read();
+ }
+
+ public Object read(CharacterIterator it) {
+ return read(it, NEXT);
+ }
+
+ /**
+ * 1
+ * @param string
+ * @return
+ */
+ public Object read(String string) {
+ return read(new StringCharacterIterator(string), FIRST);
+ }
+
+ /**
+ * 3
+ * @return
+ */
+ private Object read() {
+ skipWhiteSpace();
+ char ch = c;
+ next();
+ switch (ch) {
+ case '"': token = string(); break;
+ case '[': token = array(); break;
+ case ']': token = ARRAY_END; break;
+ case ',': token = COMMA; break;
+ case '{': token = object(); break;
+ case '}': token = OBJECT_END; break;
+ case ':': token = COLON; break;
+ case 't':
+ next(); next(); next(); // assumed r-u-e
+ token = Boolean.TRUE;
+ break;
+ case'f':
+ next(); next(); next(); next(); // assumed a-l-s-e
+ token = Boolean.FALSE;
+ break;
+ case 'n':
+ next(); next(); next(); // assumed u-l-l
+ token = null;
+ break;
+ default:
+ c = it.previous();
+ if (Character.isDigit(c) || c == '-') {
+ token = number();
+ }
+ }
+ // System.out.println("token: " + token); // enable this line to see the token stream
+ return token;
+ }
+
+ private Object object() {
+ Map<Object, Object> ret = new HashMap<Object, Object>();
+ Object key = read();
+ while (token != OBJECT_END) {
+ read(); // should be a colon
+ if (token != OBJECT_END) {
+ ret.put(key, read());
+ if (read() == COMMA) {
+ key = read();
+ }
+ }
+ }
+
+ return ret;
+ }
+
+ private Object array() {
+ List<Object> ret = new ArrayList<Object>();
+ Object value = read();
+ while (token != ARRAY_END) {
+ ret.add(value);
+ if (read() == COMMA) {
+ value = read();
+ }
+ }
+ return ret;
+ }
+
+ private Object number() {
+ int length = 0;
+ boolean isFloatingPoint = false;
+ buf.setLength(0);
+
+ if (c == '-') {
+ add();
+ }
+ length += addDigits();
+ if (c == '.') {
+ add();
+ length += addDigits();
+ isFloatingPoint = true;
+ }
+ if (c == 'e' || c == 'E') {
+ add();
+ if (c == '+' || c == '-') {
+ add();
+ }
+ addDigits();
+ isFloatingPoint = true;
+ }
+
+ String s = buf.toString();
+ return isFloatingPoint ? (length < 17) ? (Object)Double.valueOf(s) : new BigDecimal(s) : (length < 19) ? (Object)Long.valueOf(s) : new BigInteger(s);
+ }
+
+ private int addDigits() {
+ int ret;
+ for (ret = 0; Character.isDigit(c); ++ret) {
+ add();
+ }
+ return ret;
+ }
+
+ private Object string() {
+ buf.setLength(0);
+ while (c != '"') {
+ if (c == '\\') {
+ next();
+ if (c == 'u') {
+ add(unicode());
+ } else {
+ Object value = escapes.get(Character.valueOf(c));
+ if (value != null) {
+ add(((Character) value).charValue());
+ }
+ }
+ } else {
+ add();
+ }
+ }
+ next();
+
+ return buf.toString();
+ }
+
+ private void add(char cc) {
+ buf.append(cc);
+ next();
+ }
+
+ private void add() {
+ add(c);
+ }
+
+ private char unicode() {
+ int value = 0;
+ for (int i = 0; i < 4; ++i) {
+ switch (next()) {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ value = (value << 4) + c - '0';
+ break;
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ value = (value << 4) + c - 'k';
+ break;
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ value = (value << 4) + c - 'K';
+ break;
+ }
+ }
+ return (char) value;
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidatingReader.java b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidatingReader.java
new file mode 100644
index 0000000..1014681
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidatingReader.java
@@ -0,0 +1,23 @@
+package com.best.javaSdk.converter.util.jsonReader;
+
+public class JSONValidatingReader extends JSONReader {
+ public static final Object INVALID = new Object();
+ private JSONValidator validator;
+
+ public JSONValidatingReader(JSONValidator validator) {
+ this.validator = validator;
+ }
+
+ public JSONValidatingReader(ExceptionErrorListener listener) {
+ this(new JSONValidator(listener));
+ }
+
+/* public JSONValidatingReader() {
+ this(new StdoutStreamErrorListener());
+ }*/
+
+ public Object read(String string) {
+ if (!validator.validate(string)) return INVALID;
+ return super.read(string);
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidatingWriter.java b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidatingWriter.java
new file mode 100644
index 0000000..ac2e30e
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidatingWriter.java
@@ -0,0 +1,56 @@
+package com.best.javaSdk.converter.util.jsonReader;
+
+public class JSONValidatingWriter extends JSONWriter {
+
+ private JSONValidator validator;
+
+ public JSONValidatingWriter(JSONValidator validator, boolean emitClassName) {
+ super(emitClassName);
+ this.validator = validator;
+ }
+
+ public JSONValidatingWriter(JSONValidator validator) {
+ this.validator = validator;
+ }
+
+ public JSONValidatingWriter(JSONErrorListener listener, boolean emitClassName) {
+ this(new JSONValidator(listener), emitClassName);
+ }
+
+ public JSONValidatingWriter(JSONErrorListener listener) {
+ this(new JSONValidator(listener));
+ }
+
+ public JSONValidatingWriter() {
+ this(new StdoutStreamErrorListener());
+ }
+
+ public JSONValidatingWriter(boolean emitClassName) {
+ this(new StdoutStreamErrorListener(), emitClassName);
+ }
+
+ private String validate(String text) {
+ validator.validate(text);
+ return text;
+ }
+
+ public String write(Object object) {
+ return validate(super.write(object));
+ }
+
+ public String write(long n) {
+ return validate(super.write(n));
+ }
+
+ public String write(double d) {
+ return validate(super.write(d));
+ }
+
+ public String write(char c) {
+ return validate(super.write(c));
+ }
+
+ public String write(boolean b) {
+ return validate(super.write(b));
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidator.java b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidator.java
new file mode 100644
index 0000000..cf55cd3
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONValidator.java
@@ -0,0 +1,214 @@
+package com.best.javaSdk.converter.util.jsonReader;
+
+import java.text.CharacterIterator;
+import java.text.StringCharacterIterator;
+
+public class JSONValidator {
+
+ private JSONErrorListener listener;
+ private CharacterIterator it;
+ private char c;
+ private int col;
+
+ public JSONValidator(JSONErrorListener listener) {
+ this.listener = listener;
+ }
+
+ public boolean validate(String input) {
+ input = input.trim();
+ listener.start(input);
+ boolean ret = valid(input);
+ listener.end();
+ return ret;
+ }
+
+ private boolean valid(String input) {
+ if ("".equals(input)) return true;
+
+ boolean ret = true;
+ it = new StringCharacterIterator(input);
+ c = it.first();
+ col = 1;
+ if (!value()) {
+ ret = error("value", 1);
+ } else {
+ skipWhiteSpace();
+ if (c != CharacterIterator.DONE) {
+ ret = error("end", col);
+ }
+ }
+
+ return ret;
+ }
+
+ private boolean value() {
+ return
+ literal("true") ||
+ literal("false") ||
+ literal("null") ||
+ string() ||
+ number() ||
+ object() ||
+ array();
+ }
+
+ private boolean literal(String text) {
+ CharacterIterator ci = new StringCharacterIterator(text);
+ char t = ci.first();
+ if (c != t) return false;
+
+ int start = col;
+ boolean ret = true;
+ for (t = ci.next(); t != CharacterIterator.DONE; t = ci.next()) {
+ if (t != nextCharacter()) {
+ ret = false;
+ break;
+ }
+ }
+ nextCharacter();
+
+ if (!ret) error("literal " + text, start);
+ return ret;
+ }
+
+ private boolean array() {
+ return aggregate('[', ']', false);
+ }
+
+ private boolean object() {
+ return aggregate('{', '}', true);
+ }
+
+ private boolean aggregate(char entryCharacter, char exitCharacter, boolean prefix) {
+ if (c != entryCharacter) return false;
+ nextCharacter();
+ skipWhiteSpace();
+ if (c == exitCharacter) {
+ nextCharacter();
+ return true;
+ }
+
+ for(;;) {
+ if (prefix) {
+ int start = col;
+ if (!string()) return error("string", start);
+ skipWhiteSpace();
+ if (c != ':') return error("colon", col);
+ nextCharacter();
+ skipWhiteSpace();
+ }
+ if (value()) {
+ skipWhiteSpace();
+ if (c == ',') {
+ nextCharacter();
+ } else if (c == exitCharacter) {
+ break;
+ } else {
+ return error("comma or " + exitCharacter, col);
+ }
+ } else {
+ return error("value", col);
+ }
+ skipWhiteSpace();
+ }
+
+ nextCharacter();
+ return true;
+ }
+
+ private boolean number() {
+ if (!Character.isDigit(c) && c != '-') return false;
+ int start = col;
+
+ if (c == '-') nextCharacter();
+
+ if (c == '0') {
+ nextCharacter();
+ } else if (Character.isDigit(c)) {
+ while(Character.isDigit(c)) nextCharacter();
+ } else {
+ return error("number", start);
+ }
+
+ if (c == '.') {
+ nextCharacter();
+ if (Character.isDigit(c)) {
+ while(Character.isDigit(c)) nextCharacter();
+ } else {
+ return error("number", start);
+ }
+ }
+
+ if (c == 'e' || c == 'E') {
+ nextCharacter();
+ if (c == '+' || c=='-') {
+ nextCharacter();
+ }
+ if (Character.isDigit(c)) {
+ while(Character.isDigit(c)) nextCharacter();
+ } else {
+ return error("number", start);
+ }
+ }
+
+ return true;
+ }
+
+ private boolean string() {
+ if (c != '"') return false;
+
+ int start = col;
+ boolean escaped = false;
+
+ for (nextCharacter(); c != CharacterIterator.DONE; nextCharacter()) {
+ if (!escaped && c == '\\') {
+ escaped = true;
+ } else if (escaped) {
+ if (!escape()) {
+ return false;
+ }
+ escaped = false;
+ } else if (c == '"') {
+ nextCharacter();
+ return true;
+ }
+ }
+
+ return error("quoted string", start);
+ }
+
+ private boolean escape() {
+ int start = col-1;
+ if ("\\\"/bfnrtu".indexOf(c) < 0) {
+ return error("escape sequence \\\",\\\\,\\/,\\b,\\f,\\n,\\r,\\t or \\uxxxx", start);
+ }
+ if (c == 'u') {
+ if (!ishex(nextCharacter()) || !ishex(nextCharacter()) ||
+ !ishex(nextCharacter()) || !ishex(nextCharacter())) {
+ return error("unicode escape sequence \\uxxxx", start);
+ }
+ }
+ return true;
+ }
+
+ private boolean ishex(char d) {
+ return "0123456789abcdefABCDEF".indexOf(c) >= 0;
+ }
+
+ private char nextCharacter() {
+ c = it.next();
+ ++col;
+ return c;
+ }
+
+ private void skipWhiteSpace() {
+ while (Character.isWhitespace(c)) {
+ nextCharacter();
+ }
+ }
+
+ private boolean error(String type, int col) {
+ if (listener != null) listener.error(type, col);
+ return false;
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONWriter.java b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONWriter.java
new file mode 100644
index 0000000..f52914a
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/util/jsonReader/JSONWriter.java
@@ -0,0 +1,221 @@
+package com.best.javaSdk.converter.util.jsonReader;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Array;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.text.CharacterIterator;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.text.StringCharacterIterator;
+import java.util.*;
+
+public class JSONWriter {
+
+ private StringBuffer buf = new StringBuffer();
+ private Stack<Object> calls = new Stack<Object>();
+ private boolean emitClassName = true;
+ private DateFormat format;
+
+ public JSONWriter(boolean emitClassName) {
+ this.emitClassName = emitClassName;
+ }
+
+ public JSONWriter() {
+ this(false);
+ }
+
+ public JSONWriter(DateFormat format) {
+ this(false);
+ this.format = format;
+ }
+
+ public String write(Object object) {
+ buf.setLength(0);
+ value(object);
+ return buf.toString();
+ }
+
+ public String write(long n) {
+ return String.valueOf(n);
+ }
+
+ public String write(double d) {
+ return String.valueOf(d);
+ }
+
+ public String write(char c) {
+ return "\"" + c + "\"";
+ }
+
+ public String write(boolean b) {
+ return String.valueOf(b);
+ }
+
+ private void value(Object object) {
+ if (object == null || cyclic(object)) {
+ add(null);
+ } else {
+ calls.push(object);
+ if (object instanceof Class<?>) string(object);
+ else if (object instanceof Boolean) bool(((Boolean) object).booleanValue());
+ else if (object instanceof Number) add(object);
+ else if (object instanceof String) string(object);
+ else if (object instanceof Character) string(object);
+ else if (object instanceof Map<?, ?>) map((Map<?, ?>)object);
+ else if (object.getClass().isArray()) array(object);
+ else if (object instanceof Iterator<?>) array((Iterator<?>)object);
+ else if (object instanceof Collection<?>) array(((Collection<?>)object).iterator());
+ else if (object instanceof Date) date((Date)object);
+ else bean(object);
+ calls.pop();
+ }
+ }
+
+ private boolean cyclic(Object object) {
+ Iterator<Object> it = calls.iterator();
+ while (it.hasNext()) {
+ Object called = it.next();
+ if (object == called) return true;
+ }
+ return false;
+ }
+
+ private void bean(Object object) {
+ add("{");
+ BeanInfo info;
+ boolean addedSomething = false;
+ try {
+ info = Introspector.getBeanInfo(object.getClass());
+ PropertyDescriptor[] props = info.getPropertyDescriptors();
+ for (int i = 0; i < props.length; ++i) {
+ PropertyDescriptor prop = props[i];
+ String name = prop.getName();
+ Method accessor = prop.getReadMethod();
+ if ((emitClassName || !"class".equals(name)) && accessor != null) {
+ if (!accessor.isAccessible()) accessor.setAccessible(true);
+ Object value = accessor.invoke(object, (Object[])null);
+ if (value == null) continue;
+ if (addedSomething) add(',');
+ add(name, value);
+ addedSomething = true;
+ }
+ }
+ Field[] ff = object.getClass().getFields();
+ for (int i = 0; i < ff.length; ++i) {
+ Field field = ff[i];
+ Object value = field.get(object);
+ if (value == null) continue;
+ if (addedSomething) add(',');
+ add(field.getName(), value);
+ addedSomething = true;
+ }
+ } catch (IllegalAccessException iae) {
+ iae.printStackTrace();
+ } catch (InvocationTargetException ite) {
+ ite.getCause().printStackTrace();
+ ite.printStackTrace();
+ } catch (IntrospectionException ie) {
+ ie.printStackTrace();
+ }
+ add("}");
+ }
+
+ private void add(String name, Object value) {
+ add('"');
+ add(name);
+ add("\":");
+ value(value);
+ }
+
+ private void map(Map<?, ?> map) {
+ add("{");
+ Iterator<?> it = map.entrySet().iterator();
+ while (it.hasNext()) {
+ Map.Entry<?, ?> e = (Map.Entry<?, ?>) it.next();
+ value(e.getKey());
+ add(":");
+ value(e.getValue());
+ if (it.hasNext()) add(',');
+ }
+ add("}");
+ }
+
+ private void array(Iterator<?> it) {
+ add("[");
+ while (it.hasNext()) {
+ value(it.next());
+ if (it.hasNext()) add(",");
+ }
+ add("]");
+ }
+
+ private void array(Object object) {
+ add("[");
+ int length = Array.getLength(object);
+ for (int i = 0; i < length; ++i) {
+ value(Array.get(object, i));
+ if (i < length - 1) add(',');
+ }
+ add("]");
+ }
+
+ private void bool(boolean b) {
+ add(b ? "true" : "false");
+ }
+
+ private void date(Date date) {
+ if (this.format == null) {
+ this.format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ this.format.setTimeZone(TimeZone.getTimeZone("GMT+8"));
+ }
+ add("\"");
+ add(format.format(date));
+ add("\"");
+ }
+
+ private void string(Object obj) {
+ add('"');
+ CharacterIterator it = new StringCharacterIterator(obj.toString());
+ for (char c = it.first(); c != CharacterIterator.DONE; c = it.next()) {
+ if (c == '"') add("\\\"");
+ else if (c == '\\') add("\\\\");
+ else if (c == '/') add("\\/");
+ else if (c == '\b') add("\\b");
+ else if (c == '\f') add("\\f");
+ else if (c == '\n') add("\\n");
+ else if (c == '\r') add("\\r");
+ else if (c == '\t') add("\\t");
+ else if (Character.isISOControl(c)) {
+ unicode(c);
+ } else {
+ add(c);
+ }
+ }
+ add('"');
+ }
+
+ private void add(Object obj) {
+ buf.append(obj);
+ }
+
+ private void add(char c) {
+ buf.append(c);
+ }
+
+ static char[] hex = "0123456789ABCDEF".toCharArray();
+
+ private void unicode(char c) {
+ add("\\u");
+ int n = c;
+ for (int i = 0; i < 4; ++i) {
+ int digit = (n & 0xf000) >> 12;
+ add(hex[digit]);
+ n <<= 4;
+ }
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/converter/util/jsonReader/StdoutStreamErrorListener.java b/src/main/java/com/best/javaSdk/converter/util/jsonReader/StdoutStreamErrorListener.java
new file mode 100644
index 0000000..b1f015f
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/converter/util/jsonReader/StdoutStreamErrorListener.java
@@ -0,0 +1,8 @@
+package com.best.javaSdk.converter.util.jsonReader;
+
+public class StdoutStreamErrorListener extends BufferErrorListener {
+
+ public void end() {
+ System.out.print(buffer.toString());
+ }
+}
diff --git a/src/main/java/com/best/javaSdk/kdCancelOrderNotify/request/KdCancelOrderNotifyReq.java b/src/main/java/com/best/javaSdk/kdCancelOrderNotify/request/KdCancelOrderNotifyReq.java
new file mode 100644
index 0000000..a5748a0
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCancelOrderNotify/request/KdCancelOrderNotifyReq.java
@@ -0,0 +1,44 @@
+package com.best.javaSdk.kdCancelOrderNotify.request;
+
+import com.best.javaSdk.BaseRequest;
+import com.best.javaSdk.BaseResponse;
+import com.best.javaSdk.Parser;
+
+
+public class KdCancelOrderNotifyReq implements BaseRequest {
+ private String txLogisticId;
+ private String reason;
+
+ public String getTxLogisticId()
+ {
+ return this.txLogisticId;
+ }
+
+ public void setTxLogisticId(String value)
+ {
+ this.txLogisticId = value;
+ }
+
+ public String getReason()
+ {
+ return this.reason;
+ }
+
+ public void setReason(String value)
+ {
+ this.reason = value;
+ }
+
+ public String obtainServiceType() {
+ return "KD_CANCEL_ORDER_NOTIFY";
+ }
+
+ public BaseResponse makeResponse(String rsp, String format) {
+ if ("xml".equalsIgnoreCase(format)) {
+ return Parser.coverXml2Object(rsp, com.best.javaSdk.kdCancelOrderNotify.response.KdCancelOrderNotifyRsp.class);
+ }
+ return Parser.convertJson2Object(rsp, com.best.javaSdk.kdCancelOrderNotify.response.KdCancelOrderNotifyRsp.class);
+
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCancelOrderNotify/response/KdCancelOrderNotifyRsp.java b/src/main/java/com/best/javaSdk/kdCancelOrderNotify/response/KdCancelOrderNotifyRsp.java
new file mode 100644
index 0000000..45a68e7
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCancelOrderNotify/response/KdCancelOrderNotifyRsp.java
@@ -0,0 +1,53 @@
+package com.best.javaSdk.kdCancelOrderNotify.response;
+
+import com.best.javaSdk.BaseResponse;
+
+
+public class KdCancelOrderNotifyRsp implements BaseResponse {
+ private boolean result;
+ private String remark;
+ private String errorCode;
+ private String errorDescription;
+
+ public boolean getResult()
+ {
+ return this.result;
+ }
+
+ public void setResult(boolean value)
+ {
+ this.result = value;
+ }
+
+ public String getRemark()
+ {
+ return this.remark;
+ }
+
+ public void setRemark(String value)
+ {
+ this.remark = value;
+ }
+
+ public String getErrorCode()
+ {
+ return this.errorCode;
+ }
+
+ public void setErrorCode(String value)
+ {
+ this.errorCode = value;
+ }
+
+ public String getErrorDescription()
+ {
+ return this.errorDescription;
+ }
+
+ public void setErrorDescription(String value)
+ {
+ this.errorDescription = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Item.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Item.java
new file mode 100644
index 0000000..52f8964
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Item.java
@@ -0,0 +1,74 @@
+package com.best.javaSdk.kdCreateWaybillOrderNotify.request;
+
+
+
+public class Item {
+ private long itemCount;
+ private long itemWeight;
+ private long itemLength;
+ private long itemWidth;
+ private long itemHeight;
+ private String itemName;
+
+ public long getItemCount()
+ {
+ return this.itemCount;
+ }
+
+ public void setItemCount(long value)
+ {
+ this.itemCount = value;
+ }
+
+ public long getItemWeight()
+ {
+ return this.itemWeight;
+ }
+
+ public void setItemWeight(long value)
+ {
+ this.itemWeight = value;
+ }
+
+ public long getItemLength()
+ {
+ return this.itemLength;
+ }
+
+ public void setItemLength(long value)
+ {
+ this.itemLength = value;
+ }
+
+ public long getItemWidth()
+ {
+ return this.itemWidth;
+ }
+
+ public void setItemWidth(long value)
+ {
+ this.itemWidth = value;
+ }
+
+ public long getItemHeight()
+ {
+ return this.itemHeight;
+ }
+
+ public void setItemHeight(long value)
+ {
+ this.itemHeight = value;
+ }
+
+ public String getItemName()
+ {
+ return this.itemName;
+ }
+
+ public void setItemName(String value)
+ {
+ this.itemName = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Items.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Items.java
new file mode 100644
index 0000000..065e9b5
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Items.java
@@ -0,0 +1,20 @@
+package com.best.javaSdk.kdCreateWaybillOrderNotify.request;
+
+import com.best.javaSdk.kdCreateWaybillOrderNotify.request.Item;
+import java.util.List;
+
+
+public class Items {
+ private List<Item> item;
+
+ public List<Item> getItem()
+ {
+ return this.item;
+ }
+
+ public void setItem(List<Item> value)
+ {
+ this.item = value;
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/KdCreateWaybillOrderNotifyReq.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/KdCreateWaybillOrderNotifyReq.java
new file mode 100644
index 0000000..2e96dcc
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/KdCreateWaybillOrderNotifyReq.java
@@ -0,0 +1,333 @@
+package com.best.javaSdk.kdCreateWaybillOrderNotify.request;
+
+import com.best.javaSdk.kdCreateWaybillOrderNotify.request.Sender;
+import com.best.javaSdk.kdCreateWaybillOrderNotify.request.Receiver;
+import com.best.javaSdk.kdCreateWaybillOrderNotify.request.Items;
+import com.best.javaSdk.BaseRequest;
+import com.best.javaSdk.BaseResponse;
+import com.best.javaSdk.Parser;
+
+
+public class KdCreateWaybillOrderNotifyReq implements BaseRequest {
+ private long piece;
+ private double length;
+ private double width;
+ private double height;
+ private String customerName;
+ private String txLogisticId;
+ private String mailNo;
+ private String tradeNo;
+ private String serviceType;
+ private long sendStartTime;
+ private long sendEndTime;
+ private String recSite;
+ private double goodsValue;
+ private double itemsValue;
+ private double insuranceValue;
+ private String special;
+ private String bankCardOwner;
+ private String bankCode;
+ private String bankCardNo;
+ private String remark;
+ private Sender sender;
+ private Receiver receiver;
+ private Items items;
+ private double itemsWeight;
+ private String certificateType;
+ private String certificateNo;
+ private String deliverySite;
+ private String deliveryType;
+
+ public long getPiece()
+ {
+ return this.piece;
+ }
+
+ public void setPiece(long value)
+ {
+ this.piece = value;
+ }
+
+ public double getLength()
+ {
+ return this.length;
+ }
+
+ public void setLength(double value)
+ {
+ this.length = value;
+ }
+
+ public double getWidth()
+ {
+ return this.width;
+ }
+
+ public void setWidth(double value)
+ {
+ this.width = value;
+ }
+
+ public double getHeight()
+ {
+ return this.height;
+ }
+
+ public void setHeight(double value)
+ {
+ this.height = value;
+ }
+
+ public String getCustomerName()
+ {
+ return this.customerName;
+ }
+
+ public void setCustomerName(String value)
+ {
+ this.customerName = value;
+ }
+
+ public String getTxLogisticId()
+ {
+ return this.txLogisticId;
+ }
+
+ public void setTxLogisticId(String value)
+ {
+ this.txLogisticId = value;
+ }
+
+ public String getMailNo()
+ {
+ return this.mailNo;
+ }
+
+ public void setMailNo(String value)
+ {
+ this.mailNo = value;
+ }
+
+ public String getTradeNo()
+ {
+ return this.tradeNo;
+ }
+
+ public void setTradeNo(String value)
+ {
+ this.tradeNo = value;
+ }
+
+ public String getServiceType()
+ {
+ return this.serviceType;
+ }
+
+ public void setServiceType(String value)
+ {
+ this.serviceType = value;
+ }
+
+ public long getSendStartTime()
+ {
+ return this.sendStartTime;
+ }
+
+ public void setSendStartTime(long value)
+ {
+ this.sendStartTime = value;
+ }
+
+ public long getSendEndTime()
+ {
+ return this.sendEndTime;
+ }
+
+ public void setSendEndTime(long value)
+ {
+ this.sendEndTime = value;
+ }
+
+ public String getRecSite()
+ {
+ return this.recSite;
+ }
+
+ public void setRecSite(String value)
+ {
+ this.recSite = value;
+ }
+
+ public double getGoodsValue()
+ {
+ return this.goodsValue;
+ }
+
+ public void setGoodsValue(double value)
+ {
+ this.goodsValue = value;
+ }
+
+ public double getItemsValue()
+ {
+ return this.itemsValue;
+ }
+
+ public void setItemsValue(double value)
+ {
+ this.itemsValue = value;
+ }
+
+ public double getInsuranceValue()
+ {
+ return this.insuranceValue;
+ }
+
+ public void setInsuranceValue(double value)
+ {
+ this.insuranceValue = value;
+ }
+
+ public String getSpecial()
+ {
+ return this.special;
+ }
+
+ public void setSpecial(String value)
+ {
+ this.special = value;
+ }
+
+ public String getBankCardOwner()
+ {
+ return this.bankCardOwner;
+ }
+
+ public void setBankCardOwner(String value)
+ {
+ this.bankCardOwner = value;
+ }
+
+ public String getBankCode()
+ {
+ return this.bankCode;
+ }
+
+ public void setBankCode(String value)
+ {
+ this.bankCode = value;
+ }
+
+ public String getBankCardNo()
+ {
+ return this.bankCardNo;
+ }
+
+ public void setBankCardNo(String value)
+ {
+ this.bankCardNo = value;
+ }
+
+ public String getRemark()
+ {
+ return this.remark;
+ }
+
+ public void setRemark(String value)
+ {
+ this.remark = value;
+ }
+
+ public Sender getSender()
+ {
+ return this.sender;
+ }
+
+ public void setSender(Sender value)
+ {
+ this.sender = value;
+ }
+
+ public Receiver getReceiver()
+ {
+ return this.receiver;
+ }
+
+ public void setReceiver(Receiver value)
+ {
+ this.receiver = value;
+ }
+
+ public Items getItems()
+ {
+ return this.items;
+ }
+
+ public void setItems(Items value)
+ {
+ this.items = value;
+ }
+
+ public double getItemsWeight()
+ {
+ return this.itemsWeight;
+ }
+
+ public void setItemsWeight(double value)
+ {
+ this.itemsWeight = value;
+ }
+
+ public String getCertificateType()
+ {
+ return this.certificateType;
+ }
+
+ public void setCertificateType(String value)
+ {
+ this.certificateType = value;
+ }
+
+ public String getCertificateNo()
+ {
+ return this.certificateNo;
+ }
+
+ public void setCertificateNo(String value)
+ {
+ this.certificateNo = value;
+ }
+
+ public String getDeliverySite()
+ {
+ return this.deliverySite;
+ }
+
+ public void setDeliverySite(String value)
+ {
+ this.deliverySite = value;
+ }
+
+ public String getDeliveryType()
+ {
+ return this.deliveryType;
+ }
+
+ public void setDeliveryType(String value)
+ {
+ this.deliveryType = value;
+ }
+
+ public String obtainServiceType() {
+ return "KD_CREATE_WAYBILL_ORDER_NOTIFY";
+ }
+
+ public BaseResponse makeResponse(String rsp, String format) {
+ if ("xml".equalsIgnoreCase(format)) {
+ return Parser.coverXml2Object(rsp, com.best.javaSdk.kdCreateWaybillOrderNotify.response.KdCreateWaybillOrderNotifyRsp.class);
+ }
+ return Parser.convertJson2Object(rsp, com.best.javaSdk.kdCreateWaybillOrderNotify.response.KdCreateWaybillOrderNotifyRsp.class);
+
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Receiver.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Receiver.java
new file mode 100644
index 0000000..ec56ce3
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Receiver.java
@@ -0,0 +1,107 @@
+package com.best.javaSdk.kdCreateWaybillOrderNotify.request;
+
+
+
+public class Receiver {
+ private String name;
+ private String postCode;
+ private String mobile;
+ private String prov;
+ private String city;
+ private String county;
+ private String address;
+ private String email;
+ private String country;
+
+ public String getName()
+ {
+ return this.name;
+ }
+
+ public void setName(String value)
+ {
+ this.name = value;
+ }
+
+ public String getPostCode()
+ {
+ return this.postCode;
+ }
+
+ public void setPostCode(String value)
+ {
+ this.postCode = value;
+ }
+
+ public String getMobile()
+ {
+ return this.mobile;
+ }
+
+ public void setMobile(String value)
+ {
+ this.mobile = value;
+ }
+
+ public String getProv()
+ {
+ return this.prov;
+ }
+
+ public void setProv(String value)
+ {
+ this.prov = value;
+ }
+
+ public String getCity()
+ {
+ return this.city;
+ }
+
+ public void setCity(String value)
+ {
+ this.city = value;
+ }
+
+ public String getCounty()
+ {
+ return this.county;
+ }
+
+ public void setCounty(String value)
+ {
+ this.county = value;
+ }
+
+ public String getAddress()
+ {
+ return this.address;
+ }
+
+ public void setAddress(String value)
+ {
+ this.address = value;
+ }
+
+ public String getEmail()
+ {
+ return this.email;
+ }
+
+ public void setEmail(String value)
+ {
+ this.email = value;
+ }
+
+ public String getCountry()
+ {
+ return this.country;
+ }
+
+ public void setCountry(String value)
+ {
+ this.country = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Sender.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Sender.java
new file mode 100644
index 0000000..80c8164
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/request/Sender.java
@@ -0,0 +1,107 @@
+package com.best.javaSdk.kdCreateWaybillOrderNotify.request;
+
+
+
+public class Sender {
+ private String name;
+ private String postCode;
+ private String mobile;
+ private String prov;
+ private String city;
+ private String county;
+ private String address;
+ private String email;
+ private String country;
+
+ public String getName()
+ {
+ return this.name;
+ }
+
+ public void setName(String value)
+ {
+ this.name = value;
+ }
+
+ public String getPostCode()
+ {
+ return this.postCode;
+ }
+
+ public void setPostCode(String value)
+ {
+ this.postCode = value;
+ }
+
+ public String getMobile()
+ {
+ return this.mobile;
+ }
+
+ public void setMobile(String value)
+ {
+ this.mobile = value;
+ }
+
+ public String getProv()
+ {
+ return this.prov;
+ }
+
+ public void setProv(String value)
+ {
+ this.prov = value;
+ }
+
+ public String getCity()
+ {
+ return this.city;
+ }
+
+ public void setCity(String value)
+ {
+ this.city = value;
+ }
+
+ public String getCounty()
+ {
+ return this.county;
+ }
+
+ public void setCounty(String value)
+ {
+ this.county = value;
+ }
+
+ public String getAddress()
+ {
+ return this.address;
+ }
+
+ public void setAddress(String value)
+ {
+ this.address = value;
+ }
+
+ public String getEmail()
+ {
+ return this.email;
+ }
+
+ public void setEmail(String value)
+ {
+ this.email = value;
+ }
+
+ public String getCountry()
+ {
+ return this.country;
+ }
+
+ public void setCountry(String value)
+ {
+ this.country = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/response/ChildMailNo.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/response/ChildMailNo.java
new file mode 100644
index 0000000..1821ad9
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/response/ChildMailNo.java
@@ -0,0 +1,19 @@
+package com.best.javaSdk.kdCreateWaybillOrderNotify.response;
+
+import java.util.List;
+
+
+public class ChildMailNo {
+ private List<String> mailNo;
+
+ public List<String> getMailNo()
+ {
+ return this.mailNo;
+ }
+
+ public void setMailNo(List<String> value)
+ {
+ this.mailNo = value;
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/response/KdCreateWaybillOrderNotifyRsp.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/response/KdCreateWaybillOrderNotifyRsp.java
new file mode 100644
index 0000000..528cfdd
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderNotify/response/KdCreateWaybillOrderNotifyRsp.java
@@ -0,0 +1,98 @@
+package com.best.javaSdk.kdCreateWaybillOrderNotify.response;
+
+import com.best.javaSdk.kdCreateWaybillOrderNotify.response.ChildMailNo;
+import com.best.javaSdk.BaseResponse;
+
+
+public class KdCreateWaybillOrderNotifyRsp implements BaseResponse {
+ private ChildMailNo childMailNo;
+ private boolean result;
+ private String txLogisticId;
+ private String mailNo;
+ private String triSortCode;
+ private String packRule;
+ private String errorCode;
+ private String errorDescription;
+
+ public ChildMailNo getChildMailNo()
+ {
+ return this.childMailNo;
+ }
+
+ public void setChildMailNo(ChildMailNo value)
+ {
+ this.childMailNo = value;
+ }
+
+ public boolean getResult()
+ {
+ return this.result;
+ }
+
+ public void setResult(boolean value)
+ {
+ this.result = value;
+ }
+
+ public String getTxLogisticId()
+ {
+ return this.txLogisticId;
+ }
+
+ public void setTxLogisticId(String value)
+ {
+ this.txLogisticId = value;
+ }
+
+ public String getMailNo()
+ {
+ return this.mailNo;
+ }
+
+ public void setMailNo(String value)
+ {
+ this.mailNo = value;
+ }
+
+ public String getTriSortCode()
+ {
+ return this.triSortCode;
+ }
+
+ public void setTriSortCode(String value)
+ {
+ this.triSortCode = value;
+ }
+
+ public String getPackRule()
+ {
+ return this.packRule;
+ }
+
+ public void setPackRule(String value)
+ {
+ this.packRule = value;
+ }
+
+ public String getErrorCode()
+ {
+ return this.errorCode;
+ }
+
+ public void setErrorCode(String value)
+ {
+ this.errorCode = value;
+ }
+
+ public String getErrorDescription()
+ {
+ return this.errorDescription;
+ }
+
+ public void setErrorDescription(String value)
+ {
+ this.errorDescription = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Item.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Item.java
new file mode 100644
index 0000000..d492fab
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Item.java
@@ -0,0 +1,74 @@
+package com.best.javaSdk.kdCreateWaybillOrderPdfNotify.request;
+
+
+
+public class Item {
+ private long itemCount;
+ private long itemWeight;
+ private long itemLength;
+ private long itemWidth;
+ private long itemHeight;
+ private String itemName;
+
+ public long getItemCount()
+ {
+ return this.itemCount;
+ }
+
+ public void setItemCount(long value)
+ {
+ this.itemCount = value;
+ }
+
+ public long getItemWeight()
+ {
+ return this.itemWeight;
+ }
+
+ public void setItemWeight(long value)
+ {
+ this.itemWeight = value;
+ }
+
+ public long getItemLength()
+ {
+ return this.itemLength;
+ }
+
+ public void setItemLength(long value)
+ {
+ this.itemLength = value;
+ }
+
+ public long getItemWidth()
+ {
+ return this.itemWidth;
+ }
+
+ public void setItemWidth(long value)
+ {
+ this.itemWidth = value;
+ }
+
+ public long getItemHeight()
+ {
+ return this.itemHeight;
+ }
+
+ public void setItemHeight(long value)
+ {
+ this.itemHeight = value;
+ }
+
+ public String getItemName()
+ {
+ return this.itemName;
+ }
+
+ public void setItemName(String value)
+ {
+ this.itemName = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Items.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Items.java
new file mode 100644
index 0000000..84c358a
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Items.java
@@ -0,0 +1,20 @@
+package com.best.javaSdk.kdCreateWaybillOrderPdfNotify.request;
+
+import com.best.javaSdk.kdCreateWaybillOrderPdfNotify.request.Item;
+import java.util.List;
+
+
+public class Items {
+ private List<Item> item;
+
+ public List<Item> getItem()
+ {
+ return this.item;
+ }
+
+ public void setItem(List<Item> value)
+ {
+ this.item = value;
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/KdCreateWaybillOrderPdfNotifyReq.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/KdCreateWaybillOrderPdfNotifyReq.java
new file mode 100644
index 0000000..41af936
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/KdCreateWaybillOrderPdfNotifyReq.java
@@ -0,0 +1,333 @@
+package com.best.javaSdk.kdCreateWaybillOrderPdfNotify.request;
+
+import com.best.javaSdk.kdCreateWaybillOrderPdfNotify.request.Sender;
+import com.best.javaSdk.kdCreateWaybillOrderPdfNotify.request.Receiver;
+import com.best.javaSdk.kdCreateWaybillOrderPdfNotify.request.Items;
+import com.best.javaSdk.BaseRequest;
+import com.best.javaSdk.BaseResponse;
+import com.best.javaSdk.Parser;
+
+
+public class KdCreateWaybillOrderPdfNotifyReq implements BaseRequest {
+ private String customerName;
+ private String txLogisticId;
+ private String mailNo;
+ private String tradeNo;
+ private String serviceType;
+ private long sendStartTime;
+ private long sendEndTime;
+ private String recSite;
+ private long piece;
+ private double goodsValue;
+ private double length;
+ private double itemsValue;
+ private double width;
+ private double insuranceValue;
+ private double height;
+ private String special;
+ private String bankCardOwner;
+ private String bankCode;
+ private String bankCardNo;
+ private String remark;
+ private Sender sender;
+ private Receiver receiver;
+ private Items items;
+ private double itemsWeight;
+ private String certificateType;
+ private String certificateNo;
+ private String deliveryType;
+ private String deliverySite;
+
+ public String getCustomerName()
+ {
+ return this.customerName;
+ }
+
+ public void setCustomerName(String value)
+ {
+ this.customerName = value;
+ }
+
+ public String getTxLogisticId()
+ {
+ return this.txLogisticId;
+ }
+
+ public void setTxLogisticId(String value)
+ {
+ this.txLogisticId = value;
+ }
+
+ public String getMailNo()
+ {
+ return this.mailNo;
+ }
+
+ public void setMailNo(String value)
+ {
+ this.mailNo = value;
+ }
+
+ public String getTradeNo()
+ {
+ return this.tradeNo;
+ }
+
+ public void setTradeNo(String value)
+ {
+ this.tradeNo = value;
+ }
+
+ public String getServiceType()
+ {
+ return this.serviceType;
+ }
+
+ public void setServiceType(String value)
+ {
+ this.serviceType = value;
+ }
+
+ public long getSendStartTime()
+ {
+ return this.sendStartTime;
+ }
+
+ public void setSendStartTime(long value)
+ {
+ this.sendStartTime = value;
+ }
+
+ public long getSendEndTime()
+ {
+ return this.sendEndTime;
+ }
+
+ public void setSendEndTime(long value)
+ {
+ this.sendEndTime = value;
+ }
+
+ public String getRecSite()
+ {
+ return this.recSite;
+ }
+
+ public void setRecSite(String value)
+ {
+ this.recSite = value;
+ }
+
+ public long getPiece()
+ {
+ return this.piece;
+ }
+
+ public void setPiece(long value)
+ {
+ this.piece = value;
+ }
+
+ public double getGoodsValue()
+ {
+ return this.goodsValue;
+ }
+
+ public void setGoodsValue(double value)
+ {
+ this.goodsValue = value;
+ }
+
+ public double getLength()
+ {
+ return this.length;
+ }
+
+ public void setLength(double value)
+ {
+ this.length = value;
+ }
+
+ public double getItemsValue()
+ {
+ return this.itemsValue;
+ }
+
+ public void setItemsValue(double value)
+ {
+ this.itemsValue = value;
+ }
+
+ public double getWidth()
+ {
+ return this.width;
+ }
+
+ public void setWidth(double value)
+ {
+ this.width = value;
+ }
+
+ public double getInsuranceValue()
+ {
+ return this.insuranceValue;
+ }
+
+ public void setInsuranceValue(double value)
+ {
+ this.insuranceValue = value;
+ }
+
+ public double getHeight()
+ {
+ return this.height;
+ }
+
+ public void setHeight(double value)
+ {
+ this.height = value;
+ }
+
+ public String getSpecial()
+ {
+ return this.special;
+ }
+
+ public void setSpecial(String value)
+ {
+ this.special = value;
+ }
+
+ public String getBankCardOwner()
+ {
+ return this.bankCardOwner;
+ }
+
+ public void setBankCardOwner(String value)
+ {
+ this.bankCardOwner = value;
+ }
+
+ public String getBankCode()
+ {
+ return this.bankCode;
+ }
+
+ public void setBankCode(String value)
+ {
+ this.bankCode = value;
+ }
+
+ public String getBankCardNo()
+ {
+ return this.bankCardNo;
+ }
+
+ public void setBankCardNo(String value)
+ {
+ this.bankCardNo = value;
+ }
+
+ public String getRemark()
+ {
+ return this.remark;
+ }
+
+ public void setRemark(String value)
+ {
+ this.remark = value;
+ }
+
+ public Sender getSender()
+ {
+ return this.sender;
+ }
+
+ public void setSender(Sender value)
+ {
+ this.sender = value;
+ }
+
+ public Receiver getReceiver()
+ {
+ return this.receiver;
+ }
+
+ public void setReceiver(Receiver value)
+ {
+ this.receiver = value;
+ }
+
+ public Items getItems()
+ {
+ return this.items;
+ }
+
+ public void setItems(Items value)
+ {
+ this.items = value;
+ }
+
+ public double getItemsWeight()
+ {
+ return this.itemsWeight;
+ }
+
+ public void setItemsWeight(double value)
+ {
+ this.itemsWeight = value;
+ }
+
+ public String getCertificateType()
+ {
+ return this.certificateType;
+ }
+
+ public void setCertificateType(String value)
+ {
+ this.certificateType = value;
+ }
+
+ public String getCertificateNo()
+ {
+ return this.certificateNo;
+ }
+
+ public void setCertificateNo(String value)
+ {
+ this.certificateNo = value;
+ }
+
+ public String getDeliveryType()
+ {
+ return this.deliveryType;
+ }
+
+ public void setDeliveryType(String value)
+ {
+ this.deliveryType = value;
+ }
+
+ public String getDeliverySite()
+ {
+ return this.deliverySite;
+ }
+
+ public void setDeliverySite(String value)
+ {
+ this.deliverySite = value;
+ }
+
+ public String obtainServiceType() {
+ return "KD_CREATE_WAYBILL_ORDER_PDF_NOTIFY";
+ }
+
+ public BaseResponse makeResponse(String rsp, String format) {
+ if ("xml".equalsIgnoreCase(format)) {
+ return Parser.coverXml2Object(rsp, com.best.javaSdk.kdCreateWaybillOrderPdfNotify.response.KdCreateWaybillOrderPdfNotifyRsp.class);
+ }
+ return Parser.convertJson2Object(rsp, com.best.javaSdk.kdCreateWaybillOrderPdfNotify.response.KdCreateWaybillOrderPdfNotifyRsp.class);
+
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Receiver.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Receiver.java
new file mode 100644
index 0000000..4f1ce1c
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Receiver.java
@@ -0,0 +1,107 @@
+package com.best.javaSdk.kdCreateWaybillOrderPdfNotify.request;
+
+
+
+public class Receiver {
+ private String name;
+ private String postCode;
+ private String mobile;
+ private String prov;
+ private String city;
+ private String county;
+ private String address;
+ private String email;
+ private String country;
+
+ public String getName()
+ {
+ return this.name;
+ }
+
+ public void setName(String value)
+ {
+ this.name = value;
+ }
+
+ public String getPostCode()
+ {
+ return this.postCode;
+ }
+
+ public void setPostCode(String value)
+ {
+ this.postCode = value;
+ }
+
+ public String getMobile()
+ {
+ return this.mobile;
+ }
+
+ public void setMobile(String value)
+ {
+ this.mobile = value;
+ }
+
+ public String getProv()
+ {
+ return this.prov;
+ }
+
+ public void setProv(String value)
+ {
+ this.prov = value;
+ }
+
+ public String getCity()
+ {
+ return this.city;
+ }
+
+ public void setCity(String value)
+ {
+ this.city = value;
+ }
+
+ public String getCounty()
+ {
+ return this.county;
+ }
+
+ public void setCounty(String value)
+ {
+ this.county = value;
+ }
+
+ public String getAddress()
+ {
+ return this.address;
+ }
+
+ public void setAddress(String value)
+ {
+ this.address = value;
+ }
+
+ public String getEmail()
+ {
+ return this.email;
+ }
+
+ public void setEmail(String value)
+ {
+ this.email = value;
+ }
+
+ public String getCountry()
+ {
+ return this.country;
+ }
+
+ public void setCountry(String value)
+ {
+ this.country = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Sender.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Sender.java
new file mode 100644
index 0000000..6292c54
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/request/Sender.java
@@ -0,0 +1,107 @@
+package com.best.javaSdk.kdCreateWaybillOrderPdfNotify.request;
+
+
+
+public class Sender {
+ private String name;
+ private String postCode;
+ private String mobile;
+ private String prov;
+ private String city;
+ private String county;
+ private String address;
+ private String email;
+ private String country;
+
+ public String getName()
+ {
+ return this.name;
+ }
+
+ public void setName(String value)
+ {
+ this.name = value;
+ }
+
+ public String getPostCode()
+ {
+ return this.postCode;
+ }
+
+ public void setPostCode(String value)
+ {
+ this.postCode = value;
+ }
+
+ public String getMobile()
+ {
+ return this.mobile;
+ }
+
+ public void setMobile(String value)
+ {
+ this.mobile = value;
+ }
+
+ public String getProv()
+ {
+ return this.prov;
+ }
+
+ public void setProv(String value)
+ {
+ this.prov = value;
+ }
+
+ public String getCity()
+ {
+ return this.city;
+ }
+
+ public void setCity(String value)
+ {
+ this.city = value;
+ }
+
+ public String getCounty()
+ {
+ return this.county;
+ }
+
+ public void setCounty(String value)
+ {
+ this.county = value;
+ }
+
+ public String getAddress()
+ {
+ return this.address;
+ }
+
+ public void setAddress(String value)
+ {
+ this.address = value;
+ }
+
+ public String getEmail()
+ {
+ return this.email;
+ }
+
+ public void setEmail(String value)
+ {
+ this.email = value;
+ }
+
+ public String getCountry()
+ {
+ return this.country;
+ }
+
+ public void setCountry(String value)
+ {
+ this.country = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/response/ChildMailNo.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/response/ChildMailNo.java
new file mode 100644
index 0000000..b1c418b
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/response/ChildMailNo.java
@@ -0,0 +1,19 @@
+package com.best.javaSdk.kdCreateWaybillOrderPdfNotify.response;
+
+import java.util.List;
+
+
+public class ChildMailNo {
+ private List<String> mailNo;
+
+ public List<String> getMailNo()
+ {
+ return this.mailNo;
+ }
+
+ public void setMailNo(List<String> value)
+ {
+ this.mailNo = value;
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/response/KdCreateWaybillOrderPdfNotifyRsp.java b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/response/KdCreateWaybillOrderPdfNotifyRsp.java
new file mode 100644
index 0000000..4b59ff3
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdCreateWaybillOrderPdfNotify/response/KdCreateWaybillOrderPdfNotifyRsp.java
@@ -0,0 +1,120 @@
+package com.best.javaSdk.kdCreateWaybillOrderPdfNotify.response;
+
+import com.best.javaSdk.kdCreateWaybillOrderPdfNotify.response.ChildMailNo;
+import java.util.List;
+import com.best.javaSdk.BaseResponse;
+
+
+public class KdCreateWaybillOrderPdfNotifyRsp implements BaseResponse {
+ private ChildMailNo childMailNo;
+ private boolean result;
+ private String txLogisticId;
+ private String mailNo;
+ private String errorCode;
+ private String errorDescription;
+ private String pdfStream;
+ private String triSortCode;
+ private List<String> pdfStreamList;
+ private String packRule;
+
+ public ChildMailNo getChildMailNo()
+ {
+ return this.childMailNo;
+ }
+
+ public void setChildMailNo(ChildMailNo value)
+ {
+ this.childMailNo = value;
+ }
+
+ public boolean getResult()
+ {
+ return this.result;
+ }
+
+ public void setResult(boolean value)
+ {
+ this.result = value;
+ }
+
+ public String getTxLogisticId()
+ {
+ return this.txLogisticId;
+ }
+
+ public void setTxLogisticId(String value)
+ {
+ this.txLogisticId = value;
+ }
+
+ public String getMailNo()
+ {
+ return this.mailNo;
+ }
+
+ public void setMailNo(String value)
+ {
+ this.mailNo = value;
+ }
+
+ public String getErrorCode()
+ {
+ return this.errorCode;
+ }
+
+ public void setErrorCode(String value)
+ {
+ this.errorCode = value;
+ }
+
+ public String getErrorDescription()
+ {
+ return this.errorDescription;
+ }
+
+ public void setErrorDescription(String value)
+ {
+ this.errorDescription = value;
+ }
+
+ public String getPdfStream()
+ {
+ return this.pdfStream;
+ }
+
+ public void setPdfStream(String value)
+ {
+ this.pdfStream = value;
+ }
+
+ public String getTriSortCode()
+ {
+ return this.triSortCode;
+ }
+
+ public void setTriSortCode(String value)
+ {
+ this.triSortCode = value;
+ }
+
+ public List<String> getPdfStreamList()
+ {
+ return this.pdfStreamList;
+ }
+
+ public void setPdfStreamList(List<String> value)
+ {
+ this.pdfStreamList = value;
+ }
+ public String getPackRule()
+ {
+ return this.packRule;
+ }
+
+ public void setPackRule(String value)
+ {
+ this.packRule = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdTraceQuery/request/KdTraceQueryReq.java b/src/main/java/com/best/javaSdk/kdTraceQuery/request/KdTraceQueryReq.java
new file mode 100644
index 0000000..37f3cba
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdTraceQuery/request/KdTraceQueryReq.java
@@ -0,0 +1,44 @@
+package com.best.javaSdk.kdTraceQuery.request;
+
+import com.best.javaSdk.BaseRequest;
+import com.best.javaSdk.BaseResponse;
+import com.best.javaSdk.Parser;
+
+
+public class KdTraceQueryReq implements BaseRequest {
+ private MailNos mailNos;
+ private String langType;
+
+ public MailNos getMailNos()
+ {
+ return this.mailNos;
+ }
+
+ public void setMailNos(MailNos value)
+ {
+ this.mailNos = value;
+ }
+
+ public String getLangType()
+ {
+ return this.langType;
+ }
+
+ public void setLangType(String value)
+ {
+ this.langType = value;
+ }
+
+ public String obtainServiceType() {
+ return "KD_TRACE_QUERY";
+ }
+
+ public BaseResponse makeResponse(String rsp, String format) {
+ if ("xml".equalsIgnoreCase(format)) {
+ return Parser.coverXml2Object(rsp, com.best.javaSdk.kdTraceQuery.response.KdTraceQueryRsp.class);
+ }
+ return Parser.convertJson2Object(rsp, com.best.javaSdk.kdTraceQuery.response.KdTraceQueryRsp.class);
+
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdTraceQuery/request/MailNos.java b/src/main/java/com/best/javaSdk/kdTraceQuery/request/MailNos.java
new file mode 100644
index 0000000..cfd9c31
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdTraceQuery/request/MailNos.java
@@ -0,0 +1,12 @@
+package com.best.javaSdk.kdTraceQuery.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+
+@Data
+public class MailNos {
+ private List<String> mailNo;
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdTraceQuery/response/KdTraceQueryRsp.java b/src/main/java/com/best/javaSdk/kdTraceQuery/response/KdTraceQueryRsp.java
new file mode 100644
index 0000000..79038e9
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdTraceQuery/response/KdTraceQueryRsp.java
@@ -0,0 +1,19 @@
+package com.best.javaSdk.kdTraceQuery.response;
+
+import com.best.javaSdk.BaseResponse;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+@Data
+public class KdTraceQueryRsp implements BaseResponse {
+
+ @ApiModelProperty(value = "请求结果", example = "60850007041815")
+ private boolean result;
+
+ @ApiModelProperty(value = "快递物流详情", example = "60850007041815")
+ private List<TraceLogs> traceLogs;
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdTraceQuery/response/Trace.java b/src/main/java/com/best/javaSdk/kdTraceQuery/response/Trace.java
new file mode 100644
index 0000000..e6d8967
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdTraceQuery/response/Trace.java
@@ -0,0 +1,118 @@
+package com.best.javaSdk.kdTraceQuery.response;
+
+
+
+public class Trace {
+ private String receiverType;
+ private String receiverName;
+ private String receiverSignature;
+ private String receiverImage;
+ private String packageStatusCode;
+ private String statusCodeDesc;
+ private String operateTime;
+ private String currentCity;
+ private String nextCity;
+ private String remark;
+
+ public String getReceiverType()
+ {
+ return this.receiverType;
+ }
+
+ public void setReceiverType(String value)
+ {
+ this.receiverType = value;
+ }
+
+ public String getReceiverName()
+ {
+ return this.receiverName;
+ }
+
+ public void setReceiverName(String value)
+ {
+ this.receiverName = value;
+ }
+
+ public String getReceiverSignature()
+ {
+ return this.receiverSignature;
+ }
+
+ public void setReceiverSignature(String value)
+ {
+ this.receiverSignature = value;
+ }
+
+ public String getReceiverImage()
+ {
+ return this.receiverImage;
+ }
+
+ public void setReceiverImage(String value)
+ {
+ this.receiverImage = value;
+ }
+
+ public String getPackageStatusCode()
+ {
+ return this.packageStatusCode;
+ }
+
+ public void setPackageStatusCode(String value)
+ {
+ this.packageStatusCode = value;
+ }
+
+ public String getStatusCodeDesc()
+ {
+ return this.statusCodeDesc;
+ }
+
+ public void setStatusCodeDesc(String value)
+ {
+ this.statusCodeDesc = value;
+ }
+
+ public String getOperateTime()
+ {
+ return this.operateTime;
+ }
+
+ public void setOperateTime(String value)
+ {
+ this.operateTime = value;
+ }
+
+ public String getCurrentCity()
+ {
+ return this.currentCity;
+ }
+
+ public void setCurrentCity(String value)
+ {
+ this.currentCity = value;
+ }
+
+ public String getNextCity()
+ {
+ return this.nextCity;
+ }
+
+ public void setNextCity(String value)
+ {
+ this.nextCity = value;
+ }
+
+ public String getRemark()
+ {
+ return this.remark;
+ }
+
+ public void setRemark(String value)
+ {
+ this.remark = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdTraceQuery/response/TraceLogs.java b/src/main/java/com/best/javaSdk/kdTraceQuery/response/TraceLogs.java
new file mode 100644
index 0000000..a0285d1
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdTraceQuery/response/TraceLogs.java
@@ -0,0 +1,51 @@
+package com.best.javaSdk.kdTraceQuery.response;
+
+
+public class TraceLogs {
+ private String mailNo;
+ private String txLogisticId;
+ private double weight;
+ private Traces traces;
+
+ public String getMailNo()
+ {
+ return this.mailNo;
+ }
+
+ public void setMailNo(String value)
+ {
+ this.mailNo = value;
+ }
+
+ public String getTxLogisticId()
+ {
+ return this.txLogisticId;
+ }
+
+ public void setTxLogisticId(String value)
+ {
+ this.txLogisticId = value;
+ }
+
+ public double getWeight()
+ {
+ return this.weight;
+ }
+
+ public void setWeight(double value)
+ {
+ this.weight = value;
+ }
+
+ public Traces getTraces()
+ {
+ return this.traces;
+ }
+
+ public void setTraces(Traces value)
+ {
+ this.traces = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdTraceQuery/response/Traces.java b/src/main/java/com/best/javaSdk/kdTraceQuery/response/Traces.java
new file mode 100644
index 0000000..f37465c
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdTraceQuery/response/Traces.java
@@ -0,0 +1,19 @@
+package com.best.javaSdk.kdTraceQuery.response;
+
+import java.util.List;
+
+
+public class Traces {
+ private List<Trace> trace;
+
+ public List<Trace> getTrace()
+ {
+ return this.trace;
+ }
+
+ public void setTrace(List<Trace> value)
+ {
+ this.trace = value;
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/request/KdUpdateOrderNotifyReq.java b/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/request/KdUpdateOrderNotifyReq.java
new file mode 100644
index 0000000..c4d9027
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/request/KdUpdateOrderNotifyReq.java
@@ -0,0 +1,56 @@
+package com.best.javaSdk.kdUpdateOrderNotify.request;
+
+import com.best.javaSdk.kdUpdateOrderNotify.request.Params;
+import com.best.javaSdk.BaseRequest;
+import com.best.javaSdk.BaseResponse;
+import com.best.javaSdk.Parser;
+
+
+public class KdUpdateOrderNotifyReq implements BaseRequest {
+ private String txLogisticId;
+ private Params params;
+ private boolean pdfStream;
+
+ public String getTxLogisticId()
+ {
+ return this.txLogisticId;
+ }
+
+ public void setTxLogisticId(String value)
+ {
+ this.txLogisticId = value;
+ }
+
+ public Params getParams()
+ {
+ return this.params;
+ }
+
+ public void setParams(Params value)
+ {
+ this.params = value;
+ }
+
+ public boolean getPdfStream()
+ {
+ return this.pdfStream;
+ }
+
+ public void setPdfStream(boolean value)
+ {
+ this.pdfStream = value;
+ }
+
+ public String obtainServiceType() {
+ return "KD_UPDATE_ORDER_NOTIFY";
+ }
+
+ public BaseResponse makeResponse(String rsp, String format) {
+ if ("xml".equalsIgnoreCase(format)) {
+ return Parser.coverXml2Object(rsp, com.best.javaSdk.kdUpdateOrderNotify.response.KdUpdateOrderNotifyRsp.class);
+ }
+ return Parser.convertJson2Object(rsp, com.best.javaSdk.kdUpdateOrderNotify.response.KdUpdateOrderNotifyRsp.class);
+
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/request/Params.java b/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/request/Params.java
new file mode 100644
index 0000000..b9d77d4
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/request/Params.java
@@ -0,0 +1,360 @@
+package com.best.javaSdk.kdUpdateOrderNotify.request;
+
+
+
+public class Params {
+ private String mailNo;
+ private String deliveryType;
+ private String deliverySite;
+ private long sendStartTime;
+ private long sendEndTime;
+ private String recSite;
+ private double itemsValue;
+ private double insuranceValue;
+ private String senderName;
+ private String senderPostCode;
+ private String senderMobile;
+ private String senderProv;
+ private String senderCity;
+ private String senderCounty;
+ private String senderAddress;
+ private String senderEmail;
+ private String senderCountry;
+ private String receiverName;
+ private String receiverPostCode;
+ private String receiverMobile;
+ private String receiverProv;
+ private String receiverCity;
+ private String receiverCounty;
+ private String receiverAddress;
+ private String receiverEmail;
+ private String receiverCountry;
+ private long piece;
+ private double itemsWeight;
+ private double length;
+ private double width;
+ private double height;
+ private String remark;
+
+ public String getMailNo()
+ {
+ return this.mailNo;
+ }
+
+ public void setMailNo(String value)
+ {
+ this.mailNo = value;
+ }
+
+ public String getDeliveryType()
+ {
+ return this.deliveryType;
+ }
+
+ public void setDeliveryType(String value)
+ {
+ this.deliveryType = value;
+ }
+
+ public String getDeliverySite()
+ {
+ return this.deliverySite;
+ }
+
+ public void setDeliverySite(String value)
+ {
+ this.deliverySite = value;
+ }
+
+ public long getSendStartTime()
+ {
+ return this.sendStartTime;
+ }
+
+ public void setSendStartTime(long value)
+ {
+ this.sendStartTime = value;
+ }
+
+ public long getSendEndTime()
+ {
+ return this.sendEndTime;
+ }
+
+ public void setSendEndTime(long value)
+ {
+ this.sendEndTime = value;
+ }
+
+ public String getRecSite()
+ {
+ return this.recSite;
+ }
+
+ public void setRecSite(String value)
+ {
+ this.recSite = value;
+ }
+
+ public double getItemsValue()
+ {
+ return this.itemsValue;
+ }
+
+ public void setItemsValue(double value)
+ {
+ this.itemsValue = value;
+ }
+
+ public double getInsuranceValue()
+ {
+ return this.insuranceValue;
+ }
+
+ public void setInsuranceValue(double value)
+ {
+ this.insuranceValue = value;
+ }
+
+ public String getSenderName()
+ {
+ return this.senderName;
+ }
+
+ public void setSenderName(String value)
+ {
+ this.senderName = value;
+ }
+
+ public String getSenderPostCode()
+ {
+ return this.senderPostCode;
+ }
+
+ public void setSenderPostCode(String value)
+ {
+ this.senderPostCode = value;
+ }
+
+ public String getSenderMobile()
+ {
+ return this.senderMobile;
+ }
+
+ public void setSenderMobile(String value)
+ {
+ this.senderMobile = value;
+ }
+
+ public String getSenderProv()
+ {
+ return this.senderProv;
+ }
+
+ public void setSenderProv(String value)
+ {
+ this.senderProv = value;
+ }
+
+ public String getSenderCity()
+ {
+ return this.senderCity;
+ }
+
+ public void setSenderCity(String value)
+ {
+ this.senderCity = value;
+ }
+
+ public String getSenderCounty()
+ {
+ return this.senderCounty;
+ }
+
+ public void setSenderCounty(String value)
+ {
+ this.senderCounty = value;
+ }
+
+ public String getSenderAddress()
+ {
+ return this.senderAddress;
+ }
+
+ public void setSenderAddress(String value)
+ {
+ this.senderAddress = value;
+ }
+
+ public String getSenderEmail()
+ {
+ return this.senderEmail;
+ }
+
+ public void setSenderEmail(String value)
+ {
+ this.senderEmail = value;
+ }
+
+ public String getSenderCountry()
+ {
+ return this.senderCountry;
+ }
+
+ public void setSenderCountry(String value)
+ {
+ this.senderCountry = value;
+ }
+
+ public String getReceiverName()
+ {
+ return this.receiverName;
+ }
+
+ public void setReceiverName(String value)
+ {
+ this.receiverName = value;
+ }
+
+ public String getReceiverPostCode()
+ {
+ return this.receiverPostCode;
+ }
+
+ public void setReceiverPostCode(String value)
+ {
+ this.receiverPostCode = value;
+ }
+
+ public String getReceiverMobile()
+ {
+ return this.receiverMobile;
+ }
+
+ public void setReceiverMobile(String value)
+ {
+ this.receiverMobile = value;
+ }
+
+ public String getReceiverProv()
+ {
+ return this.receiverProv;
+ }
+
+ public void setReceiverProv(String value)
+ {
+ this.receiverProv = value;
+ }
+
+ public String getReceiverCity()
+ {
+ return this.receiverCity;
+ }
+
+ public void setReceiverCity(String value)
+ {
+ this.receiverCity = value;
+ }
+
+ public String getReceiverCounty()
+ {
+ return this.receiverCounty;
+ }
+
+ public void setReceiverCounty(String value)
+ {
+ this.receiverCounty = value;
+ }
+
+ public String getReceiverAddress()
+ {
+ return this.receiverAddress;
+ }
+
+ public void setReceiverAddress(String value)
+ {
+ this.receiverAddress = value;
+ }
+
+ public String getReceiverEmail()
+ {
+ return this.receiverEmail;
+ }
+
+ public void setReceiverEmail(String value)
+ {
+ this.receiverEmail = value;
+ }
+
+ public String getReceiverCountry()
+ {
+ return this.receiverCountry;
+ }
+
+ public void setReceiverCountry(String value)
+ {
+ this.receiverCountry = value;
+ }
+
+ public long getPiece()
+ {
+ return this.piece;
+ }
+
+ public void setPiece(long value)
+ {
+ this.piece = value;
+ }
+
+ public double getItemsWeight()
+ {
+ return this.itemsWeight;
+ }
+
+ public void setItemsWeight(double value)
+ {
+ this.itemsWeight = value;
+ }
+
+ public double getLength()
+ {
+ return this.length;
+ }
+
+ public void setLength(double value)
+ {
+ this.length = value;
+ }
+
+ public double getWidth()
+ {
+ return this.width;
+ }
+
+ public void setWidth(double value)
+ {
+ this.width = value;
+ }
+
+ public double getHeight()
+ {
+ return this.height;
+ }
+
+ public void setHeight(double value)
+ {
+ this.height = value;
+ }
+
+ public String getRemark()
+ {
+ return this.remark;
+ }
+
+ public void setRemark(String value)
+ {
+ this.remark = value;
+ }
+
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/response/ChildMailNo.java b/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/response/ChildMailNo.java
new file mode 100644
index 0000000..4252553
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/response/ChildMailNo.java
@@ -0,0 +1,19 @@
+package com.best.javaSdk.kdUpdateOrderNotify.response;
+
+import java.util.List;
+
+
+public class ChildMailNo {
+ private List<String> mailNo;
+
+ public List<String> getMailNo()
+ {
+ return this.mailNo;
+ }
+
+ public void setMailNo(List<String> value)
+ {
+ this.mailNo = value;
+ }
+
+}
diff --git a/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/response/KdUpdateOrderNotifyRsp.java b/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/response/KdUpdateOrderNotifyRsp.java
new file mode 100644
index 0000000..bc2d2a0
--- /dev/null
+++ b/src/main/java/com/best/javaSdk/kdUpdateOrderNotify/response/KdUpdateOrderNotifyRsp.java
@@ -0,0 +1,109 @@
+package com.best.javaSdk.kdUpdateOrderNotify.response;
+
+import com.best.javaSdk.kdUpdateOrderNotify.response.ChildMailNo;
+import java.util.List;
+import com.best.javaSdk.BaseResponse;
+
+
+public class KdUpdateOrderNotifyRsp implements BaseResponse {
+ private boolean result;
+ private String triSortCode;
+ private String txLogisticId;
+ private String mailNo;
+ private ChildMailNo childMailNo;
+ private String packRule;
+ private String errorCode;
+ private String errorDescription;
+ private List<String> pdfStreamList;
+
+ public boolean getResult()
+ {
+ return this.result;
+ }
+
+ public void setResult(boolean value)
+ {
+ this.result = value;
+ }
+
+ public String getTriSortCode()
+ {
+ return this.triSortCode;
+ }
+
+ public void setTriSortCode(String value)
+ {
+ this.triSortCode = value;
+ }
+
+ public String getTxLogisticId()
+ {
+ return this.txLogisticId;
+ }
+
+ public void setTxLogisticId(String value)
+ {
+ this.txLogisticId = value;
+ }
+
+ public String getMailNo()
+ {
+ return this.mailNo;
+ }
+
+ public void setMailNo(String value)
+ {
+ this.mailNo = value;
+ }
+
+ public ChildMailNo getChildMailNo()
+ {
+ return this.childMailNo;
+ }
+
+ public void setChildMailNo(ChildMailNo value)
+ {
+ this.childMailNo = value;
+ }
+
+ public String getPackRule()
+ {
+ return this.packRule;
+ }
+
+ public void setPackRule(String value)
+ {
+ this.packRule = value;
+ }
+
+ public String getErrorCode()
+ {
+ return this.errorCode;
+ }
+
+ public void setErrorCode(String value)
+ {
+ this.errorCode = value;
+ }
+
+ public String getErrorDescription()
+ {
+ return this.errorDescription;
+ }
+
+ public void setErrorDescription(String value)
+ {
+ this.errorDescription = value;
+ }
+
+ public List<String> getPdfStreamList()
+ {
+ return this.pdfStreamList;
+ }
+
+ public void setPdfStreamList(List<String> value)
+ {
+ this.pdfStreamList = value;
+ }
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index f1ab545..27b958e 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -5,7 +5,7 @@
spring:
profiles:
- active: test
+ active: dev
servlet:
multipart:
--
Gitblit v1.9.1