1.注册京东开放平台用户
2.根据业务需求成为平台接入模式(以ISV为例)
3.根据流程注册信息,进行认证入驻
4.订阅需要的服务应用
以上完成所有的入驻流程之后,根据业务所需参考开放平台提供的API文档进行调用即可。
以物流轨迹查询接口为例:
4.1 从京东开放平台提供Java的SDK
将其引入我的项目中:
此时我们需要在pom文件中加载到我们放在resource中的包:
<dependencies>
<dependency>
<groupId>com.huiyun.delivery</groupId>
<artifactId>lop-opensdk-support</artifactId>
<scope>system</scope>
<version>1.0.28</version>
<systemPath>${pom.basedir}\src\main\resources\lib\lop-opensdk-support-1.0.28-SNAPSHOT.jar</systemPath>
</dependency>
<dependency>
<groupId>com.huiyun.delivery</groupId>
<artifactId>CommonQueryOrderApi</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${pom.basedir}\src\main\resources\lib\CommonQueryOrderApi.jar</systemPath>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
4.2 接下来参考sdk里面提供的类进行引用即可。一些参数需要我们在平台中申请,自己申请即可。
package com.huiyun.delivery.service.Impl;
import com.alibaba.fastjson2.JSONObject;
import com.huiyun.common.core.exception.ServiceException;
import com.huiyun.delivery.enums.OrderOrigin;
import com.huiyun.delivery.model.DeliveryDetailRequestParam;
import com.huiyun.delivery.properties.JdlProperty;
import com.huiyun.delivery.service.JdlService;
import com.lop.open.api.sdk.DefaultDomainApiClient;
import com.lop.open.api.sdk.LopException;
import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetOrderTraceV1.CommonOrderTraceRequest;
import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetOrderTraceV1.CommonOrderTraceResponse;
import com.lop.open.api.sdk.domain.ECAP.CommonSubscribeTraceApi.commonSubscribeTraceV1.CommonSubscribeTraceRequest;
import com.lop.open.api.sdk.domain.ECAP.CommonSubscribeTraceApi.commonSubscribeTraceV1.Response;
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.EcapV1OrdersTraceQueryLopRequest;
import com.lop.open.api.sdk.request.ECAP.EcapV1OrdersTraceSubscribeLopRequest;
import com.lop.open.api.sdk.response.ECAP.EcapV1OrdersTraceQueryLopResponse;
import com.lop.open.api.sdk.response.ECAP.EcapV1OrdersTraceSubscribeLopResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class JdlServiceImpl implements JdlService {
@Autowired
private JdlProperty jdlProperty;
@Override
public String jdlOrderDeliveryDetail(DeliveryDetailRequestParam param) {
try {
String waybillCode = param.getMailNo();//运单号
EcapV1OrdersTraceQueryLopRequest request = new EcapV1OrdersTraceQueryLopRequest();
CommonOrderTraceRequest commonOrderTraceRequest = new CommonOrderTraceRequest();
commonOrderTraceRequest.setWaybillCode(waybillCode);
commonOrderTraceRequest.setOrderOrigin(OrderOrigin.KUAIDI_B2C.getValue());
commonOrderTraceRequest.setCustomerCode(jdlProperty.getCustomerCode());
LopPlugin lopPlugin = OAuth2PluginFactory.produceLopPlugin(jdlProperty.getAppKey(), jdlProperty.getAppSecret(), jdlProperty.getAccessToken());
request.setCommonOrderTraceRequest(commonOrderTraceRequest);
request.addLopPlugin(lopPlugin);
DefaultDomainApiClient client = new DefaultDomainApiClient("https://api.jdl.com",500,15000);
EcapV1OrdersTraceQueryLopResponse response = client.execute(request);
com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetOrderTraceV1.Response<CommonOrderTraceResponse> result = response.getResult();
Integer code = result.getCode();
String msg = result.getMsg();
CommonOrderTraceResponse data = result.getData();
String collect = JSONObject.toJSONString(data);
log.info("物流轨迹:" + collect);
return collect;
} catch (LopException e) {
log.error("物流查询异常");
throw new RuntimeException(e);
}
}
}