使用手机号查询物流信息_栀郁的博客-程序员秘密

技术标签: java  

复盘一下。客户当时新增的需求。查了下,没找到对外开放的手机号查物流接口,但是有通过物流单号查询的。
思路如下:首先我们可以通过手机号。查出物流单号。再用物流单号去调用这个对外开放的物流信息接口。然后将得到的物流信息提取你想要的封装一下给前端显示就行了。至于物流单号的话,入库由发货人员填写。提供一个接口就好。用poi 下载发货信息表。然后发货人员填完已发货的一批单号后再导入。导入后就可以通过手机号查询到物流信息。导入前则显示商家暂未发货。

我用的接口
在这里插入图片描述
购买完去这里找Appcode 参数。代码会用到。这个接口有免费的100次可以测试。
在这里插入图片描述

下边写一下如何调用阿里云接口
1.导入依赖

  <!--快递单号物流查询阿里云接口begin-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.2.1</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <!--快递单号物流查询end-->

2.自己写的工具类。
就是把阿里云提供的java-sdk封装到方法里,提取一个参数。方便用手机号查出物流单号后。好调用。


import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;

import java.util.HashMap;
import java.util.Map;

public class ExpressUtil {
    
/**
     * 根据物流单号查询物流信息
     * @param expressNumbers
     */
public static String getExpress(String expressNumbers){
    
    String host = "https://qyexpress.market.alicloudapi.com";
    String path = "/composite/queryexpress";
    String method = "GET";
    String appcode=  "这里填你自己的Appcode";
    Map<String, String> headers = new HashMap<String, String>();
    //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 
    headers.put("Authorization", "APPCODE " + appcode);
    Map<String, String> querys = new HashMap<String, String>();
    // querys.put("mobile", "mobile");
    querys.put("number", expressNumbers);//这里的expressNumbers是物流单号

    try {
    
        /**
         * 重要提示如下:
         * HttpUtils请从
         * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
         * 下载
         *
         * 相应的依赖请参照
         * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
         */
        HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);
        //   System.out.println(response.toString());
        String s = EntityUtils.toString(response.getEntity());
        //获取response的body
       // System.out.println(s);
        return s;

    } catch (Exception e) {
    
        e.printStackTrace();
        return "";
    }

}
    public static void main(String[] args) {
    
        String express = getExpress("DPK368033655132");//这个单号是接口控制台提供的测试物流号
        System.out.println(express);


    }
}

物流单号查询的返回数据如下

"data": {
    
"number": "75426039407699",
"deliverystatus": 3,
"logo": "http://img.lundroid.com/zhongtong.png",
"list": [
{
    
"time": "2021-01-05 18:45",
"status": "您的快递已签收, 签收人在【菜鸟的广州吉山上街9号店】领取。如有疑问请电联:(18200933813), 投诉电话:(9519666), 您的快递已经妥投。风里来雨里去, 只为客官您满意。上有老下有小, 赏个好评好不好?【请在评价快递员处帮忙点亮五颗星星哦~】"
},
{
    
"time": "2020-12-31 16:53",
"status": "您的快递已暂存至【菜鸟的广州吉山上街9号店】。如有问题请电联:(18200933813), 投诉电话:(9519666), 感谢您使用中通快递, 期待再次为您服务!"
},
{
    
"time": "2020-12-31 15:04",
"status": "【广州黄埔】 的刘文浩(18200933813) 正在第1次派件, 请保持电话畅通,并耐心等待(95720为中通快递员外呼专属号码,请放心接听)"
},
{
    
"time": "2020-12-31 14:29",
"status": "快件已经到达 【广州黄埔】"
},
{
    
"time": "2020-12-31 08:24",
"status": "快件离开 【广州中心】 已发往 【广州黄埔】"
},
{
    
"time": "2020-12-31 08:09",
"status": "快件已经到达 【广州中心】"
},
{
    
"time": "2020-12-29 22:37",
"status": "快件离开 【华北转运中心】 已发往 【广州中心】"
},
{
    
"time": "2020-12-29 22:37",
"status": "快件已经到达 【华北转运中心】"
},
{
    
"time": "2020-12-29 20:49",
"status": "快件离开 【北京朝阳高碑店】 已发往 【华北转运中心】"
},
{
    
"time": "2020-12-29 17:31",
"status": "【北京朝阳高碑店】(010-65775900、010-59431892) 的 文兆国(13911850561) 已揽收"
}
],
"type": "zhongtong",
"typename": "中通速递"
},
"resp": {
    
"RespCode": 0,
"RespMsg": "ok"
}
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yuchenai/article/details/113435616

智能推荐

matlab求余数_subtitle_的博客-程序员秘密_matlab取余

matlab求余数给出了两个函数:mod和rem,官方也给出了两者的区别:根据需要选择合适的求余函数,记录一下。

云计算时代,企业IT资产安全运维利器——行云管家堡垒机_suancaiyu66的博客-程序员秘密

为了保障网络和数据不受来自外部和内部用户的入侵和破坏,企业通常通过部署堡垒机来管理企业内部IT资产。但随着云计算逐渐发展成为企业IT架构的基础设施,传统堡垒机很难适应云的变化,已经无法对企业IT资产进行更好更全面的系统运维和安全审计管控。不仅如此,由于传统堡垒机过于关注IT管理者层面的安全管理、权限控制,导致运维工程师在使用时不够简捷方便,大大降低了IT运维效率。由此,在云计算的浪潮下,行...

linux下usb驱动接口中端点介绍_枫_在路上的博客-程序员秘密

端点 USB 通讯的最基本形式是通过一个称为端点的东西。一个USB端点只能向一个方向传输数据(从主机到设备(称为输出端点)或者从设备到主机(称为输入端点))。端点可被看作一个单向的管道。 一个 USB 端点有 4 种不同类型, 分别具有不同的数据传送方式: 控制CONTROL 控制端点被用来控制对 USB 设备的不同部分访问. 通常用作配置设备、获取设备信息、发送命令到设备或获取

Java核心基础第1篇-走进Java世界_普通网友的博客-程序员秘密

一、Java简介1.1 Java概述Java从一开始就以友好的语法、面向对象、内存管理和最棒的跨平台可移植性来吸引程序员。写一次就可以在所有地方执行( write-once/run-anywhere)的特性简直太厉害了。image-202105061122543701.2 Java名称的由来Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,...

apex在windows上的安装_Git-Csdn的博客-程序员秘密

第一天,用官网最下面那个命令不行,https://github.com/NVIDIA/apex/最后直接用这个命令装上了:python setup.py install删除的时候除了要把apex-master删除,C:\Users\Administrator\Anaconda3\envs\slimyolo\Lib\site-packages路径下apex-0.1-py3.6-w...

Overleaf v2 评测_stay_foolish12的博客-程序员秘密

Overleaf v2 评测去年,两个著名的Latex在线编辑器Overleaf和Sharelatex合并了,强强联手,让我们对他们合并之后的新产品充满了期待。最近,他们的新产品发布了!这就是Overleaf v2。现在,你可以访问v2.overleaf.com试用可能是迄今最强大的Latex在线编辑器。如果你以前注册过Overleaf或者Sharelatex,你不需要注册新的...

随便推点

计算机无法访问dota服务器,dota2无法与任何服务器建立连接如何解决_懒床上的猫的博客-程序员秘密

dota2是很多朋友都喜欢玩的一款对战游戏,不过在游戏的过程中也会出现一些问题,比如dota2无法连接服务器的情况,那么dota2无法与任何服务器建立连接如何解决呢?不能连接服务器就很让人郁闷了,下面小编 来介绍dota2无法与任何服务器建立连接解决方法。dota2无法与任何服务器建立连接如何解决?具体解决方法如下:1、在Windows10系统桌面,右键点击桌面底部的任务栏空白位置,然后在弹出菜单...

echarts的legend过多显示分页效果_跳跳的小古风的博客-程序员秘密_echarts legend 太多

legend: { itemHeight: 12, //圆点大小 itemWidth: 12, width: "70%", itemGap: 29, type: "scroll",//这句 icon: "circle", top: 5, right: "center", textStyle: { //图例文字的样式 color: "#fff", fontSize: 14 }

js_01JavaScript 简介_不一般的菜瓜的博客-程序员秘密

JavaScript 简介JavaScript 简介JavaScript 简史JavaScript 实现1.ECMAScript2.文档对象模型(DOM)3. 浏览器对象模型(BOM)总结:JavaScript 简介JavaScript 简史JavaScript 名字的由来:布兰登·艾奇计划在1995年2月发布的Netscape Navigator 2 开发LiveScript 的脚本语言——该语言将同时在浏览器和服务器中使用。后来Netscape在与Sun合作之后将其改名为JavaScript。J

前端架构模式:支持前端的后端_普通网友的博客-程序员秘密

英文 |https://medium.com/frontend-at-scale/frontend-architectural-patterns-backend-for-fronten...

Windows上远程访问MySQL数据库_琅琊Team的博客-程序员秘密_mysql windows 远程访问

最近有个项目,多台机器需要共享条码信息,又不想额外写一个程序去进行调度,就想到用远程访问数据库的方式来实现多台机器之间的条码共享。 数据库安装完成后,默认的localhost登录。远程电脑如果要访问肯定是需要添加IP地址的。(代码为Python3) 接下来讲重点,就是主机数据库设置(上面代码可以看出如果把host放到config里面,可以保证每台机的代码都一样) 1.Win+R,打开输入cmd,打开命令行 2.将工作目录切换到My...

HDU2040-亲和数_joeycom2的博客-程序员秘密

题目出自杭电 首先解释何谓亲和数 亲和数是对于两个数来说的。如果两个数a和b,a的所有除本身以外的因数之和等于b,b的所有除本身以外的因数之和等于a,则称a,b是一对亲和数。 思路:对于输入的数A,算出它的所有真约数的和C,若C=B,则A和B是亲和数。反之不是。 上代码#include <stdio.h>int n,m;int sum(int n){ int sum =1,