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> 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 content = new HashMap(); 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 = new Gson().fromJson(result.getBody(),new TypeToken>(){}.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 = new Gson().fromJson(result.getBody(),new TypeToken>(){}.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(){}.getType()); } } }