• 微信公众平台消息接口开发(7)快递查询


    微信公众平台消息接口 微信公众平台开发 微信公众平台开发模式  快递查询
    作者:方倍工作室
    原文:http://www.cnblogs.com/txw1958/archive/2013/03/12/weixin-if7-express.html

    一、请求数据

    快递100提供快递查询接口. 

    通过向指定的地址发送请求,即可返回如JSON、XML等格式的跟综结果

    1、应用场景
    (1)电商网站用户打开“我的订单”时调用此API显示结果
    (2)物流系统对帐前调用此API查一次所有运单的签收状态
    2、是否需要授权
    是,
    3、请求地址
    http://api.kuaidi100.com/api?id=[]&com=[]&nu=[]&valicode=[]&show=[0|1|2|3]&muti=[0|1]&order=[desc|asc]
    (使用时请先将上述地址中的 中括号 替换成下面相应的值)

    4.输入参数

    名称类型是否必需  描述
    id String 身份授权key,请 快递查询接口 进行申请(大小写敏感)
    com String 要查询的快递公司代码,不支持中文,对应的公司代码见
    API URL 所支持的快递公司及参数说明》和《支持的国际类快递及参数说明》。
    如果找不到您所需的公司,请发邮件至 kuaidi@kingdee.com 咨询(大小写不敏感)
    nu String 要查询的快递单号,请勿带特殊符号,不支持中文(大小写不敏感)
    valicode String 已弃用字段,无意义,请忽略。
    show String 返回类型:
    0:返回json字符串,
    1:返回xml对象,
    2:返回html对象,
    3:返回text文本。
    如果不填,默认返回json字符串。
    muti String 返回信息数量:
    1:返回多行完整的信息,
    0:只返回一行信息。
    不填默认返回多行。
    order String 排序:
    desc:按时间由新到旧排列,
    asc:按时间由旧到新排列。
    不填默认返回倒序(大小写不敏感)

    5.返回结果

    字段名称  字段含义
    com 物流公司编号
    nu 物流单号
    time 每条跟踪信息的时间
    context 每条跟综信息的描述
    state 快递单当前的状态 : 
    0:在途,即货物处于运输过程中;
    1:揽件,货物已由快递公司揽收并且产生了第一条跟踪信息;
    2:疑难,货物寄送过程出了问题;
    3:签收,收件人已签收;
    4:退签,即货物由于用户拒签、超区等原因退回,而且发件人已经签收;
    5:派件,即快递正在进行同城派件;
    6:退回,货物正处于退回发件人的途中;
    该状态还在不断完善中,若您有更多的参数需求,欢迎发邮件至 kuaidi@kingdee.com 提出。
    status 查询结果状态:
    0:物流单暂无结果,
    1:查询成功,
    2:接口出现异常,
    message 无意义,请忽略
    condition 无意义,请忽略
    ischeck 无意义,请忽略

    6.返回示例

    XML格式
    <xml>
    <message>ok</message>
    <nu>1200722815552</nu>
    <ischeck>1</ischeck>
    <com>yunda</com>
    <status>1</status>
    <condition>F00</condition>
    <data>
    <time>2013-03-03 19:24:48</time>
    <context>江苏泗阳县公司:进行揽件扫描</context>
    </data>
    <data>
    <time>2013-03-03 19:25:10</time>
    <context>江苏泗阳县公司:进行发出扫描,将发往:江苏淮安中转站</context>
    </data>
    <data>
    <time>2013-03-03 21:44:47</time>
    <context>江苏淮安中转站:快件进入分拨中心进行分拨</context>
    </data>
    <data>
    <time>2013-03-04 03:22:44</time>
    <context>江苏南京中转站:从站点发出,本次转运目的地:江苏南京栖霞区仙林公司</context>
    </data>
    <data>
    <time>2013-03-04 08:25:03</time>
    <context>江苏南京栖霞区仙林公司:到达目的地网点,快件将很快进行派送</context>
    </data>
    <data>
    <time>2013-03-04 13:09:58</time>
    <context>江苏南京栖霞区仙林公司:进行派件扫描;派送业务员:孙;(</context>
    </data>
    <data>
    <time>2013-03-04 13:19:47</time>
    <context>江苏南京栖霞区仙林公司:快件已被 图片 签收</context>
    </data>
    <state>3</state>
    </xml>

    JSON格式
    {"message":"ok","status":"1","state":"3","data":
    [{"time":"2012-07-07 13:35:14","context":"客户已签收"},
     {"time":"2012-07-07 09:10:10","context":"离开 [北京石景山营业厅] 派送中,递送员[温],电话[]"},
     {"time":"2012-07-06 19:46:38","context":"到达 [北京石景山营业厅]"},
     {"time":"2012-07-06 15:22:32","context":"离开 [北京石景山营业厅] 派送中,递送员[温],电话[]"},
     {"time":"2012-07-06 15:05:00","context":"到达 [北京石景山营业厅]"},
     {"time":"2012-07-06 13:37:52","context":"离开 [北京_同城中转站] 发往 [北京石景山营业厅]"},
     {"time":"2012-07-06 12:54:41","context":"到达 [北京_同城中转站]"},
     {"time":"2012-07-06 11:11:03","context":"离开 [北京运转中心驻站班组] 发往 [北京_同城中转站]"},
     {"time":"2012-07-06 10:43:21","context":"到达 [北京运转中心驻站班组]"},
     {"time":"2012-07-05 21:18:53","context":"离开 [福建_厦门支公司] 发往 [北京运转中心_航空]"},
     {"time":"2012-07-05 20:07:27","context":"已取件,到达 [福建_厦门支公司]"}
    ]} 

    同时快递100提供Wap版查询接口为 
    http://wap.kuaidi100.com/


    其URL请求为

    http://wap.kuaidi100.com/wap_result.jsp?rand=35447&id=shentong&fromWeb=null&postid=568629598688&sub=%E6%9F%A5%E8%AF%A

     各参数如下:

    rand 随机数
    id 快递公司名称,此处shentong就是申通
    fronweb 是否从web提交
    postid 快递号码,此处为 568629598688
    sub 一个固定字段, %E6%9F%A5%E8%AF%A2解码后为 查询 两个汉字

    因此我们以上面为标准,构造查询请求.

    二、程序实现

    请参考

    <?php
    $typeCom = $_GET["com"];//快递公司
    $typeNu = $_GET["nu"];  //快递单号
    
    //echo $typeCom.'<br/>' ;
    //echo $typeNu ;
    
    $AppKey='XXXXXX';//请将XXXXXX替换成您在http://kuaidi100.com/app/reg.html申请到的KEY
    $url ='http://api.kuaidi100.com/api?id='.$AppKey.'&com='.$typeCom.'&nu='.$typeNu.'&show=2&muti=1&order=asc';
    
    //请勿删除变量$powered 的信息,否者本站将不再为你提供快递接口服务。
    $powered = '查询数据由:<a href="http://kuaidi100.com" target="_blank">KuaiDi100.Com (快递100)</a> 网站提供 ';
    
    $curl = curl_init();
    curl_setopt ($curl, CURLOPT_URL, $url);
    curl_setopt ($curl, CURLOPT_HEADER,0);
    curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($curl, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
    curl_setopt ($curl, CURLOPT_TIMEOUT,5);
    $get_content = curl_exec($curl);
    curl_close ($curl);
    
    print_r($get_content . '<br/>' . $powered);
    exit();
    ?>

    二、效果演示 

    更智能的快递查询功能请参考: 微信公众平台消息接口开发(33)智能快递查询

    欢迎关注方倍工作室微信,了解我们及行业的最新动态

  • 相关阅读:
    Linux中使用expect脚本实现远程机器自动登录_linux shell
    Linux: ssh命令 远程登录
    总结:PgSql备份pg_dump与还原pg_restore
    停电后,在UPS电源下服务器自动关机脚本
    总结:修改相关postgres用户密码
    问题解决:psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
    delphi 播放mp3
    delphi 获取文件路径函数
    Delphi XE2 使用dbExpress连接MySQL数据库
    kbmmemsql 查询
  • 原文地址:https://www.cnblogs.com/pondbay/p/3486485.html
Copyright © 2020-2023  润新知