Home  >  Article  >  Backend Development  >  Express Bird query API interface usage (PHP version)

Express Bird query API interface usage (PHP version)

不言
不言Original
2018-05-02 15:03:403544browse

This article mainly introduces the use of Express Bird query API interface (PHP version), which has certain reference value. Now I share it with everyone. Friends in need can refer to it


Premise

During project development, some requirements will inevitably use some API interfaces about express delivery; this article mainly introduces the query API of express delivery and its differences with other companies ;

Commonly used express API interfaces include:

  1. Express Bird

  2. Express 100

  3. Aicha Express
    Wait

If you have used it, Express 100 and Aicha Express and other websites provide express query While waiting for the interface, you will find that the number of times the account or key you applied for can call the API interface is limited. Some are 2,000 times/day, and some are 5,000 times/time. The only thing that troubles you is that the user is required to add External links, while Express Bird does not require users to add external links. For users without portals, there are nothing more than very stringent requirements; moreover, the excess needs to be paid to use.

Express Bird, the request Api interface is unlimited times, and is free forever

Of course, for you For small needs, Express 100 and Aicha Express can meet your needs; however, if there are too many requests on a certain day, your query service will have to stop, affecting your product experience; therefore, it is recommended that you directly Use Express Bird to get it done in one step.

Application scenario


Query the logistics information of the order

Express Bird query API interface usage (PHP version)

Achievable requirements

  1. The App is directly integrated to implement the express logistics information query API interface

  2. In the WeChat public account, according to the order number entered by the user, our backend Identify the order number and query the express API interface according to Express Bird to realize the automatic query function

  3. etc.

Apply for Key


http://www.kdniao.com/ServiceApply.aspx

Fill in the information completely according to your information, and click Submit Application.

After logging in successfully, you can see information such as ID and key. With this information, you can request queries and other interface APIs

Express Bird query API interface usage (PHP version)

Express query Api interface


Interface documentation and development language Demo

Query Api interface definition

System-level input parameters

Parameter name Type Must require Description
RequestData String R The request content, in JSON or XML format, must be consistent with the DataType
EBusinessID String R User ID
RequestType String R Request command type: 1002
DataSign String R Data content signature
DataType String O Request and return data types: 1-xml, 2-json; the default is xml format

Application-level input parameters

Parameter name Type Required Description
OrderCode varchar(50) O OrderCode
ShipperCode varchar(10) R Express company code
LogisticCode varchar(50) R Logistics order number

Return result parameters

##TracesVarchar(Max)R
Parameter name Type Must require Description
EBusinessID Int R E-Commerce User ID
OrderCode Varchar(50) O Order number
ShipperCode varchar(10) R Express company code
LogisticCode Varchar(50) R logistics waybill number
Success Bool R Success
Reason Varchar(50) O Failure reason
State Int R Logistics status 1: Picked up 2: On the way 3: Signed for receipt
Logistics track details
##Logistics track details

Parameter nameAcceptTimeAcceptStationRemarkRequest JSON parameters
Type Required Description
DateTime R Time
Varchar(50) R Description
Varchar(150) O Remark
{
    "OrderCode" : "",
    "ShipperCode" : "SF",
    "LogisticCode" : "118650888018"}

Response JSON parameters

{
    "EBusinessID" : "1109259",
    "OrderCode" : "",
    "ShipperCode" : "SF",
    "LogisticCode" : "118461988807",
    "Success" : true,
    "State" : 3,
    "Reason" : null,
    "traces" : [{
            "AcceptTime" : "2014/06/25 08:05:37",
            "AcceptStation" : "正在派件..(派件人:邓裕富,电话:18718866310)[深圳 市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/25 04:01:28",
            "AcceptStation" : "快件在 深圳集散中心 ,准备送往下一站 深圳 [深圳市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/25 01:41:06",
            "AcceptStation" : "快件在 深圳集散中心 [深圳市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/24 20:18:58",
            "AcceptStation" : "已收件[深圳市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/24 20:55:28",
            "AcceptStation" : "快件在 深圳 ,准备送往下一站 深圳集散中心 [深圳市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/25 10:23:03",
            "AcceptStation" : "派件已签收[深圳市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/25 10:23:03",
            "AcceptStation" : "签收人是:已签收[深圳市]",
            "Remark" : null
        }
    ]}

Query Api interface usage

Take PHP development language as an example, To expand

<?php
//电商ID
defined(&#39;EBusinessID&#39;) or define(&#39;EBusinessID&#39;, &#39;请到快递鸟官网申请http://kdniao.com/reg&#39;);
//电商加密私钥,快递鸟提供,注意保管,不要泄漏
defined(&#39;AppKey&#39;) or define(&#39;AppKey&#39;, &#39;请到快递鸟官网申请http://kdniao.com/reg&#39;);
//请求url
defined(&#39;ReqURL&#39;) or define(&#39;ReqURL&#39;, &#39;http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx&#39;);


//调用查询物流轨迹
//---------------------------------------------


$logisticResult=getOrderTracesByJson();
echo logisticResult;


//---------------------------------------------
 
/**
 * Json方式 查询订单物流轨迹
 */
function getOrderTracesByJson(){	$requestData= "{&#39;OrderCode&#39;:&#39;&#39;,&#39;ShipperCode&#39;:&#39;YTO&#39;,&#39;LogisticCode&#39;:&#39;12345678&#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)));
}


?>

other API interfaces, please go to Express Bird to view the relevant documents in detail.

Warm Tips

If your product needs to be docked or integrated with the express interface,
Express Bird

is a good choice; we will provide you with professional technical support personnel ; There is no limit to the number of inquiries and it is free forever.

The above is the detailed content of Express Bird query API interface usage (PHP version). 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
Previous article:PHP middleware ICENext article:PHP middleware ICE