Maison  >  Article  >  développement back-end  >  Utilisation de l'interface API de requête Express Bird (version PHP)

Utilisation de l'interface API de requête Express Bird (version PHP)

不言
不言original
2018-05-02 15:03:403621parcourir

Cet article présente principalement l'utilisation de l'interface API de requête Express Bird (version PHP), qui a une certaine valeur de référence. Maintenant, je la partage avec tout le monde. Les amis dans le besoin peuvent s'y référer


<.>

Prémisse

Lors du développement du projet, certaines exigences utiliseront inévitablement certaines interfaces API concernant la livraison express ; cet article présente principalement l'API de requête de livraison express et ses différences avec d'autres entreprises ;

Les interfaces API express couramment utilisées sont :

  1. Express Bird

  2. Express 100

  3. Aicha Express

    Attendez

Si vous l'avez utilisé, Express 100 et Aicha Express et d'autres sites Web proposent une requête express En attendant l'interface, vous constatez que le nombre de fois que le compte ou la clé que vous avez demandé peut appeler l'interface API est limité, certains sont 2 000 fois/jour et d'autres 5 000 fois/heure, la seule chose qui vous dérange est que l'utilisateur doit ajouter ; Liens externes, tandis qu'Express Bird n'exige pas que les utilisateurs ajoutent des liens externes. Pour les utilisateurs sans portail, il n'y a que des exigences très strictes et l'excédent doit être payé pour l'utiliser.

Express Bird, l'interface API de requête est temps illimités, et gratuite en permanence

Bien sûr, pour vous Pour petits besoins, Express 100 et Aicha Express peuvent répondre à vos besoins ; cependant, s'il y a trop de demandes un certain jour, votre service de requête devra s'arrêter, affectant votre expérience produit, il est donc recommandé d'utiliser directement Express Bird

pour tout faire en une seule étape.

Scénarios d'application


Interroger les informations logistiques de la commande

Utilisation de linterface API de requête Express Bird (version PHP)Exigences réalisables

    L'application est directement intégrée pour mettre en œuvre l'interface API de requête d'informations logistiques express
  1. Dans le compte public WeChat, selon le numéro de commande saisi par l'utilisateur, notre backend Identifiez le numéro de commande et interrogez l'interface API express selon l'oiseau express pour réaliser la fonction de requête automatique
  2. et ainsi de suite
  3. Appliquer la clé


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

Selon vos informations, remplissez complètement les informations et cliquez pour soumettre la candidature.

Après une connexion réussie, vous pouvez voir des informations telles que l'ID et la clé. Avec ces informations, vous pouvez demander des requêtes et d'autres API d'interface

.

Interface API de requête express


Document d'interface et démo de chaque langage de développement

Définition de l'interface API de requête

Paramètres d'entrée au niveau du système

参数名称 类型 必须要求 说明
RequestData String R 请求内容,JSON或XML格式,须和DataType一致
EBusinessID String R 用户ID
RequestType String R 请求指令类型:1002
DataSign String R 数据内容签名
DataType String O 请求、返回数据类型:1-xml,2-json;默认为xml格式

Paramètres d'entrée au niveau de l'application

参数名称 类型 必须要求 说明
OrderCode varchar(50) O 订单编号
ShipperCode varchar(10) R 快递公司编码
LogisticCode varchar(50) R 物流单号

Paramètres du résultat de retour

参数名称 类型 必须要求 说明
EBusinessID Int R 电商用户ID
OrderCode Varchar(50) O 订单编号
ShipperCode varchar(10) R 快递公司编码
LogisticCode Varchar(50) R 物流运单号
Success Bool R 成功与否
Reason Varchar(50) O 失败原因
State Int R 物流状态1:已取件2:在途中3:签收
Traces Varchar(Max) R 物流轨迹详情

Détails du suivi logistique

参数名称 类型 必须要求 说明
AcceptTime DateTime R 时间
AcceptStation Varchar(50) R 描述
Remark Varchar(150) O 备注

Paramètres JSON de la demande

{
    "OrderCode" : "",
    "ShipperCode" : "SF",
    "LogisticCode" : "118650888018"}

Paramètres JSON de réponse

{
    "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
        }
    ]}

Utilisation de l'interface API de requête

Prenons le langage de développement PHP comme exemple pour développer

<?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)));
}


?>

Autres interfaces API, veuillez vous rendre sur Express Bird pour afficher les documents pertinents en détail .

Rappel chaleureux

Si votre produit doit être ancré ou intégré à l'interface express, Express Bird est un bon choix, nous vous fournirons un professionnel ; personnel d'assistance technique ; Il n'y a pas de limite au nombre de demandes et c'est gratuit pour toujours.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Intergiciel PHP ICEArticle suivant:Intergiciel PHP ICE