UasEisApplicationTests.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package com.uas.eis;
  2. import com.uas.eis.dao.*;
  3. import com.uas.eis.entity.sf.*;
  4. import com.uas.eis.service.ERPService;
  5. import com.uas.eis.utils.*;
  6. import org.junit.Test;
  7. import org.junit.runner.RunWith;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.boot.test.context.SpringBootTest;
  10. import org.springframework.test.context.junit4.SpringRunner;
  11. import com.sf.csim.express.service.CallExpressServiceTools;
  12. import com.sf.csim.express.service.HttpClientUtil;
  13. import com.sf.csim.express.service.IServiceCodeStandard;
  14. import com.sf.csim.express.service.code.ExpressServiceCodeEnum;
  15. import java.io.UnsupportedEncodingException;
  16. import java.util.*;
  17. @RunWith(SpringRunner.class)
  18. @SpringBootTest(classes = {UasEisApplication.class})
  19. public class UasEisApplicationTests {
  20. @Autowired
  21. private BaseDao baseDao;
  22. @Autowired
  23. private ERPService erpService;
  24. /**
  25. 丰桥新沙箱测试顾客编码 Yg4Zf06w_sxZs3A5D
  26. 校验码 3Xdk1jqeG1Xod9nUXus8Op7DNOkchTnw
  27. **/
  28. private static final String CLIENT_CODE = "JYXKJWFFJ88E"; //此处替换为您在丰桥平台获取的顾客编码
  29. //此处替换为您在丰桥平台获取的校验码
  30. private static final String CHECK_WORD_PROD = "GgO0UoyQ5FssNLItii3olo63bQ80ErAE"; //生产校验码
  31. private static final String CHECK_WORD_BOX ="rMBhSYRa9OtUPkfX5mow01NlxDWtI411";//沙箱校验码
  32. //沙箱环境的地址 -PRO
  33. private static final String CALL_URL_BOX = "https://sfapi-sbox.sf-express.com/std/service";
  34. //生产环境的地址 -PRO
  35. private static final String CALL_URL_PROD = "https://sfapi.sf-express.com/std/service";
  36. @Test
  37. public void TestApi() throws UnsupportedEncodingException {
  38. /**ExpressServiceCodeEnum 对应速运类-快递APIs
  39. POSTServiceCodeEnum 对应速运类-驿站APIs
  40. YJTServiceCodeEnum 对应解决方案-医寄通APIs
  41. EPSServiceCodeEnum 对应解决方案-快递管家APIs
  42. HZTServiceCodeEnum 对应解决方案-函证通APIs 2022-2-24 新增
  43. 详情见code目录下枚举类,客户可自行修改引用的该类
  44. **/
  45. IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_CREATE_ORDER; //下订单
  46. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_SEARCH_ORDER_RESP; //查订单
  47. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_UPDATE_ORDER;//订单取消
  48. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_FILTER_ORDER_BSP;//订单筛选
  49. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_SEARCH_ROUTES;//查路由
  50. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_GET_SUB_MAILNO;//子单号
  51. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_QUERY_SFWAYBILL;//查运费
  52. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_REGISTER_ROUTE;//注册路由
  53. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_CREATE_REVERSE_ORDER;//退货下单
  54. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_CANCEL_REVERSE_ORDER;//退货消单
  55. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_WANTED_INTERCEPT;//截单转寄
  56. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_QUERY_DELIVERTM;//时效标准及价格查询
  57. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.COM_RECE_CLOUD_PRINT_WAYBILLS;//面单打印
  58. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_UPLOAD_ROUTE;//路由上传
  59. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_SEARCH_PROMITM;//预计派送时间查询
  60. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_EXCE_CHECK_PICKUP_TIME;//揽件服务时间查询
  61. // IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_VALIDATE_WAYBILLNO;//运单号合法性校验
  62. CallExpressServiceTools tools=CallExpressServiceTools.getInstance();
  63. Map<String, String> params = new HashMap<String, String>();
  64. String timeStamp = String.valueOf(System.currentTimeMillis());
  65. String msgData = tools.packageMsgData(standardService);
  66. SFCreatOrderReq sfOrder = new SFCreatOrderReq();
  67. sfOrder.setOrderId("SD24090018-2");
  68. sfOrder.setMonthlyCard("7551234567");
  69. // 1,寄件方信息 2,到件方信息
  70. List<SFContactInfo> contactInfoList = new ArrayList<>();
  71. SFContactInfo sendInfo = new SFContactInfo();
  72. sendInfo.setContactType(1);
  73. sendInfo.setCompany("深圳市佳毅兴科技有限公司");
  74. sendInfo.setContact("窦慧怡");
  75. sendInfo.setMobile("18128820006");
  76. sendInfo.setAddress("广东省深圳市宝安区大宝路51号新柯城业园1栋5楼");
  77. contactInfoList.add(sendInfo);
  78. SFContactInfo receiveInfo = new SFContactInfo();
  79. receiveInfo.setContactType(2);
  80. receiveInfo.setCompany("深圳市豪锦瑞科技有限公司");
  81. receiveInfo.setContact("刘洋");
  82. receiveInfo.setMobile("18688770976");
  83. receiveInfo.setAddress("深圳市宝安区71区万源商务大厦B栋606");
  84. contactInfoList.add(receiveInfo);
  85. sfOrder.setContactInfoList(contactInfoList);
  86. List<SFCargoDetail> cargoDetails = new ArrayList<>();
  87. sfOrder.setCargoDetails(cargoDetails);
  88. msgData = FlexJsonUtil.toJsonDeep(sfOrder);
  89. params.put("partnerID", CLIENT_CODE); // 顾客编码 ,对应丰桥上获取的clientCode
  90. params.put("requestID", UUID.randomUUID().toString().replace("-", ""));
  91. params.put("serviceCode",standardService.getCode());// 接口服务码
  92. params.put("timestamp", timeStamp);
  93. params.put("msgData", msgData);
  94. params.put("msgDigest", tools.getMsgDigest(msgData,timeStamp,CHECK_WORD_BOX));
  95. long startTime = System.currentTimeMillis();
  96. // System.out.println("====调用请求:" + params.get("msgData"));
  97. System.out.println("====调用实际请求:" + params);
  98. String result = HttpClientUtil.post(CALL_URL_BOX, params);
  99. System.out.println("====调用丰桥的接口服务代码:" + String.valueOf(standardService.getCode()) + " 接口耗时:"+ String.valueOf(System.currentTimeMillis()-startTime)+"====");
  100. System.out.println("===调用地址 ==="+CALL_URL_BOX);
  101. System.out.println("===顾客编码 ==="+CLIENT_CODE);
  102. System.out.println("===返回结果:" +result);
  103. // Map<String,Object> resData = JacksonUtil.fromJson(result);
  104. SFApiResp sfApiResp = FlexJsonUtil.fromJson(result, SFApiResp.class);
  105. if(sfApiResp!=null){
  106. if("A1000".equals(sfApiResp.getApiResultCode())){
  107. String apiResultData = sfApiResp.getApiResultData();
  108. SFCreatOrderResp sfApiRespData = FlexJsonUtil.fromJson(apiResultData, SFCreatOrderResp.class);
  109. if(sfApiRespData.isSuccess()){
  110. SFCreateOrder sfOrderResp = sfApiRespData.getMsgData();
  111. if(!CollectionUtil.isEmpty(sfOrderResp.getWaybillNoInfoList())){
  112. for (SFWaybillNoInfo sfWaybillNoInfoResp:sfOrderResp.getWaybillNoInfoList()){
  113. System.out.println("顺丰物流单号: ====="+sfWaybillNoInfoResp.getWaybillNo());
  114. }
  115. }
  116. }else {
  117. System.out.println("errorCode:"+sfApiRespData.getErrorCode()+"====errorMsg:"+sfApiRespData.getErrorMsg());
  118. }
  119. }else {
  120. System.out.println("code:"+sfApiResp.getApiResultCode()
  121. +"===apiResponseID:"+sfApiResp.getApiResponseID()
  122. +"===apiErrorMsg:"+sfApiResp.getApiErrorMsg());
  123. }
  124. }
  125. }
  126. @Test
  127. public void TestCreatSFOrder(){
  128. Map<String, Object> res = erpService.creatSFOrder("JYX_TEST", 50734826,"ADMIN");
  129. System.out.println("res==="+res.get("success")+":"+res.get("message"));
  130. }
  131. @Test
  132. public void TestCancelSFOrder(){
  133. Map<String, Object> res = erpService.cancelSFOrder("JYX_TEST", 50734826,"ADMIN");
  134. System.out.println("res==="+res.get("success")+":"+res.get("message"));
  135. }
  136. }