對接快遞100&聚水潭API

濤姐濤哥發表於2021-03-29

對接快遞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並接收返回:

對接快遞100&聚水潭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 呼叫過程步驟亦是如此:

 

 

 

       入我相思門

知我相思苦

 

 

相關文章