1.参考快递鸟官方文档http://www.kdniao.com/api-allphp
2.快递查询代码以下,我是放在TP框架第三方类库里的html
<?php class Logistics{ private $EBusinessID = '';//电商ID 请填写本身的 private $AppKey = 'da3f362a-8d86-435d-8e93-8fae1dbe8a0a';//电商加密私钥,快递鸟提供,注意保管,不要泄漏 private $ReqURL = 'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx';//请求url /** * Json方式 物流信息订阅 * @param $ordercode 订单编号 $shippercode 快递公司编码 $logisticcode 物流单号 */ function logistics($ordercode,$shippercode,$logisticcode){ //测试接口:http://testapi.kdniao.cc:8081/Ebusiness/EbusinessOrderHandle.aspx //测试电商ID==1237100,AppKey==518a73d8-1f7f-441a-b644-33e77b49d846 $data = array( 'OrderCode' => $ordercode, 'ShipperCode' => $shippercode, 'LogisticCode' => $logisticcode ); $data = json_encode($data); $parameter = array( 'EBusinessID' => $this -> EBusinessID, 'RequestType' => '1002', 'RequestData' => urlencode($data), 'DataType' => '2', ); $parameter['DataSign'] = $this -> encrypt($data,$this -> AppKey); $result = $this -> sendPost($this -> ReqURL, $parameter); //根据公司业务处理返回的信息...... $result = json_decode($result,true); 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))); } }
3.在须要的地方直接调用代码便可json
vendor('Kdniao.Logistics'); $Logistics = new \Logistics(); $data = $Logistics -> logistics('1234','YD','3907850221005');