圆通快递 API Java 工具类:创建订单、获取运单号、取消订单、查询订单、生成面单
圆通快递 API Java 工具类
本文提供了一系列圆通快递 API 的 Java 工具类,方便开发者快速集成圆通快递服务,包含以下功能:
- 创建订单接口工具类
- 获取运单号工具类
- 取消订单接口工具类
- 查询订单接口工具类
- 面单工具类
每个工具类都包含详细的代码示例和测试案例,方便理解和使用。
1. 创建订单接口工具类
public class CreateOrderUtil {
private static final String CREATE_ORDER_URL = 'http://api.yto.net.cn/CommonOrderModeBPlusServlet.action';
public static String createOrder(String requestData) {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(CREATE_ORDER_URL);
StringEntity entity = new StringEntity(requestData, Charset.forName('UTF-8'));
entity.setContentEncoding('UTF-8');
entity.setContentType('application/x-www-form-urlencoded');
httpPost.setEntity(entity);
try {
CloseableHttpResponse response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
String result = EntityUtils.toString(responseEntity, 'UTF-8');
return result;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
测试案例:
public class CreateOrderUtilTest {
public static void main(String[] args) {
String requestData = 'logistics_interface=xxxxxx&data_digest=xxxxxx&clientId=xxxxxx&type=offline';
String response = CreateOrderUtil.createOrder(requestData);
System.out.println(response);
}
}
2. 获取运单号工具类
public class GetWaybillUtil {
private static final String GET_WAYBILL_URL = 'http://58.32.246.71:8000/CommonOrderModeBServlet.action';
public static String getWaybill(String requestData) {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(GET_WAYBILL_URL);
StringEntity entity = new StringEntity(requestData, Charset.forName('UTF-8'));
entity.setContentEncoding('UTF-8');
entity.setContentType('application/x-www-form-urlencoded');
httpPost.setEntity(entity);
try {
CloseableHttpResponse response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
String result = EntityUtils.toString(responseEntity, 'UTF-8');
return result;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
测试案例:
public class GetWaybillUtilTest {
public static void main(String[] args) {
String requestData = 'logistics_interface=xxxxxx&data_digest=xxxxxx&clientId=xxxxxx&type=offline';
String response = GetWaybillUtil.getWaybill(requestData);
System.out.println(response);
}
}
3. 取消订单接口工具类
public class CancelOrderUtil {
private static final String CANCEL_ORDER_URL = 'http://58.32.246.71:8000/CommonOrderModeBServlet.action';
public static String cancelOrder(String requestData) {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(CANCEL_ORDER_URL);
StringEntity entity = new StringEntity(requestData, Charset.forName('UTF-8'));
entity.setContentEncoding('UTF-8');
entity.setContentType('application/x-www-form-urlencoded');
httpPost.setEntity(entity);
try {
CloseableHttpResponse response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
String result = EntityUtils.toString(responseEntity, 'UTF-8');
return result;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
测试案例:
public class CancelOrderUtilTest {
public static void main(String[] args) {
String requestData = 'logistics_interface=xxxxxx&data_digest=xxxxxx&clientId=xxxxxx&custid=xxxxxx&mailno=xxxxxx';
String response = CancelOrderUtil.cancelOrder(requestData);
System.out.println(response);
}
}
4. 查询订单接口工具类
public class QueryOrderUtil {
private static final String QUERY_ORDER_URL = 'http://58.32.246.71:8000/CommonOrderStatusModeBServlet.action';
public static String queryOrder(String requestData) {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(QUERY_ORDER_URL);
StringEntity entity = new StringEntity(requestData, Charset.forName('UTF-8'));
entity.setContentEncoding('UTF-8');
entity.setContentType('application/x-www-form-urlencoded');
httpPost.setEntity(entity);
try {
CloseableHttpResponse response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
String result = EntityUtils.toString(responseEntity, 'UTF-8');
return result;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
测试案例:
public class QueryOrderUtilTest {
public static void main(String[] args) {
String requestData = 'logistics_interface=xxxxxx&data_digest=xxxxxx&clientId=xxxxxx&searchType=1&orderNo=xxxxxx';
String response = QueryOrderUtil.queryOrder(requestData);
System.out.println(response);
}
}
5. 面单工具类
public class WaybillUtil {
private static final String WAYBILL_URL = 'http://58.32.246.71:8000/CommonOrderInfoServlet.action';
public static String getWaybill(String requestData) {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(WAYBILL_URL);
StringEntity entity = new StringEntity(requestData, Charset.forName('UTF-8'));
entity.setContentEncoding('UTF-8');
entity.setContentType('application/x-www-form-urlencoded');
httpPost.setEntity(entity);
try {
CloseableHttpResponse response = httpClient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
String result = EntityUtils.toString(responseEntity, 'UTF-8');
return result;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
测试案例:
public class WaybillUtilTest {
public static void main(String[] args) {
String requestData = 'logistics_interface=xxxxxx&data_digest=xxxxxx&clientId=xxxxxx&mailno=xxxxxx';
String response = WaybillUtil.getWaybill(requestData);
System.out.println(response);
}
}
注意:
- 以上代码中
xxxxxx代表实际的 API 参数值,请根据实际情况进行替换。 GET_WAYBILL_URL、CANCEL_ORDER_URL、QUERY_ORDER_URL、WAYBILL_URL需要根据实际情况进行修改。- 需要引入
org.apache.httpcomponents:httpclient:4.5.13依赖。 - 建议对 API 接口调用进行异常处理和错误码判断。
希望以上内容对您有所帮助。如果您有任何问题,请随时提出。
原文地址: http://www.cveoy.top/t/topic/mKkT 著作权归作者所有。请勿转载和采集!