IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    magento:集成快递100自动查询快递

    ed29发表于 2015-06-12 02:03:12
    love 0

    集成快递查询概述

    magento开发时有个需求,后台发货后,想让用户能实时跟踪包裹的快递信息,于是便想到集成快递100的接口,快递100提供了诸多的快递以及接口方式,非常的方便,由于我的网站主要是手机端接入,所以选择了html5接口,接口api使用可以参考:http://www.kuaidi100.com/openapi/mobileapi.shtml#f04

    查询快递效果图:

    magento集成快递100自动查询快递

    选择好接口后,接下来就是集成了,我这里选择的是magento的自定义快递公司的方式来添加快递,当然,如果你已经将国内常用快递集成入magento了也是一样的,只是使用的字段的差别。

    首先在后台订单选择发货,填写自定义的快递信息,如下图所示:

    magento-shipping

    上图中有一个追踪该订单的链接,这个链接调用的是主题目录下的template\shipping\tracking\popup.phtml模板文件,为了达到自动跟踪快递的目的,我们来修改下这个文件,由于是使用的自定义标题来作为快递名称,我们在这个文件中找到 这个判断,也即129行左右位置(根据不同主题的自定义可能稍有不同),然后将整个判断作如下修改:

    <!–if the tracking is custom value–><!–重定向到快递100查询 –><?php</p> <p>// 定义可查询的快递,以将要查询的快递转换成代码<br /> $exp_arr = array(<br /> ‘安信达’ => ‘anxindakuaixi’,<br /> ‘百世汇通’ => ‘huitongkuaidi’,<br /> ‘邦送’ => ‘bangsongwuliu’,<br /> ‘德邦’ => ‘debangwuliu’,<br /> ‘EMS’ => ’ems’,<br /> ‘E邮宝’ => ’ems’,<br /> ‘飞康达’ => ‘feikangda’,<br /> ‘飞快达’ => ‘feikuaida’,<br /> ‘凡客如风达’ => ‘rufengda’,<br /> ‘风行天下’ => ‘fengxingtianxia’,<br /> ‘飞豹’ => ‘feibaokuaidi’,<br /> ‘港中能达’ => ‘ganzhongnengda’,<br /> ‘国通’ => ‘guotongkuaidi’,<br /> ‘共速达’ => ‘gongsuda’,<br /> ‘汇通快运’ => ‘huitongkuaidi’,<br /> ‘汇强’ => ‘huiqiangkuaidi’,<br /> ‘华宇’ => ‘tiandihuayu’,<br /> ‘恒路’ => ‘hengluwuliu’,<br /> ‘华夏龙’ => ‘huaxialongwuliu’,<br /> ‘海航天天’ => ‘tiantian’,<br /> ‘海外环球’ => ‘haiwaihuanqiu’,<br /> ‘河北建华’ => ‘hebeijianhua’,<br /> ‘海盟’ => ‘haimengsudi’,<br /> ‘华企快运’ => ‘huaqikuaiyun’,<br /> ‘山东海红’ => ‘haihongwangsong’,<br /> ‘佳吉’ => ‘jiajiwuliu’,<br /> ‘佳怡’ => ‘jiayiwuliu’,<br /> ‘加运美’ => ‘jiayunmeiwuliu’,<br /> ‘京广’ => ‘jinguangsudikuaijian’,<br /> ‘急先达’ => ‘jixianda’,<br /> ‘晋越’ => ‘jinyuekuaidi’,<br /> ‘捷特’ => ‘jietekuaidi’,<br /> ‘金大’ => ‘jindawuliu’,<br /> ‘嘉里大通’ => ‘jialidatong’,<br /> ‘快捷’ => ‘kuaijiesudi’,<br /> ‘康力’ => ‘kangliwuliu’,<br /> ‘跨越’ => ‘kuayue’,<br /> ‘联昊通’ => ‘lianhaowuliu’,<br /> ‘龙邦’ => ‘longbanwuliu’,<br /> ‘蓝镖’ => ‘lanbiaokuaidi’,<br /> ‘乐捷递’ => ‘lejiedi’,<br /> ‘立即送’ => ‘lijisong’,<br /> ‘隆浪’ => ‘longlangkuaidi’,<br /> ‘门对门’ => ‘menduimen’,<br /> ‘明亮’ => ‘mingliangwuliu’,<br /> ‘全晨’ => ‘quanchenkuaidi’,<br /> ‘全际通’ => ‘quanjitong’,<br /> ‘全日通’ => ‘quanritongkuaidi’,<br /> ‘全一’ => ‘quanyikuaidi’,<br /> ‘全峰’ => ‘quanfengkuaidi’,<br /> ‘七天连锁’ => ‘sevendays’,<br /> ‘如风达’ => ‘rufengda’,<br /> ‘申通’ => ‘shentong’,<br /> ‘顺丰’ => ‘shunfeng’,<br /> ‘三态’ => ‘santaisudi’,<br /> ‘盛辉’ => ‘shenghuiwuliu’,<br /> ‘速尔’ => ‘suer’,<br /> ‘盛丰’ => ‘shengfengwuliu’,<br /> ‘上大’ => ‘shangda’,<br /> ‘三态’ => ‘santaisudi’,<br /> ‘山东海红’ => ‘haihongwangsong’,<br /> ‘赛澳递’ => ‘saiaodi’,<br /> ‘圣安’ => ‘shenganwuliu’,<br /> ‘穗佳’ => ‘suijiawuliu’,<br /> ‘天地华宇’ => ‘tiandihuayu’,<br /> ‘天天’ => ‘tiantian’,<br /> ‘万家’ => ‘wanjiawuliu’,<br /> ‘万象’ => ‘wanxiangwuliu’,<br /> ‘新邦’ => ‘xinbangwuliu’,<br /> ‘信丰’ => ‘xinfengwuliu’,<br /> ‘新蛋奥硕’ => ‘neweggozzo’,<br /> ‘圆通’ => ‘yuantong’,<br /> ‘韵达’ => ‘yunda’,<br /> ‘运通’ => ‘yuntongkuaidi’,<br /> ‘邮政’ => ‘youzhengguonei’,<br /> ‘远成’ => ‘yuanchengwuliu’,<br /> ‘亚风’ => ‘yafengsudi’,<br /> ‘一邦’ => ‘yibangwuliu’,<br /> ‘优速’ => ‘youshuwuliu’,<br /> ‘源伟丰’ => ‘yuanweifeng’,<br /> ‘元智捷诚’ => ‘yuanzhijiecheng’,<br /> ‘越丰’ => ‘yuefengwuliu’,<br /> ‘源安达’ => ‘yuananda’,<br /> ‘忠信达’ => ‘zhongxinda’,<br /> ‘芝麻开门’ => ‘zhimakaimen’,<br /> ‘银捷’ => ‘yinjiesudi’,<br /> ‘中通’ => ‘zhongtong’,<br /> ‘宅急送’ => ‘zhaijisong’,<br /> ‘中邮’ => ‘zhongyouwuliu’,<br /> ‘忠信达’ => ‘zhongxinda’,<br /> ‘中速快件’ => ‘zhongsukuaidi’,<br /> ‘芝麻开门’ => ‘zhimakaimen’,<br /> ‘中天万运’ => ‘zhongtianwanyun’<br /> );</p> <p>$preg=’/’. implode(‘|’, array_keys($exp_arr)).’/'; preg_match($preg, $this->escapeHtml($track[‘title’]), $matchs);if($matchs[0]){     $exp_code= $exp_arr[$matchs[0]];     $url=’http://m.kuaidi100.com/index_all.html?type=’.$exp_code.’&postid=’.$this->escapeHtml($track[‘number’]).’&callbackurl=javascript:history.go(-1);';if($rowCount<=1){     $url=’http://m.kuaidi100.com/index_all.html?type=’.$exp_code.’&postid=’.$this->escapeHtml($track[‘number’]).’&callbackurl=javascript:history.go(-2);window.opener=null;window.open(“”,”_self”);window.close();';     echo'<script>window.location.href=\”.$url.’\';</script>';}else{     echo”包裹”.$counter.”: <a href=’$url’> “.$track[‘title’].”: “.$track[‘number’].”</a>”;}}else{    if($rowCount<=1){         echo”<b style=’color:red’>对不起,系统暂时无法查询此快递,请至快递官网查询:”.$track[‘title’].”: “.$track[‘number’].”</b>”;    }else{         echo”包裹”.$counter.”: <a href=’javascript:void(0)’> “.$track[‘title’].”: “.$track[‘number’].”</a><b style=’color:red’>(对不起,系统暂时无法查询此快递,请至快递官网查询)</b>”;    }}?><?php endif;?></p> <p>其中的快递数组可以参考快递100的说明文档 <a href="http://www.kuaidi100.com/download/chaxun%2820140729%29.doc">http://www.kuaidi100.com/download/chaxun(20140729).doc</a> 进行自定义,以上,就完成了接口的集成,感谢快递100免费提供这么好的接口。</p> <p>→ 文件下载:<a href="http://ed29.com/wp-content/uploads/2015/06/magento-kuaidi100-track-shipping.zip">magento集成快递100自动查询快递源码文件</a></p> <p>转载自:<a href="http://ifindever.com">Findever</a> » <a href="http://ifindever.com/archives/240.html">magento集成快递100自动查询快递</a></p> <p> </p>



沪ICP备19023445号-2号
友情链接