PHP快递鸟 物流查询接口实现
Posted 依然范儿特西
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP快递鸟 物流查询接口实现相关的知识,希望对你有一定的参考价值。
官方网址: http://www.kdniao.com
即时查询api: http://www.kdniao.com/api-track
需要登录 ,申请一下 用户ID 和 API key
代码实现:
<?php //电商ID defined(\'EBusinessID\') or define(\'EBusinessID\', \'123456\'); //电商加密私钥,快递鸟提供,注意保管,不要泄漏 defined(\'AppKey\') or define(\'AppKey\', \'1234567890\'); //请求url:测试地址 //defined(\'ReqURL\') or define(\'ReqURL\', \'http://sandboxapi.kdniao.cc:8080/kdniaosandbox/gateway/exterfaceInvoke.json\'); //请求url:正式地址 defined(\'ReqURL\') or define(\'ReqURL\', \'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx\'); $kgs = "JD";//快递公司简称,官方有文档 $number = "12345678";//快递单号 //调用查询物流轨迹 //--------------------------------------------- $logisticResult=getOrderTracesByJson($kgs,$number); echo $logisticResult; //解析数据 $data = json_decode($logisticResult,true); if($data[\'Success\'] == true){//返回信息成功 $str = ""; if(isset($data[\'Traces\']) && !empty($data[\'Traces\'])){ for($i=0;$i<count($data[\'Traces\']);$i++){ $str .= "时间:".$data[\'Traces\'][$i][\'AcceptTime\']."<br/>地址:".$data[\'Traces\'][$i][\'AcceptStation\']."<br/>"; } } echo "您查询的单号是:".$data[\'LogisticCode\']."<br/> 物流信息:<br/>".$str.""; } //--------------------------------------------- /** * Json方式 查询订单物流轨迹 */ function getOrderTracesByJson($kgs,$number){ $requestData= "{\'OrderCode\':\'\',\'ShipperCode\':\'$kgs\',\'LogisticCode\':\'$number\'}"; $datas = array( \'EBusinessID\' => EBusinessID, \'RequestType\' => \'1002\', \'RequestData\' => urlencode($requestData) , \'DataType\' => \'2\', ); $datas[\'DataSign\'] = encrypt($requestData, AppKey); $result=sendPost(ReqURL, $datas); //根据公司业务处理返回的信息...... return $result; } /** * post提交数据 * @param string $url 请求Url * @param array $datas 提交的数据 * @return url响应返回的html */ function sendPost($url, $datas) { $temps = array(); foreach ($datas as $key => $value) { $temps[] = sprintf(\'%s=%s\', $key, $value); } $post_data = implode(\'&\', $temps); $url_info = parse_url($url); if(empty($url_info[\'port\'])) { $url_info[\'port\']=80; } $httpheader = "POST " . $url_info[\'path\'] . " HTTP/1.0\\r\\n"; $httpheader.= "Host:" . $url_info[\'host\'] . "\\r\\n"; $httpheader.= "Content-Type:application/x-www-form-urlencoded\\r\\n"; $httpheader.= "Content-Length:" . strlen($post_data) . "\\r\\n"; $httpheader.= "Connection:close\\r\\n\\r\\n"; $httpheader.= $post_data; $fd = fsockopen($url_info[\'host\'], $url_info[\'port\']); fwrite($fd, $httpheader); $gets = ""; $headerFlag = true; while (!feof($fd)) { if (($header = @fgets($fd)) && ($header == "\\r\\n" || $header == "\\n")) { break; } } while (!feof($fd)) { $gets.= fread($fd, 128); } fclose($fd); return $gets; } /** * 电商Sign签名生成 * @param data 内容 * @param appkey Appkey * @return DataSign签名 */ function encrypt($data, $appkey) { return urlencode(base64_encode(md5($data.$appkey))); } ?>
结果:
以上是关于PHP快递鸟 物流查询接口实现的主要内容,如果未能解决你的问题,请参考以下文章