快递物流查询接口【最新版】_快递查询_数据API_电商-云市场-阿里云 (aliyun.com)
首先进行购买阿里云快递物流查询接口,有免费的,测试的话大家可以购买免费的,非常方便。

购买完成后,点击进入自己的控制台。就可以看到自己需要的参数数据:

以及上方提供的接口详情,点进去复制直接用即可。

对应的接口信息都有,只需对应放入所需参数即可使用。

JAVA代码实现:
获取所有物流的编码,其实不传编码依旧可以查到,95%能自动检测,但是为了百分百保证查到准确的建议传入当前的物流编码:如:中通 —> zto
代码中包含,查询物流的编码
逻辑如下:当发货人员发完货物,应记录商品的发货单号,以及物流编码存入数据库中。
查询时,获取当前订单,当前订单的发货单号,以及物流编码查询详细的物流详情。
import com.alibaba.fastjson2.JSONObject; import com.furnish.web.wn.vo.R; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.UnknownHostException; import java.util.List; import java.util.Map; @RestController @RequestMapping("/wnapp/wl") @CrossOrigin public class WuLiuController { / * 采用阿里云快递物流查询接口 ================ * @param */ @GetMapping ("/getWl") public String getWl(String no,String phone ,String type) {//物流码【4】请求参数,不知道可不填 95%能自动识别 //传过来电话的后四位 String host = "https://kdwlcxf.market.alicloudapi.com";// 【1】请求地址 支持http 和 https 及 WEBSOCKET String path = "/kdwlcx";// 【2】后缀 //TODO 测试用AppCode 后期需更改正式的 String appcode = ""; // 【3】开通服务后 买家中心-查看AppCode no = no+":"+phone; // 【4】请求参数,物流单号+电话后四位 String urlSend = host + path + "?no=" + no + "&type=" + type; // 【5】拼接请求链接 try { URL url = new URL(urlSend); HttpURLConnection httpURLCon = (HttpURLConnection) url.openConnection(); httpURLCon.setRequestProperty("Authorization", "APPCODE " + appcode);// 格式Authorization:APPCODE // (中间是英文空格) int httpCode = httpURLCon.getResponseCode(); if (httpCode == 200) { String json = read(httpURLCon.getInputStream()); // System.out.println("正常请求计费(其他均不计费)"); // System.out.println("获取返回的json:"); // System.out.print(json); return json; } else { Map
> map = httpURLCon.getHeaderFields(); String error = map.get("X-Ca-Error-Message").get(0); if (httpCode == 400 && error.equals("Invalid AppCode `not exists`")) { System.out.println("AppCode错误 "); } else if (httpCode == 400 && error.equals("Invalid Url")) { System.out.println("请求的 Method、Path 或者环境错误"); } else if (httpCode == 400 && error.equals("Invalid Param Location")) { System.out.println("参数错误"); } else if (httpCode == 403 && error.equals("Unauthorized")) { System.out.println("服务未被授权(或URL和Path不正确)"); } else if (httpCode == 403 && error.equals("Quota Exhausted")) { System.out.println("套餐包次数用完 "); } else if (httpCode == 403 && error.equals("Api Market Subscription quota exhausted")) { System.out.println("套餐包次数用完,请续购套餐"); } else { System.out.println("参数名错误 或 其他错误"); System.out.println(error); } } } catch (MalformedURLException e) { return "URL格式错误"; } catch (UnknownHostException e) { return "URL地址错误"; } catch (Exception e) { // 打开注释查看详细报错异常信息 // e.printStackTrace(); } return ""; } / * 查询物流编码 * @param type */ @GetMapping ("/getType") @ApiOperation("查询物流的公司编码") public String main(String type) { String host = "https://kdwlcxf.market.alicloudapi.com";// 【1】请求地址 支持http 和 https 及 WEBSOCKET String path = "/cExpressLists";// 【2】后缀 //TODO 个人测试用的,后续需更改正式的 String appcode = ""; // 【3】开通服务后 买家中心-查看AppCode String urlSend = host + path + "?type=" + type; // 【5】拼接请求链接 try { URL url = new URL(urlSend); HttpURLConnection httpURLCon = (HttpURLConnection) url.openConnection(); httpURLCon.setRequestProperty("Authorization", "APPCODE " + appcode);// 格式Authorization:APPCODE // (中间是英文空格) int httpCode = httpURLCon.getResponseCode(); if (httpCode == 200) { String json = read(httpURLCon.getInputStream()); System.out.println("正常请求计费(其他均不计费)"); System.out.println("获取返回的json:"); System.out.print(json); return json; } else { Map
> map = httpURLCon.getHeaderFields(); String error = map.get("X-Ca-Error-Message").get(0); if (httpCode == 400 && error.equals("Invalid AppCode `not exists`")) { System.out.println("AppCode错误 "); } else if (httpCode == 400 && error.equals("Invalid Url")) { System.out.println("请求的 Method、Path 或者环境错误"); } else if (httpCode == 400 && error.equals("Invalid Param Location")) { System.out.println("参数错误"); } else if (httpCode == 403 && error.equals("Unauthorized")) { System.out.println("服务未被授权(或URL和Path不正确)"); } else if (httpCode == 403 && error.equals("Quota Exhausted")) { System.out.println("套餐包次数用完 "); } else if (httpCode == 403 && error.equals("Api Market Subscription quota exhausted")) { System.out.println("套餐包次数用完,请续购套餐"); } else { System.out.println("参数名错误 或 其他错误"); System.out.println(error); } } } catch (MalformedURLException e) { System.out.println("URL格式错误"); } catch (UnknownHostException e) { System.out.println("URL地址错误"); } catch (Exception e) { // 打开注释查看详细报错异常信息 // e.printStackTrace(); } return ""; } /* * 读取返回结果 */ private static String read(InputStream is) throws IOException { StringBuffer sb = new StringBuffer(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = null; while ((line = br.readLine()) != null) { line = new String(line.getBytes(), "utf-8"); sb.append(line); } br.close(); return sb.toString(); } }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205433.html原文链接:https://javaforall.net
