package com.dsh.app.util;
|
|
import com.google.common.reflect.TypeToken;
|
import com.google.gson.Gson;
|
import com.kuaidi100.sdk.api.*;
|
import com.kuaidi100.sdk.cloud.CloudBase;
|
import com.kuaidi100.sdk.contant.*;
|
import com.kuaidi100.sdk.core.IBaseClient;
|
import com.kuaidi100.sdk.pojo.HttpResult;
|
import com.kuaidi100.sdk.request.*;
|
import com.kuaidi100.sdk.request.ThirdPlatform.CommitTaskReq;
|
import com.kuaidi100.sdk.request.ThirdPlatform.StoreAuthReq;
|
import com.kuaidi100.sdk.request.ThirdPlatform.UploadNumReq;
|
import com.kuaidi100.sdk.request.cloud.COrderCancelReq;
|
import com.kuaidi100.sdk.request.cloud.COrderQueryReq;
|
import com.kuaidi100.sdk.request.cloud.COrderReq;
|
import com.kuaidi100.sdk.response.QueryTrackMapResp;
|
import com.kuaidi100.sdk.response.ThirdPlatform.CommitTaskResp;
|
import com.kuaidi100.sdk.response.ThirdPlatform.StoreAuthResp;
|
import com.kuaidi100.sdk.response.ThirdPlatform.ThirdPlatformBaseResp;
|
import com.kuaidi100.sdk.utils.SignUtils;
|
import org.apache.http.HttpStatus;
|
|
import java.io.File;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
public class Courier100Util {
|
|
private static String key = "OPLapbdR5104";
|
private static String customer = "8543422560C1942CBE35D802A814045C";
|
private static String secret = "bb4b715114424b97862931a000020777";
|
private static String siid = "";
|
private static String userid = "0d547fd1665148ee8fb4f4bf87c4408f";
|
private static String tid = "";
|
private static String secret_key = "2Zw4mVpA3Lzc4GXGHV";
|
private static String secret_secret = "46d2768e2be74cf4a33c9a307fe3c1d9";
|
|
/**
|
* 查询物流轨迹
|
*/
|
public static UserLogistics testQueryTrack(String coding,String num,String phone) throws Exception{
|
|
QueryTrackReq queryTrackReq = new QueryTrackReq();
|
QueryTrackParam queryTrackParam = new QueryTrackParam();
|
queryTrackParam.setCom(coding);
|
queryTrackParam.setNum(num);
|
queryTrackParam.setPhone(phone);
|
String param = new Gson().toJson(queryTrackParam);
|
|
queryTrackReq.setParam(param);
|
queryTrackReq.setCustomer(customer);
|
queryTrackReq.setSign(SignUtils.querySign(param ,key,customer));
|
|
IBaseClient baseClient = new QueryTrack();
|
HttpResult httpResult = baseClient.execute(queryTrackReq);
|
if(httpResult.getStatus()==200){
|
UserLogisticsVo map=JsonUtil.jsonToPojo(httpResult.getBody(), UserLogisticsVo.class);
|
//0在途,1揽收,2疑难,3签收,4退签,5派件,8清关
|
if(map.getStatus().equals("200")){
|
UserLogistics userLogistics = new UserLogistics();
|
userLogistics.setStatus(1);
|
if(map.getState().equals("3")){
|
//修改订单状态
|
userLogistics.setStatus(2);
|
}
|
List<Map<String,Object>> mapList = map.getData();
|
|
userLogistics.setContext(JsonUtil.objectToJson(mapList));
|
return userLogistics;
|
}
|
|
}
|
return null;
|
}
|
|
/**
|
* 快递信息地图轨迹
|
*/
|
public void testQueryMapView() throws Exception{
|
|
QueryTrackReq queryTrackReq = new QueryTrackReq();
|
QueryTrackParam queryTrackParam = new QueryTrackParam();
|
queryTrackParam.setCom(CompanyConstant.YD);
|
queryTrackParam.setNum("4311159956248");
|
queryTrackParam.setPhone("17725390266");
|
queryTrackParam.setFrom("河北保定市");
|
queryTrackParam.setTo("湖南岳阳市");
|
queryTrackParam.setResultv2("1");
|
String param = new Gson().toJson(queryTrackParam);
|
|
queryTrackReq.setParam(param);
|
queryTrackReq.setCustomer(customer);
|
queryTrackReq.setSign(SignUtils.querySign(param ,key,customer));
|
|
IBaseClient baseClient = new QueryTrackMap();
|
HttpResult result = baseClient.execute(queryTrackReq);
|
|
QueryTrackMapResp queryTrackMapResp = new Gson().fromJson(result.getBody(),QueryTrackMapResp.class);
|
System.out.println(queryTrackMapResp);
|
}
|
|
/**
|
* 订阅
|
*/
|
public void testSubscribe() throws Exception{
|
SubscribeParameters subscribeParameters = new SubscribeParameters();
|
subscribeParameters.setCallbackurl("http://www.baidu.com");
|
subscribeParameters.setPhone("17725390266");
|
|
SubscribeParam subscribeParam = new SubscribeParam();
|
subscribeParam.setParameters(subscribeParameters);
|
subscribeParam.setCompany(CompanyConstant.ST);
|
subscribeParam.setNumber("773039762404825");
|
subscribeParam.setKey(key);
|
|
SubscribeReq subscribeReq = new SubscribeReq();
|
subscribeReq.setSchema(ApiInfoConstant.SUBSCRIBE_SCHEMA);
|
subscribeReq.setParam(new Gson().toJson(subscribeParam));
|
|
IBaseClient subscribe = new Subscribe();
|
System.out.println(subscribe.execute(subscribeReq));
|
}
|
|
/**
|
* 智能识别接口(正式用户可以使用)
|
*/
|
public void testAutoNum() throws Exception{
|
AutoNumReq autoNumReq = new AutoNumReq();
|
autoNumReq.setKey(key);
|
autoNumReq.setNum("773039762404825");
|
|
IBaseClient baseClient = new AutoNum();
|
System.out.println(baseClient.execute(autoNumReq));
|
}
|
|
/**
|
* 电子面单图片接口
|
*/
|
public void testPrintImg() throws Exception{
|
PrintImgParam printImgParam = new PrintImgParam();
|
printImgParam.setKuaidicom(CompanyConstant.ZJS);
|
printImgParam.setSendManName("张三");
|
printImgParam.setSendManMobile("15999566666");
|
printImgParam.setSendManPrintAddr("广东省深圳市南山区科技南十二路");
|
printImgParam.setRecManName("李四");
|
printImgParam.setRecManMobile("15999566666");
|
printImgParam.setRecManPrintAddr("北京市海淀区xxx路");
|
printImgParam.setType("10");
|
printImgParam.setTempid("180c7c8f646742ca871a92c976392b05");
|
printImgParam.setCount("1");
|
|
String param = new Gson().toJson(printImgParam);
|
String t = System.currentTimeMillis() + "";
|
String sign = SignUtils.printSign(param,t,key,secret);
|
|
PrintReq printReq = new PrintReq();
|
printReq.setKey(key);
|
printReq.setMethod(ApiInfoConstant.ELECTRONIC_ORDER_PIC_METHOD);
|
printReq.setSign(sign);
|
printReq.setParam(param);
|
printReq.setT(t);
|
|
IBaseClient printImg = new PrintImg();
|
System.out.println(printImg.execute(printReq));
|
}
|
|
/**
|
* 电子面单html接口
|
*/
|
public void testPrintHtml() throws Exception{
|
ManInfo recManInfo = new ManInfo();
|
recManInfo.setName("张三");
|
recManInfo.setMobile("15999566666");
|
recManInfo.setPrintAddr("广东省深圳市南山区科技南十二路");
|
|
ManInfo sendManInfo = new ManInfo();
|
sendManInfo.setName("李四");
|
sendManInfo.setMobile("15999566666");
|
sendManInfo.setPrintAddr("北京市海淀区xxx路");
|
|
PrintHtmlParam printHtmlParam = new PrintHtmlParam();
|
printHtmlParam.setKuaidicom(CompanyConstant.ZJS);
|
printHtmlParam.setCount("2");
|
printHtmlParam.setNeedChild("1");
|
//如果需要返回电子面单,需要设置
|
printHtmlParam.setNeedTemplate("0");
|
printHtmlParam.setSendMan(sendManInfo);
|
printHtmlParam.setRecMan(recManInfo);
|
|
String t = System.currentTimeMillis() + "";
|
String param = new Gson().toJson(printHtmlParam);
|
String sign = SignUtils.printSign(param,t,key,secret);
|
|
PrintReq printReq = new PrintReq();
|
printReq.setKey(key);
|
printReq.setMethod(ApiInfoConstant.ELECTRONIC_ORDER_HTML_METHOD);
|
printReq.setT(t);
|
printReq.setSign(sign);
|
printReq.setParam(param);
|
|
IBaseClient printHtml = new PrintHtml();
|
System.out.println(printHtml.execute(printReq));
|
}
|
|
/**
|
* 电子面单打印
|
*/
|
public void testPrintCloud() throws Exception{
|
ManInfo recManInfo = new ManInfo();
|
recManInfo.setName("张三");
|
recManInfo.setMobile("15999566666");
|
recManInfo.setPrintAddr("广东省深圳市南山区科技南十二路");
|
|
ManInfo sendManInfo = new ManInfo();
|
sendManInfo.setName("李四");
|
sendManInfo.setMobile("15999566666");
|
sendManInfo.setPrintAddr("北京市海淀区xxx路");
|
|
PrintCloudParam printCloudParam = new PrintCloudParam();
|
printCloudParam.setKuaidicom(CompanyConstant.ZJS);
|
printCloudParam.setCount("1");
|
printCloudParam.setSiid(siid);
|
printCloudParam.setTempid("180c7c8f646742ca871a92c976392b05");
|
printCloudParam.setSendMan(sendManInfo);
|
printCloudParam.setRecMan(recManInfo);
|
|
String param = new Gson().toJson(printCloudParam);
|
String t = System.currentTimeMillis() + "";
|
|
PrintReq printReq = new PrintReq();
|
printReq.setT(t);
|
printReq.setKey(key);
|
printReq.setMethod(ApiInfoConstant.ELECTRONIC_ORDER_PRINT_METHOD);
|
printReq.setSign(SignUtils.printSign(param,t,key,secret));
|
printReq.setParam(param);
|
|
IBaseClient baseClient = new PrintCloud();
|
System.out.println(baseClient.execute(printReq));
|
}
|
|
/**
|
* 云打印自定义
|
*/
|
public void testCloudCustom() throws Exception{
|
CloudPrintCustomParam cloudPrintCustomParam = new CloudPrintCustomParam();
|
cloudPrintCustomParam.setSiid(siid);
|
cloudPrintCustomParam.setCallBackUrl("http://www.baidu.com");
|
cloudPrintCustomParam.setTempid("180c7c8f646742ca871a92c976392b05");
|
|
String t = System.currentTimeMillis() + "";
|
String param = new Gson().toJson(cloudPrintCustomParam);
|
|
PrintReq printReq = new PrintReq();
|
printReq.setKey(key);
|
printReq.setMethod(ApiInfoConstant.CLOUD_PRINT_CUSTOM_METHOD);
|
printReq.setT(t);
|
printReq.setSign(SignUtils.printSign(param,t,key,secret));
|
printReq.setParam(param);
|
|
IBaseClient baseClient = new CloudPrintCustom();
|
System.out.println(baseClient.execute(printReq));
|
}
|
|
/**
|
* 云打印附件
|
*/
|
public void testCloudAttachment() throws Exception{
|
CloudPrintAttachmentParam cloudPrintAttachmentParam = new CloudPrintAttachmentParam();
|
cloudPrintAttachmentParam.setSiid(siid);
|
cloudPrintAttachmentParam.setCallBackUrl("http://www.baidu.com");
|
|
String t = System.currentTimeMillis() + "";
|
String param = new Gson().toJson(cloudPrintAttachmentParam);
|
CloudAttachmentReq cloudPrintAttachmentReq = new CloudAttachmentReq();
|
|
cloudPrintAttachmentReq.setKey(key);
|
cloudPrintAttachmentReq.setMethod(ApiInfoConstant.CLOUD_PRINT_ATTACHMENT_METHOD);
|
cloudPrintAttachmentReq.setT(t);
|
cloudPrintAttachmentReq.setSign(SignUtils.printSign(param,t,key,secret));
|
cloudPrintAttachmentReq.setParam(param);
|
cloudPrintAttachmentReq.setFile(new File("C:\\Users\\Administrator.-20171106WFEKLN\\Desktop\\1.jpg"));
|
|
IBaseClient baseClient = new CloudPrintAttachment();
|
System.out.println(baseClient.execute(cloudPrintAttachmentReq));
|
}
|
|
/**
|
* 复打
|
*/
|
public void testCloudPrintOld() throws Exception{
|
PrintReq printReq = new PrintReq();
|
CloudPrintOldParam cloudPrintOldParam = new CloudPrintOldParam();
|
cloudPrintOldParam.setTaskId("D21DB1AC74A260E6F5604FC43B4598B8");
|
|
String t = System.currentTimeMillis() + "";
|
String param = new Gson().toJson(cloudPrintOldParam);
|
|
printReq.setKey(key);
|
printReq.setMethod(ApiInfoConstant.CLOUD_PRINT_OLD_METHOD);
|
printReq.setT(t);
|
printReq.setSign(SignUtils.printSign(param,t,key,secret));
|
printReq.setParam(param);
|
|
IBaseClient cloudPrintOld = new CloudPrintOld();
|
System.out.println(cloudPrintOld.execute(printReq));
|
}
|
|
/**
|
* 发送短信
|
*/
|
public void testSendSms() throws Exception{
|
SendSmsReq sendSmsReq = new SendSmsReq();
|
sendSmsReq.setCallback("http://www.baidu.com");
|
Map<String,String> content = new HashMap<String, String>();
|
content.put("username","测试用户");
|
sendSmsReq.setContent(new Gson().toJson(content));
|
sendSmsReq.setPhone("15994708912");
|
sendSmsReq.setSeller("贵司名称");
|
sendSmsReq.setUserid(userid);
|
sendSmsReq.setTid(tid);
|
sendSmsReq.setSign(SignUtils.smsSign(key,userid));
|
|
IBaseClient sendSms = new SendSms();
|
System.out.println(sendSms.execute(sendSmsReq));
|
}
|
|
|
|
/**
|
* C端查询运力
|
*/
|
public void testCOrderQuery() throws Exception {
|
COrderQueryReq cOrderQueryReq = new COrderQueryReq();
|
cOrderQueryReq.setAddress("广东省深圳市南山区华强南");
|
cOrderQueryReq.setSecret_key(secret_key);
|
cOrderQueryReq.setSecret_code(CloudApiCodeConstant.ORDER_QUERY_EXPRESS);
|
cOrderQueryReq.setSecret_sign(SignUtils.cloudSign(secret_key, secret_secret));
|
|
IBaseClient cloudBase = new CloudBase();
|
System.out.println(cloudBase.execute(cOrderQueryReq));
|
}
|
|
/**
|
* c端寄件
|
*/
|
public void testCOrder() throws Exception {
|
COrderReq cOrderReq = new COrderReq();
|
cOrderReq.setCom(CompanyConstant.JD);
|
cOrderReq.setSendManName("张三");
|
cOrderReq.setSendManMobile("15966666666");
|
cOrderReq.setSendManPrintAddr("广东深圳市南山区金蝶软件园");
|
cOrderReq.setRecManName("李四");
|
cOrderReq.setRecManMobile("15966666666");
|
cOrderReq.setRecManPrintAddr("广东深圳市福田区华强南");
|
cOrderReq.setCallBackUrl("http://www.baidu.com");
|
cOrderReq.setCargo("文件");
|
cOrderReq.setRemark("测试下单,待会取消");
|
cOrderReq.setWeight("1");
|
cOrderReq.setSalt("123456");
|
cOrderReq.setSecret_key(secret_key);
|
cOrderReq.setSecret_code(CloudApiCodeConstant.ORDER);
|
cOrderReq.setSecret_sign(SignUtils.cloudSign(secret_key,secret_secret));
|
|
IBaseClient cloudBase = new CloudBase();
|
System.out.println(cloudBase.execute(cOrderReq));
|
}
|
|
/**
|
* c端取消寄件
|
*/
|
public void testCOrderCancel() throws Exception {
|
COrderCancelReq cOrderCancelReq = new COrderCancelReq();
|
cOrderCancelReq.setTaskId("B19BB4C6F33BE9E735A63D4142557751");
|
cOrderCancelReq.setOrderId("11115207");
|
cOrderCancelReq.setCancelMsg("测试单");
|
cOrderCancelReq.setSecret_key(secret_key);
|
cOrderCancelReq.setSecret_code(CloudApiCodeConstant.ORDER_CANCEL);
|
cOrderCancelReq.setSecret_sign(SignUtils.cloudSign(secret_key,secret_secret));
|
|
IBaseClient cloudBase = new CloudBase();
|
System.out.println(cloudBase.execute(cOrderCancelReq));
|
}
|
|
/**
|
* 指令打印接口
|
*/
|
public void testCloudPrintCommand() throws Exception{
|
PrintReq printReq = new PrintReq();
|
CloudPrintCommandParam cloudPrintCommandParam = new CloudPrintCommandParam();
|
cloudPrintCommandParam.setContent("");
|
cloudPrintCommandParam.setSiid("");
|
String t = System.currentTimeMillis() + "";
|
String param = new Gson().toJson(cloudPrintCommandParam);
|
|
printReq.setKey(key);
|
printReq.setMethod(ApiInfoConstant.CLOUD_PRINT_COMMAND);
|
printReq.setT(t);
|
printReq.setSign(SignUtils.printSign(param,t,key,secret));
|
printReq.setParam(param);
|
|
IBaseClient cloudPrintOld = new CloudPrintCommand();
|
System.out.println(cloudPrintOld.execute(printReq));
|
}
|
|
|
/**
|
* 面单取消(部分支持,详情请查看参数字典)
|
*/
|
public void testLabelCancel() throws Exception{
|
LabelCancelParam labelCancelParam = new LabelCancelParam();
|
labelCancelParam.setPartnerId("test");
|
labelCancelParam.setKuaidicom(CompanyConstant.SF);
|
labelCancelParam.setKuaidinum("SF1342567604302");
|
//快递公司订单号(对应下单时返回的kdComOrderNum,如果没有可以不传,否则必传)
|
labelCancelParam.setOrderId("01639366271685GNkZEX");
|
|
labelCancelParam.setReason("暂时不寄了");
|
String param = new Gson().toJson(labelCancelParam);
|
String t = System.currentTimeMillis() + "";
|
|
PrintReq printReq = new PrintReq();
|
printReq.setT(t);
|
printReq.setKey(key);
|
printReq.setMethod(ApiInfoConstant.CANCEL_METHOD);
|
printReq.setSign(SignUtils.printSign(param,t,key,secret));
|
printReq.setParam(param);
|
|
IBaseClient baseClient = new LabelCancel();
|
System.out.println(baseClient.execute(printReq));
|
}
|
|
/**
|
* 发货单接口
|
*
|
* @throws Exception
|
*/
|
public void testCloudPrintParcelsBill() throws Exception {
|
|
CloudPrintParcelsBillReq cloudPrintParcelsBillReq = new CloudPrintParcelsBillReq();
|
|
cloudPrintParcelsBillReq.setCallBackUrl("http://www.baidu.com");
|
cloudPrintParcelsBillReq.setTempid("164509714515858026");
|
cloudPrintParcelsBillReq.setSiid(siid);
|
|
|
String t = System.currentTimeMillis() + "";
|
String param = new Gson().toJson(cloudPrintParcelsBillReq);
|
|
PrintReq printReq = new PrintReq();
|
printReq.setKey(key);
|
printReq.setMethod(ApiInfoConstant.BILL_PARCELS_METHOD);
|
printReq.setSign(SignUtils.printSign(param,t,key,secret));
|
printReq.setT(t);
|
printReq.setParam(param);
|
|
IBaseClient parcelsBill = new CloudPrintParcelsBill();
|
System.out.println(parcelsBill.execute(printReq));
|
}
|
|
/**
|
* 获取店铺授权超链接接口
|
*
|
* @throws Exception
|
*/
|
public void testStoreAuth() throws Exception {
|
StoreAuthReq storeAuthReq = new StoreAuthReq();
|
storeAuthReq.setShopType(ThirdPlatformConstant.TAO_BAO);
|
storeAuthReq.setCallbackUrl("http://www.baidu.com");
|
storeAuthReq.setSalt("12345678");
|
String param = new Gson().toJson(storeAuthReq);
|
|
PrintReq printReq = new PrintReq();
|
printReq.setKey(key);
|
printReq.setSign(SignUtils.sign(param + key + secret));
|
printReq.setParam(param);
|
|
IBaseClient baseClient = new ThirdPlatformStoreAuth();
|
HttpResult result = baseClient.execute(printReq);
|
System.out.println(result);
|
if (result!=null && result.getStatus() == HttpStatus.SC_OK && result.getBody()!= null){
|
ThirdPlatformBaseResp<StoreAuthResp> storeAuthResp = new Gson().fromJson(result.getBody(),new TypeToken<ThirdPlatformBaseResp<StoreAuthResp>>(){}.getType());
|
}
|
}
|
|
/**
|
* 提交订单获取任务接口
|
*
|
* @throws Exception
|
*/
|
public void testCommitTask() throws Exception {
|
CommitTaskReq commitTaskReq = new CommitTaskReq();
|
commitTaskReq.setShopType(ThirdPlatformConstant.TAO_BAO);
|
commitTaskReq.setShopId("21231");
|
commitTaskReq.setOrderStatus(OrderStatus.UNSHIP.toString());
|
commitTaskReq.setUpdateAtMin("2022-02-17 16:00:00");
|
commitTaskReq.setUpdateAtMax("2022-02-17 16:30:00");
|
commitTaskReq.setCallbackUrl("http://www.baidu.com");
|
commitTaskReq.setSalt("12345678");
|
String param = new Gson().toJson(commitTaskReq);
|
|
PrintReq printReq = new PrintReq();
|
printReq.setKey(key);
|
printReq.setSign(SignUtils.sign(param + key + secret));
|
printReq.setParam(param);
|
|
IBaseClient baseClient = new ThirdPlatformOrderCommitTask();
|
HttpResult result = baseClient.execute(printReq);
|
System.out.println(result);
|
if (result!=null && result.getStatus() == HttpStatus.SC_OK && result.getBody()!= null){
|
ThirdPlatformBaseResp<CommitTaskResp> commitTaskResp = new Gson().fromJson(result.getBody(),new TypeToken<ThirdPlatformBaseResp<CommitTaskResp>>(){}.getType());
|
}
|
}
|
|
/**
|
* 获取店铺授权超链接接口
|
*
|
* @throws Exception
|
*/
|
public void testUploadNum() throws Exception {
|
UploadNumReq uploadNumReq = new UploadNumReq();
|
uploadNumReq.setShopType(ThirdPlatformConstant.TAO_BAO);
|
uploadNumReq.setShopId("413***377");
|
uploadNumReq.setOrderNum("1232321");
|
uploadNumReq.setKuaidiCom(CompanyConstant.YD);
|
uploadNumReq.setKuaidiNum("12345678");
|
String param = new Gson().toJson(uploadNumReq);
|
|
PrintReq printReq = new PrintReq();
|
printReq.setKey(key);
|
printReq.setSign(SignUtils.sign(param + key + secret));
|
printReq.setParam(param);
|
|
IBaseClient baseClient = new ThirdPlatformOrderUploadNum();
|
HttpResult result = baseClient.execute(printReq);
|
System.out.println(result);
|
if (result!=null && result.getStatus() == HttpStatus.SC_OK && result.getBody()!= null){
|
ThirdPlatformBaseResp baseResp = new Gson().fromJson(result.getBody(),new TypeToken<ThirdPlatformBaseResp>(){}.getType());
|
}
|
}
|
|
|
|
|
}
|