search
HomeBackend DevelopmentPHP TutorialExample of how PHP calls the Express Bird interface

Example of how PHP calls the Express Bird interface

Oct 28, 2017 am 09:54 AM
phpExampleinterface

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(&#39;EBusinessID&#39;) or define(&#39;EBusinessID&#39;, &#39;电商ID&#39;);
//电商加密私钥,快递鸟提供,注意保管,不要泄漏
defined(&#39;AppKey&#39;) or define(&#39;AppKey&#39;, &#39;电商加密私钥&#39;);
//请求url
defined(&#39;ReqURL&#39;) or define(&#39;ReqURL&#39;, &#39;http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx&#39;);
//调用查询物流轨迹
//---------------------------------------------
$kgs = "STO";//快递公司简称,官方有文档
$number = "3335800028275";//快递单号//
$logisticResult = getOrderTracesByJson($kgs,$number);
$data = json_decode($logisticResult,true);
if($data[&#39;Success&#39;] == true){//返回信息成功
$str = "";
for($i=0;$i<count($data[&#39;Traces&#39;]);$i++){
$str .= "时间:".$data[&#39;Traces&#39;][$i][&#39;AcceptTime&#39;]."<br/>地址:".$data[&#39;Traces&#39;][$i][&#39;AcceptStation&#39;]."<br/>";
}
echo "您查询的单号是:".$data[&#39;LogisticCode&#39;]."<br/>
物流信息:<br/>".$str."";
}
//---------------------------------------------
/**
 * Json方式 查询订单物流轨迹
 *$kgs string 快递公司
 *$number string 快递单号
 */
function getOrderTracesByJson($kgs,$number){
$requestData= "{&#39;OrderCode&#39;:&#39;&#39;,&#39;ShipperCode&#39;:&#39;$kgs&#39;,&#39;LogisticCode&#39;:&#39;$number&#39;}";
$datas = array(
    &#39;EBusinessID&#39; => EBusinessID,
    &#39;RequestType&#39; => &#39;1002&#39;,
    &#39;RequestData&#39; => urlencode($requestData) ,
    &#39;DataType&#39; => &#39;2&#39;,
  );
  $datas[&#39;DataSign&#39;] = 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(&#39;%s=%s&#39;, $key, $value);
  }
  $post_data = implode(&#39;&&#39;, $temps);
  $url_info = parse_url($url);
if(empty($url_info[&#39;port&#39;]))
{
$url_info[&#39;port&#39;]=80;
}
  $httpheader = "POST " . $url_info[&#39;path&#39;] . " HTTP/1.0\r\n";
  $httpheader.= "Host:" . $url_info[&#39;host&#39;] . "\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[&#39;host&#39;], $url_info[&#39;port&#39;]);
  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:

##BFDF百福东BTWL百世ExpressCCESCCES ExpressCITY100City100COECOE Oriental ExpressCSCYChangsha ChuangyiCDSTKY Chengdu Shantu ExpressDBLDebon##DSWLDTWLEMSFASTFEDEXFEDEX_GJFKDGDEMSGSDGTOGTSDHFWLHHTTHLWLHOAUhq568##HTKY百世expressHXLWLHua Xia Long LogisticsHYLSDHaolaiyun ExpressJGSD京广ExpressJIUYEJiuye Supply Chain JJKYJiaji ExpressJLDTKerry LogisticsJTKD JET ExpressJXDJixiandaJYKDJinyue ExpressJYM加云美JYWLJiayi LogisticsKYWLCROSS LOGISTICSLBLongbang ExpressLHTLianhaotong Express Civil Aviation Express##MLWL Bright LogisticsNEDANDA ExpressPADTF平安达腾飞expressQCKDQuanchen ExpressQFKDQuanfeng ExpressQRT全日通expressRFD如风达SAD Saiao DeliverySAWL圣安LogisticsSBWL Shengbang LogisticsSDWL上大logisticsSFSF Express SFWL成峰logisticsSHWL SHENGHUI LOGISTICSST苏通LogisticsSTOSTO ExpressSTWLSagitar ExpressSURESuer ExpressTSSTOTangshan STOUAPEX全一ExpressUCUSU ExpressWJWL万家LogisticsWXWL万兴logisticsXBWLXinbang LogisticsXFEXXinfeng ExpressXYT西特XJXinjie LogisticsYADEX元Anda Express##ZTWLChina Railway LogisticsZYWLChina Post LogisticsAMAZONAmazon LogisticsSUBIDASUBIDA LogisticsRFEXRuifeng ExpressQUICKQuick ExpressCJKDIntercity ExpressCNPEX CNPEX China Post ExpressHOTSCMHongqiao Supply ChainHPTEX Haipaitong Logistics CompanyAYCAAustralia Post LinePANEX Panjie Express PCAPCA ExpressUEQUEQ Express
Encoding Name
AJ Anjie Express
ANE Anneng Logistics
AXD 安Xinda Express
BQXHM 北青Little Red Riding Hood
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
##MHKD
##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

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!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
What is the best way to send an email using PHP?What is the best way to send an email using PHP?May 08, 2025 am 12:21 AM

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

Best Practices for Dependency Injection in PHPBest Practices for Dependency Injection in PHPMay 08, 2025 am 12:21 AM

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.

PHP performance tuning tips and tricksPHP performance tuning tips and tricksMay 08, 2025 am 12:20 AM

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

PHP Email Security: Best Practices for Sending EmailsPHP Email Security: Best Practices for Sending EmailsMay 08, 2025 am 12:16 AM

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

How do you optimize PHP applications for performance?How do you optimize PHP applications for performance?May 08, 2025 am 12:08 AM

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

What is dependency injection in PHP?What is dependency injection in PHP?May 07, 2025 pm 03:09 PM

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

Best PHP Performance Optimization TechniquesBest PHP Performance Optimization TechniquesMay 07, 2025 pm 03:05 PM

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.

PHP Performance Optimization: Using Opcode CachingPHP Performance Optimization: Using Opcode CachingMay 07, 2025 pm 02:49 PM

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

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

mPDF

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

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SecLists

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

SublimeText3 English version

Recommended: Win version, supports code prompts!

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool