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!

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

The reason for using Dependency Injection (DI) is that it promotes loose coupling, testability, and maintainability of the code. 1) Use constructor to inject dependencies, 2) Avoid using service locators, 3) Use dependency injection containers to manage dependencies, 4) Improve testability through injecting dependencies, 5) Avoid over-injection dependencies, 6) Consider the impact of DI on performance.

PHPperformancetuningiscrucialbecauseitenhancesspeedandefficiency,whicharevitalforwebapplications.1)CachingwithAPCureducesdatabaseloadandimprovesresponsetimes.2)Optimizingdatabasequeriesbyselectingnecessarycolumnsandusingindexingspeedsupdataretrieval.

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa

TooptimizePHPapplicationsforperformance,usecaching,databaseoptimization,opcodecaching,andserverconfiguration.1)ImplementcachingwithAPCutoreducedatafetchtimes.2)Optimizedatabasesbyindexing,balancingreadandwriteoperations.3)EnableOPcachetoavoidrecompil

DependencyinjectioninPHPisadesignpatternthatenhancesflexibility,testability,andmaintainabilitybyprovidingexternaldependenciestoclasses.Itallowsforloosecoupling,easiertestingthroughmocking,andmodulardesign,butrequirescarefulstructuringtoavoidover-inje

PHP performance optimization can be achieved through the following steps: 1) use require_once or include_once on the top of the script to reduce the number of file loads; 2) use preprocessing statements and batch processing to reduce the number of database queries; 3) configure OPcache for opcode cache; 4) enable and configure PHP-FPM optimization process management; 5) use CDN to distribute static resources; 6) use Xdebug or Blackfire for code performance analysis; 7) select efficient data structures such as arrays; 8) write modular code for optimization execution.

OpcodecachingsignificantlyimprovesPHPperformancebycachingcompiledcode,reducingserverloadandresponsetimes.1)ItstorescompiledPHPcodeinmemory,bypassingparsingandcompiling.2)UseOPcachebysettingparametersinphp.ini,likememoryconsumptionandscriptlimits.3)Ad


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SublimeText3 English version
Recommended: Win version, supports code prompts!

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool
