|
@@ -1,14 +1,107 @@
|
|
|
package com.ruoyi.logistics.service.impl;
|
|
package com.ruoyi.logistics.service.impl;
|
|
|
|
|
|
|
|
|
|
+import com.lop.open.api.sdk.DefaultDomainApiClient;
|
|
|
|
|
+import com.lop.open.api.sdk.LopException;
|
|
|
|
|
+import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCheckPreCreateOrderV1.CommonCreateOrderRequest;
|
|
|
|
|
+import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCheckPreCreateOrderV1.CommonProductInfo;
|
|
|
|
|
+import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCheckPreCreateOrderV1.Contact;
|
|
|
|
|
+import com.lop.open.api.sdk.plugin.LopPlugin;
|
|
|
|
|
+import com.lop.open.api.sdk.plugin.factory.OAuth2PluginFactory;
|
|
|
|
|
+import com.lop.open.api.sdk.request.ECAP.EcapV1OrdersCreateLopRequest;
|
|
|
|
|
+import com.lop.open.api.sdk.request.ECAP.EcapV1OrdersPrecheckLopRequest;
|
|
|
|
|
+import com.lop.open.api.sdk.response.ECAP.EcapV1OrdersCreateLopResponse;
|
|
|
|
|
+import com.lop.open.api.sdk.response.ECAP.EcapV1OrdersPrecheckLopResponse;
|
|
|
|
|
+import com.ruoyi.logistics.config.JDExpressConfig;
|
|
|
import com.ruoyi.logistics.domain.LogisticsOrder;
|
|
import com.ruoyi.logistics.domain.LogisticsOrder;
|
|
|
import com.ruoyi.logistics.service.LogisticsService;
|
|
import com.ruoyi.logistics.service.LogisticsService;
|
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+@Slf4j
|
|
|
@Service
|
|
@Service
|
|
|
public class JDLogisticsService implements LogisticsService {
|
|
public class JDLogisticsService implements LogisticsService {
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private JDExpressConfig jdExpressConfig;
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String precheckOrder() {
|
|
|
|
|
+ log.info("调用京东开放平台订单预校验接口");
|
|
|
|
|
+ try {
|
|
|
|
|
+ //设置接口域名(有的对接方案同时支持生产和沙箱环境,有的仅支持生产,具体以对接方案中的【API文档-请求地址】为准),生产域名:https://api.jdl.com 预发环境域名:https://uat-api.jdl.com
|
|
|
|
|
+ //DefaultDomainApiClient对象全局只需要创建一次
|
|
|
|
|
+ DefaultDomainApiClient client = new DefaultDomainApiClient(jdExpressConfig.getServerUrl(),500,15000);
|
|
|
|
|
+
|
|
|
|
|
+ //入参对象(请记得更换为自己要使用的接口入参对象)
|
|
|
|
|
+ EcapV1OrdersPrecheckLopRequest request = new EcapV1OrdersPrecheckLopRequest();
|
|
|
|
|
+
|
|
|
|
|
+ //设置入参(请记得更换为自己要使用的接口入参)
|
|
|
|
|
+ Contact senderContact = new Contact();
|
|
|
|
|
+ senderContact.setFullAddress("河北省廊坊市广阳区万庄镇中心小学");
|
|
|
|
|
+ Contact receiverContact = new Contact();
|
|
|
|
|
+ receiverContact.setFullAddress("河北省廊坊市广阳区万庄镇中心小学");
|
|
|
|
|
+ CommonCreateOrderRequest requestDTO = new CommonCreateOrderRequest();
|
|
|
|
|
+ requestDTO.setOrderOrigin(1);
|
|
|
|
|
+ requestDTO.setCustomerCode("010K****20");
|
|
|
|
|
+ CommonProductInfo productInfo = new CommonProductInfo();
|
|
|
|
|
+ productInfo.setProductCode("ed-m-0001");
|
|
|
|
|
+ requestDTO.setProductsReq(productInfo);
|
|
|
|
|
+ requestDTO.setReceiverContact(receiverContact);
|
|
|
|
|
+ requestDTO.setSenderContact(senderContact);
|
|
|
|
|
+ request.setRequest(requestDTO);
|
|
|
|
|
+
|
|
|
|
|
+ //设置插件,必须的操作,不同类型的应用入参不同,请看入参注释,公共参数按顺序分别为AppKey、AppSecret、AccessToken
|
|
|
|
|
+ //使用开放平台ISV/自研商家应用调用接口
|
|
|
|
|
+ LopPlugin lopPlugin = OAuth2PluginFactory.produceLopPlugin(jdExpressConfig.getAppKey(), jdExpressConfig.getAppSecret(), jdExpressConfig.getAccessToken());
|
|
|
|
|
+ request.addLopPlugin(lopPlugin);
|
|
|
|
|
+
|
|
|
|
|
+ EcapV1OrdersPrecheckLopResponse response = client.execute(request);
|
|
|
|
|
+ } catch (LopException e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ return "";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public String createOrder(LogisticsOrder logisticsOrder) {
|
|
public String createOrder(LogisticsOrder logisticsOrder) {
|
|
|
- return null;
|
|
|
|
|
|
|
+ log.info("调用京东开放平台订单预校验接口");
|
|
|
|
|
+ try {
|
|
|
|
|
+ //设置接口域名(有的对接方案同时支持生产和沙箱环境,有的仅支持生产,具体以对接方案中的【API文档-请求地址】为准),生产域名:https://api.jdl.com 预发环境域名:https://uat-api.jdl.com
|
|
|
|
|
+ //DefaultDomainApiClient对象全局只需要创建一次
|
|
|
|
|
+ DefaultDomainApiClient client = new DefaultDomainApiClient(jdExpressConfig.getServerUrl(),500,15000);
|
|
|
|
|
+
|
|
|
|
|
+ //入参对象(请记得更换为自己要使用的接口入参对象)
|
|
|
|
|
+ EcapV1OrdersCreateLopRequest request = new EcapV1OrdersCreateLopRequest();
|
|
|
|
|
+
|
|
|
|
|
+ //设置入参(请记得更换为自己要使用的接口入参)
|
|
|
|
|
+ com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact senderContact = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact();
|
|
|
|
|
+ senderContact.setFullAddress("河北省廊坊市广阳区万庄镇中心小学");
|
|
|
|
|
+ com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact receiverContact = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact();
|
|
|
|
|
+ receiverContact.setFullAddress("河北省廊坊市广阳区万庄镇中心小学");
|
|
|
|
|
+ com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonCreateOrderRequest requestDTO = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonCreateOrderRequest();
|
|
|
|
|
+ requestDTO.setOrderOrigin(1);
|
|
|
|
|
+ requestDTO.setCustomerCode("010K****20");
|
|
|
|
|
+ com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonProductInfo productInfo = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonProductInfo();
|
|
|
|
|
+ productInfo.setProductCode("ed-m-0001");
|
|
|
|
|
+ requestDTO.setProductsReq(productInfo);
|
|
|
|
|
+ requestDTO.setReceiverContact(receiverContact);
|
|
|
|
|
+ requestDTO.setSenderContact(senderContact);
|
|
|
|
|
+ request.setRequest(requestDTO);
|
|
|
|
|
+
|
|
|
|
|
+ //设置插件,必须的操作,不同类型的应用入参不同,请看入参注释,公共参数按顺序分别为AppKey、AppSecret、AccessToken
|
|
|
|
|
+ //使用开放平台ISV/自研商家应用调用接口
|
|
|
|
|
+ LopPlugin lopPlugin = OAuth2PluginFactory.produceLopPlugin(jdExpressConfig.getAppKey(), jdExpressConfig.getAppSecret(), jdExpressConfig.getAccessToken());
|
|
|
|
|
+ request.addLopPlugin(lopPlugin);
|
|
|
|
|
+
|
|
|
|
|
+ EcapV1OrdersCreateLopResponse response = client.execute(request);
|
|
|
|
|
+ } catch (LopException e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ return "";
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|