您的位置:首页 > 运维架构 > 网站架构

电商网站接入快递查询

2015-11-05 16:45 591 查看

网页跳转格式

适用场景:在管理后台中,订单列表点击显示快递详情 和 订单详情页显示快递详情,使用 iframe 嵌入该URL

http://www.kuaidi100.com/chaxun?com=快递名称(可以中文英文)&nu=快递单号


快递名称:可以为中文或英文

快递单号:大小写不敏感

{
"message": "ok",
"nu": "100486292177",
"ischeck": "1",
"com": "yuantong",
"status": "200",
"condition": "F00",
"state": "3",
"data": [
{
"time": "2015-10-15 13:08:58",
"context": "客户 签收人: 邵雯雯 已签收 感谢使用圆通速递,期待再次为您服务",
"ftime": "2015-10-15 13:08:58"
},
{
"time": "2015-10-15 10:16:16",
"context": "广东省广州市天平架公司(点击查询电话)周** 派件中 派件员电话18002211198",
"ftime": "2015-10-15 10:16:16"
},
{
"time": "2015-10-15 08:23:10",
"context": "广东省广州市天平架公司 已收入",
"ftime": "2015-10-15 08:23:10"
},
{
"time": "2015-10-15 05:15:00",
"context": "广州转运中心 已发出,下一站 广东省广州市天平架",
"ftime": "2015-10-15 05:15:00"
},
{
"time": "2015-10-15 04:44:29",
"context": "广州转运中心 已收入",
"ftime": "2015-10-15 04:44:29"
},
{
"time": "2015-10-14 23:33:08",
"context": "虎门转运中心 已发出,下一站 广州转运中心",
"ftime": "2015-10-14 23:33:08"
},
{
"time": "2015-10-14 23:32:20",
"context": "虎门转运中心 已收入",
"ftime": "2015-10-14 23:32:20"
},
{
"time": "2015-10-13 20:32:22",
"context": "泰州转运中心 已发出,下一站 虎门转运中心",
"ftime": "2015-10-13 20:32:22"
},
{
"time": "2015-10-13 20:30:54",
"context": "泰州转运中心 已收入",
"ftime": "2015-10-13 20:30:54"
},
{
"time": "2015-10-13 18:04:50",
"context": "江苏省扬州市公司 已发出,下一站 江苏省泰州市",
"ftime": "2015-10-13 18:04:50"
},
{
"time": "2015-10-13 18:00:17",
"context": "江苏省扬州市公司 已打包",
"ftime": "2015-10-13 18:00:17"
},
{
"time": "2015-10-13 17:58:27",
"context": "江苏省扬州市公司(点击查询电话) 已揽收",
"ftime": "2015-10-13 17:58:27"
},
{
"time": "2015-10-13 15:44:59",
"context": "江苏省扬州市公司 取件人: 王莹莹 已收件",
"ftime": "2015-10-13 15:44:59"
}
]
}


快递JSON接口返回数据
PHP后台查询物流信息返回JSON数组的处理类

<?php
namespace Home\Controller;
use Think\Controller;

//物流查询控制器
class ExpController extends Controller {

//快递中英文对照数组
//注意因为本身数据库中的快递名称可能并不统一,使用正则表达式来匹配,所以这里的名称要尽量简短
//更多快递的对应参考快递100的对照文档 http://www.kuaidi100.com/openapi/api_post.shtml var $expNameArr = array(
'圆通'=>'yuantong',
'申通'=>'shentong',
'中通'=>'zhongtong',
'顺丰'=>'shunfeng',
'韵达'=>'yunda',
'邮政'=>'ems',
'EMS'=>'ems',
'ems'=>'ems',
'天天'=>'tiantian',
'百世汇通'=>'huitongkuaidi',
'联昊通'=>'lianhaowuliu',
);

/**
* 获得物流信息JSON
* @param string $expName 快递名称:中文
* @param string $expNum 快递单号:大小写不敏感
* @return array 快递100查询回来的信息JSON转换而成
*/
function getExpJSON($expName, $expNum){
//快递名匹配算法
$expNameEn = '';
foreach( $this->expNameArr as $key=>$val){
$pattern = '/'.$key.'/';
if( preg_match($pattern, $expName) ){
$expNameEn = $val;
}
}
//        var_dump($expNameEn);
//        $expNameEn = 'shentong';
//        $expNum = '220494269655';

//CURL方式获得JSON
$url = 'http://www.kuaidi100.com/query?type='.$expNameEn.'&postid='.$expNum;
$resStr = $this->curl_get_contents($url);
//转为array
return json_decode($resStr, TRUE);
}

/**
* CURL方式获得内容:通用
* @param string $url 网址
* @param int $timeout 超时时间(可选)
* @return string 页面内容
*/
function curl_get_contents($url,$timeout=1) {
$curlHandle = curl_init();
curl_setopt( $curlHandle , CURLOPT_URL, $url );
curl_setopt( $curlHandle , CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $curlHandle , CURLOPT_TIMEOUT, $timeout );
$result = curl_exec( $curlHandle );
curl_close( $curlHandle );
return $result;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: