最新消息:欢迎光临!

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

php findever 9300浏览 0评论

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

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

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

上图中有一个 追踪该订单 的链接,这个链接调用的是主题目录下的 template\shipping\tracking\popup.phtml 模板文件,为了达到自动跟踪快递的目的,我们来修改下这个文件,

由于是使用的自定义标题来作为快递名称,我们在这个文件中找到<?php elseif (isset($track[‘title’]) && isset($track[‘number’]) && $track[‘number’]): ?> 这个判断,也即129行左右位置(根据不同主题的自定义可能稍有不同),然后将整个判断作如下修改:

<?php elseif (isset($track['title']) && isset($track['number']) && $track['number']): ?>
 <!--if the tracking is custom value-->
 <!-- 重定向到快递100查询 -->
 <?php
 // 定义可查询的快递,以将要查询的快递转换成代码
 $exp_arr = array(
 '安信达' => 'anxindakuaixi',
 '百世汇通' => 'huitongkuaidi',
 '邦送' => 'bangsongwuliu',
 '德邦' => 'debangwuliu',
 'EMS' => 'ems',
 'E邮宝' => 'ems',
 '飞康达' => 'feikangda',
 '飞快达' => 'feikuaida',
 '凡客如风达' => 'rufengda',
 '风行天下' => 'fengxingtianxia',
 '飞豹' => 'feibaokuaidi',
 '港中能达' => 'ganzhongnengda',
 '国通' => 'guotongkuaidi',
 '共速达' => 'gongsuda',
 '汇通快运' => 'huitongkuaidi',
 '汇强' => 'huiqiangkuaidi',
 '华宇' => 'tiandihuayu',
 '恒路' => 'hengluwuliu',
 '华夏龙' => 'huaxialongwuliu',
 '海航天天' => 'tiantian',
 '海外环球' => 'haiwaihuanqiu',
 '河北建华' => 'hebeijianhua',
 '海盟' => 'haimengsudi',
 '华企快运' => 'huaqikuaiyun',
 '山东海红' => 'haihongwangsong',
 '佳吉' => 'jiajiwuliu',
 '佳怡' => 'jiayiwuliu',
 '加运美' => 'jiayunmeiwuliu',
 '京广' => 'jinguangsudikuaijian',
 '急先达' => 'jixianda',
 '晋越' => 'jinyuekuaidi',
 '捷特' => 'jietekuaidi',
 '金大' => 'jindawuliu',
 '嘉里大通' => 'jialidatong',
 '快捷' => 'kuaijiesudi',
 '康力' => 'kangliwuliu',
 '跨越' => 'kuayue',
 '联昊通' => 'lianhaowuliu',
 '龙邦' => 'longbanwuliu',
 '蓝镖' => 'lanbiaokuaidi',
 '乐捷递' => 'lejiedi',
 '立即送' => 'lijisong',
 '隆浪' => 'longlangkuaidi',
 '门对门' => 'menduimen',
 '明亮' => 'mingliangwuliu',
 '全晨' => 'quanchenkuaidi',
 '全际通' => 'quanjitong',
 '全日通' => 'quanritongkuaidi',
 '全一' => 'quanyikuaidi',
 '全峰' => 'quanfengkuaidi',
 '七天连锁' => 'sevendays',
 '如风达' => 'rufengda',
 '申通' => 'shentong',
 '顺丰' => 'shunfeng',
 '三态' => 'santaisudi',
 '盛辉' => 'shenghuiwuliu',
 '速尔' => 'suer',
 '盛丰' => 'shengfengwuliu',
 '上大' => 'shangda',
 '三态' => 'santaisudi',
 '山东海红' => 'haihongwangsong',
 '赛澳递' => 'saiaodi',
 '圣安' => 'shenganwuliu',
 '穗佳' => 'suijiawuliu',
 '天地华宇' => 'tiandihuayu',
 '天天' => 'tiantian',
 '万家' => 'wanjiawuliu',
 '万象' => 'wanxiangwuliu',
 '新邦' => 'xinbangwuliu',
 '信丰' => 'xinfengwuliu',
 '新蛋奥硕' => 'neweggozzo',
 '圆通' => 'yuantong',
 '韵达' => 'yunda',
 '运通' => 'yuntongkuaidi',
 '邮政' => 'youzhengguonei',
 '远成' => 'yuanchengwuliu',
 '亚风' => 'yafengsudi',
 '一邦' => 'yibangwuliu',
 '优速' => 'youshuwuliu',
 '源伟丰' => 'yuanweifeng',
 '元智捷诚' => 'yuanzhijiecheng',
 '越丰' => 'yuefengwuliu',
 '源安达' => 'yuananda',
 '忠信达' => 'zhongxinda',
 '芝麻开门' => 'zhimakaimen',
 '银捷' => 'yinjiesudi',
 '中通' => 'zhongtong',
 '宅急送' => 'zhaijisong',
 '中邮' => 'zhongyouwuliu',
 '忠信达' => 'zhongxinda',
 '中速快件' => 'zhongsukuaidi',
 '芝麻开门' => 'zhimakaimen',
 '中天万运' => 'zhongtianwanyun'
 );
 $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; ?>

其中的快递数组可以参考快递100的说明文档 http://www.kuaidi100.com/download/chaxun(20140729).doc 进行自定义,以上,就完成了接口的集成,感谢快递100免费提供这么好的接口。

转载请注明:Findever » magento集成快递100自动查询快递

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (3)

  1. 今天下午弄了一下午没弄好,现在用你这个,3分钟就实现了,感谢!
    Xmer4年前 (2015-08-26)回复
    • 不客气,好用就好
      findever4年前 (2015-08-28)