对接快递100&聚水潭API

 

       入我相思门,知我相思苦。

 

简介:对接第三方平台快递100&聚水潭API的简要总结。

1、感悟

个人感觉快递100的API更友好一些,比如有SDK可以调用;遇到阻塞要及时联系第三方相关责任人。

首先要对接一个第三方平台,当然绝大多数情况下只是对接其中的某些接口,接口开得多收费也就多。

第一步要到平台上的测试工具看,花钱买的一些协议参数是否能正常使用,简而言之就是到平台上去测试要调用的API是否可以访问,这一步可以了再到代码中去调用API。

2、快递100平台调试工具

3、代码调API

平台上的测试工具可以正常调用API后,到代码中调API。

首先要看平台上是否有调用API的demo;在代码中参数传递的时候要注意参考测试工具调用示例,参数一定要传递够,按照文档要求拼接请求地址URL,可以借助Hutool工具直接调用URL得到返回。

整个业务主要包括三个环节:生产消息,消费消息,保存消息。

生产消息:elactisearch上获取数据,处理数据得到调用API需要的参数及格式;

消费消息:消费消息就是调用平台API;

保存消息:调用平台API后返回信息,本地处理返回的信息。

  1. 1 import lombok.AllArgsConstructor;
  2. 2 import lombok.extern.slf4j.Slf4j;
  3. 3 import org.springframework.scheduling.annotation.Scheduled;
  4. 4 import org.springframework.stereotype.Component;
  5. 5
  6. 6 import java.util.List;
  7. 7
  8. 8 /**
  9. 9 * 定时任务
  10. 10 */
  11. 11 @Component
  12. 12 @AllArgsConstructor
  13. 13 @Slf4j
  14. 14 public class OrderScheduledTask {
  15. 15
  16. 16 private OmsOrderService omsOrderService;
  17. 17 private OmsOrderRepository omsOrderRepository;
  18. 18
  19. 19
  20. 20 /**
  21. 21 * 平台同步到本地定时任务
  22. 22 * 需要在启动类中加入: @EnableScheduling 启动定时任务
  23. 23 */
  24. 24 @Scheduled(fixedDelay = 10*60*1000) // 距离上次执行完10分钟后执行
  25. 25 public void omsOrderUploadScheduledTask() {
  26. 26 try {
  27. 27 log.info("平台同步到本地定时任务开始:{}", DateUtil.getCurDateTime());
  28. 28 //生产消息: 取数据:已同步
  29. 29 List<OmsOrder> orderList = omsOrderRepository.findBySynStatusAndPayStatus("1", "1");
  30. 30 // 处理数据:每次同步20 条数据
  31. 31 if (!orderList.isEmpty() && orderList.size() > 0) {
  32. 32 if (orderList.size() >= 20) {
  33. 33 // 消费消息 + 保存消息:
  34. 34 omsOrderService.updateDataToPool(orderList.subList(0, 20));
  35. 35 // 递归调用 omsOrderSearchScheduledTask
  36. 36 omsOrderSearchScheduledTask();
  37. 37 } else {
  38. 38 omsOrderService.updateDataToPool(orderList);
  39. 39 }
  40. 40 }else {
  41. 41 log.info("没有符合条件的订单,无需从平台同步数据");
  42. 42 }
  43. 43 } catch (Exception e) {
  44. 44 log.info("平台同步到本地定时任务exception: {}", e.getMessage());
  45. 45 }
  46. 46 log.info("平台同步到本地定时任务结束:{}", DateUtil.getCurDateTime());
  47. 47 }
  48. 48
  49. 49 }

调用API并接收返回:

  1. 1 // 传递协商定义好的url、header、body
  2. 2 String response = HttpRequest.post(concatUrl)
  3. 3 .header(“Content-Type”, application/x-www-form-urlencoded ”).body(String.valueOf(jsonObject)).execute().body();
  4. 4
  5. 5 JSONArray orders = (JSONArray) com.alibaba.fastjson.JSONObject.parseObject(response).get("data");
  6. 6 OrdersEntity entity = com.alibaba.fastjson.JSONObject.parseObject(String.valueOf(tempJson), OrdersEntity.class);

View Code

4、聚水潭

聚水潭API 调用过程步骤亦是如此:

 

 

 

       入我相思门

知我相思苦

 

 

版权声明:本文为taojietaoge原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/taojietaoge/p/14555618.html