圆通快递 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_URLCANCEL_ORDER_URLQUERY_ORDER_URLWAYBILL_URL 需要根据实际情况进行修改。
  • 需要引入 org.apache.httpcomponents:httpclient:4.5.13 依赖。
  • 建议对 API 接口调用进行异常处理和错误码判断。

希望以上内容对您有所帮助。如果您有任何问题,请随时提出。

圆通快递 API Java 工具类:创建订单、获取运单号、取消订单、查询订单、生成面单

原文地址: http://www.cveoy.top/t/topic/mKkT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录