电商网站接入快递查询

来源:www.xysxzl.com时间:2021-03-12 10:05

柒星旅游网

网页跳转格式

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

电商网站接入快递查询

手机页跳转格式

适用场景:手机页在订单详情页中点击物流详情栏时跳转。

/index_all.html?type=快递名称(可以中文英文)&postid=快递单号&callbackurl=返回按钮的网址。

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

快递单号:大小写不敏感。

返回网址:以http://或https://开头的完整网址。

但这个不含返回按钮,在苹果上无法返回 /result.jsp?nu=快递单号,手机页跳转2。

JSON格式

类似于淘宝手机网页版中的订单详情页,适用场景:显示在用户或/和后台中的 订单列表页、订单详情页。

/query?type=快递英文名&postid=快递单号。

快递英文名:英文名称,参考对照表。

快递单号:大小写不敏感。

JSON返回信息示例。

其中的参数 'ischeck':'1' 表示已经签收。

{'message': 'ok','nu': '100486292177','ischeck': '1','com': 'yuantong','status': '200','condition': 'F00','state': '3','data': [。

{'time': '2015-','context': '客户 签收人: 邵雯雯 已签收 感谢使用圆通速递,期待再次为您服务','ftime': '2015-'},。

{'time': '2015-','context': '广东省广州市天平架公司(点击查询电话)周** 派件中 派件员电话','ftime': '2015-'},。

{'time': '2015-','context': '广东省广州市天平架公司 已收入','ftime': '2015-'},。

{'time': '2015-','context': '广州转运中心 已发出,下一站 广东省广州市天平架','ftime': '2015-'},。

{'time': '2015-','context': '广州转运中心 已收入','ftime': '2015-'},。

{'time': '2015-','context': '虎门转运中心 已发出,下一站 广州转运中心','ftime': '2015-'},。

{'time': '2015-','context': '虎门转运中心 已收入','ftime': '2015-'},。

{'time': '2015-','context': '泰州转运中心 已发出,下一站 虎门转运中心','ftime': '2015-'},。

{'time': '2015-','context': '泰州转运中心 已收入','ftime': '2015-'},。

{'time': '2015-','context': '江苏省扬州市公司 已发出,下一站 江苏省泰州市','ftime': '2015-'},。

{'time': '2015-','context': '江苏省扬州市公司 已打包','ftime': '2015-'},。

{'time': '2015-','context': '江苏省扬州市公司(点击查询电话) 已揽收','ftime': '2015-'},。

{'time': '2015-','context': '江苏省扬州市公司 取件人: 王莹莹 已收件','ftime': '2015-'}。

]

}

快递JSON接口返回数据。

PHP后台查询物流信息返回JSON数组的处理类。

namespace Home\Controller;useThink\Controller;//物流查询控制器。

class ExpController extendsController {//快递中英文对照数组。

所以这里的名称要尽量简短,//注意因为本身数据库中的快递名称可能并不统一,使用正则表达式来匹配。

//更多快递的对应参考快递100的对照文档 /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 = '/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;。

}

}

伪造IP地址,绕过IP地址的次数限制(未测试),在curl_get_contents中插入如下代码,(可能有用可能没用)。

$fakeIP = '211.'.rand(1,255).'.'.rand(1,255).'.'.rand(1,255);$header =['CLIENT-IP:'.$fakeIP,。

'X-FORWARDED-FOR:'.$fakeIP,];。

curl_setopt($curlHandle , CURLOPT_HTTPHEADER, $header);。

  • 万年基业宁波进击2.4亿拿春晓23万方旅游
  • 韩国永宗岛多家中国企业争相
  • 怀孕一个月出去旅游
  • 轮船韩国
  • 走回头路完美九寨沟环线旅行
  • 摩拜单车牵手首汽约车同一账号骑车打车
  • 广西北海自由攻略行程交通住宿防坑安全指南
  • 旅游行业未来发展潜力
  • 西乡十一游玩攻略
  • 传承红色基因必去八个浙江红色旅游
  • 精品行程推荐