对接快递100&聚水潭API
作者:互联网
对接快递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 import lombok.AllArgsConstructor; 2 import lombok.extern.slf4j.Slf4j; 3 import org.springframework.scheduling.annotation.Scheduled; 4 import org.springframework.stereotype.Component; 5 6 import java.util.List; 7 8 /** 9 * 定时任务 10 */ 11 @Component 12 @AllArgsConstructor 13 @Slf4j 14 public class OrderScheduledTask { 15 16 private OmsOrderService omsOrderService; 17 private OmsOrderRepository omsOrderRepository; 18 19 20 /** 21 * 平台同步到本地定时任务 22 * 需要在启动类中加入: @EnableScheduling 启动定时任务 23 */ 24 @Scheduled(fixedDelay = 10*60*1000) // 距离上次执行完10分钟后执行 25 public void omsOrderUploadScheduledTask() { 26 try { 27 log.info("平台同步到本地定时任务开始:{}", DateUtil.getCurDateTime()); 28 //生产消息: 取数据:已同步 29 List<OmsOrder> orderList = omsOrderRepository.findBySynStatusAndPayStatus("1", "1"); 30 // 处理数据:每次同步20 条数据 31 if (!orderList.isEmpty() && orderList.size() > 0) { 32 if (orderList.size() >= 20) { 33 // 消费消息 + 保存消息: 34 omsOrderService.updateDataToPool(orderList.subList(0, 20)); 35 // 递归调用 omsOrderSearchScheduledTask 36 omsOrderSearchScheduledTask(); 37 } else { 38 omsOrderService.updateDataToPool(orderList); 39 } 40 }else { 41 log.info("没有符合条件的订单,无需从平台同步数据"); 42 } 43 } catch (Exception e) { 44 log.info("平台同步到本地定时任务exception: {}", e.getMessage()); 45 } 46 log.info("平台同步到本地定时任务结束:{}", DateUtil.getCurDateTime()); 47 } 48 49 }
调用API并接收返回:
1 // 传递协商定义好的url、header、body 2 String response = HttpRequest.post(concatUrl) 3 .header(“Content-Type”, “application/x-www-form-urlencoded ”).body(String.valueOf(jsonObject)).execute().body(); 4 5 JSONArray orders = (JSONArray) com.alibaba.fastjson.JSONObject.parseObject(response).get("data"); 6 OrdersEntity entity = com.alibaba.fastjson.JSONObject.parseObject(String.valueOf(tempJson), OrdersEntity.class);View Code
4、聚水潭
聚水潭API 调用过程步骤亦是如此:
入我相思门
知我相思苦
标签:调用,orderList,平台,快递,API,import,100 来源: https://www.cnblogs.com/taojietaoge/p/14555618.html