The blogger recently needed to make a logistics informationquery, so he went to the InternetSearchfor a courier bird APIinterface, the return value is in JSON format, only If you need to return it and convert it into an array, you can easily implement various instances. The picture below shows the schematic interface of the Express Bird API. The blogger is afraid that some novices (I don’t mean to ridicule, the blogger also came from a novice) don’t know the process very well.
Express Bird flow chart
Because it is free, there are many restrictions, such as a maximum of 3,000 queries per day and real-name authentication.
The blogger posted the blogger’s code here:
<?php //电商ID defined('EBusinessID') or define('EBusinessID', '电商ID'); //电商加密私钥,快递鸟提供,注意保管,不要泄漏 defined('AppKey') or define('AppKey', '电商加密私钥'); //请求url defined('ReqURL') or define('ReqURL', 'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx'); //调用查询物流轨迹 //--------------------------------------------- $kgs = "STO";//快递公司简称,官方有文档 $number = "3335800028275";//快递单号// $logisticResult = getOrderTracesByJson($kgs,$number); $data = json_decode($logisticResult,true); if($data['Success'] == true){//返回信息成功 $str = ""; 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方式 查询订单物流轨迹 *$kgs string 快递公司 *$number string 快递单号 */ 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))); } ?>
Rendering:
Schematic diagram of php calling Express Bird interface
Express company code:
Encoding | Name |
AJ | Anjie Express |
ANE | Anneng Logistics |
AXD | 安Xinda Express |
BQXHM | 北青Little Red Riding Hood |
百福东 | |
百世Express | |
CCES Express | |
City100 | |
COE Oriental Express | |
Changsha Chuangyi | |
Chengdu Shantu Express | |
Debon | |
DspeedLogistics | |
大田logistics | |
EMS | |
Fast Express | |
FEDEX Federal (Domestic) | |
FEDEX Federal(International) | |
飞康达 | |
Guangdong Post | |
公速达 | |
国通Express | |
High Speed Rail Express | |
HSBC Logistics | |
天天express | |
Henglu Logistics | |
天地华宇 | |
Huaqiang Logistics | ##HTKY |
HXLWL | |
HYLSD | |
JGSD | |
JIUYE | |
JJKY | |
JLDT | |
JTKD | |
JXD | |
JYKD | |
JYM | |
JYWL | |
KYWL | |
LB | |
LHT | |
##MHKD | |
##MLWL | Bright Logistics |
NEDA | NDA Express |
PADTF | 平安达腾飞express |
QCKD | Quanchen Express |
QFKD | Quanfeng Express |
QRT | 全日通express |
RFD | 如风达 |
SAD | Saiao Delivery |
SAWL | 圣安Logistics |
SBWL | Shengbang Logistics |
SDWL | 上大logistics |
SF | SF Express |
SFWL | 成峰logistics |
SHWL | SHENGHUI LOGISTICS |
ST | 苏通Logistics |
STO | STO Express |
STWL | Sagitar Express |
SURE | Suer Express |
TSSTO | Tangshan STO |
UAPEX | 全一Express |
UC | USU Express |
WJWL | 万家Logistics |
WXWL | 万兴logistics |
XBWL | Xinbang Logistics |
XFEX | Xinfeng Express |
XYT | 西特 |
XJ | Xinjie Logistics |
YADEX | 元Anda Express |
##YCWL | Yuancheng Logistics |
YD | Yunda Express |
YDH | Yida International Logistics |
YFEX | Yuefeng Logistics |
YFHEX | former Flying Logistics |
YFSD | Yafeng Express |
YTKD | Express Express |
YTO | YTO Express |
YXKD | Yixiang Express |
YZPY | Postal surface mail/small package |
ZENY | Gain Express |
ZHQKD | Huiqiang Express |
ZJS | Home delivery |
ZTE | Zhongtong Express |
ZTKY | China Railway Express |
ZTO | 中通Express |
China Railway Logistics | |
China Post Logistics | |
Amazon Logistics | |
SUBIDA Logistics | |
Ruifeng Express | |
Quick Express | |
Intercity Express | |
CNPEX China Post Express | |
Hongqiao Supply Chain | |
Haipaitong Logistics Company | |
Australia Post Line | |
Panjie Express | |
PCA Express | |
UEQ Express | |
The above is the detailed content of Example of how PHP calls the Express Bird interface. For more information, please follow other related articles on the PHP Chinese website!