ホームページ  >  記事  >  バックエンド開発  >  PHP が Express Bird インターフェースを呼び出す方法の例

PHP が Express Bird インターフェースを呼び出す方法の例

黄舟
黄舟オリジナル
2017-10-28 09:54:573223ブラウズ

ブロガーは最近物流情報クエリを作成する必要があったため、オンラインにアクセスして Express Bird の APIインターフェースを検索しました。戻り値は JSON 形式に変換するだけです。配列を使用してさまざまな例を簡単に実装できます。下の図は、Express Bird API の概略インターフェイスを示しています。ブロガーは、一部の初心者 (嘲笑するつもりはありません。ブロガーも初心者出身です) がそのプロセスをよく知らないのではないかと心配しています。

Express Birdフローチャート

無料なので1日最大3,000クエリ、実名認証必須など制限が多いです。


ブロガーはここにブロガーのコードを投稿しました:

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

レンダリング:

php呼び出しExpress Birdインターフェース図

Express会社コード:

COECOEオリエンタルエクスプレスCSCY長沙荘宜CDSTKY成都シャントゥエクスプレスDBLデボンDSWLDエクスプレスロジスティクスDTW L大田物流EMSEMSFASTFast ExpressFEDEXFEDEX連邦(国内線)FEDEX_GJFEDEX連邦(国際)FKDフェイkonda GDEMSGuangdong PostGSDGTOGTO国通エクスプレスGTSD高速鉄道エクスプレスHFWLHSBCロジスティクスHHTT天天特急 HLWLHenglu LogisticsHOAU天地华宇hq568Huaqiang LogisticsHTKYBEST ExpressHXLWL中国龍物流HYLSDHaolaiyun ExpressJGSDJingguang ExpressJIUYEJiuyeサプライチェーンJJKYJiaji ExpressJLDTケリーロジスティクスJTKDジェットエクスプレスJXD速達JYKDJinyue ExpressJYM送料を追加JYWL嘉義物流KYWL物流全体LBロンバンExpressLHTLianxing ExpressMHKDCivil Aviation ExpressMLWLBright LogisticsNEDA 能大エクスプレスPADTF平安大登飛エクスプレスQCKDクアンチェンエクスプレスQFKDクアンフェンエクスプレスQRT全日エクスプレスRFD engda悲しいサイアオ配信SAWL セントアン物流SBWL盛邦物流SDWL上達物流SFSFエクスプレスSFWL盛豊物流SHWL盛輝物流STSTO物流STOSTO ExpressSTWLSagitar ExpressSURESure Express TSSTO唐山STOUAPEX Quanyi ExpressUCExcellent ExpressWJWL万家物流WXWL万祥物流XBWL新邦物流スペシャル XJ新街物流YADEX元達エクスプレスYCWL元成物流YD元達エクスプレスYDHYida国際物流YFEXYue豊物流YFHEX源飛航物流YFSD雅豊エクスプレスYTKDエクスプレスエクスプレスYTO YTO配達YXKD宜祥エクスプレスYZPY郵便船便/小型荷物ZENYGain ExpressZHQKDHuiqiang ExpressZJSHome ExpressZTE中通エクスプレス ZTKY中国鉄道エクスプレスZTOZTOエクスプレスZTWL中国鉄道物流ZYWL中国郵政物流アマゾンAmazon フルフィルメントSUBIDASubida LogisticsRFEX瑞豊エクスプレスQUICKクイックエクスプレスCJKD都市間エクスプレスCNPEX CNPEXチャイナポストエクスプレスHOTSCM虹橋サプライチェーンHPTEXHaipatong Logistics CompanyAYCAAustralia Post LinePANEXPanjie ExpressPCAPCAエクスプレスUEQUEQエクスプレス
コーディング 名前
AJ Anjie Express
ANE Aneng Logistics
AXD Anxinda Express
BQXHM 北清赤ずきん
BFDF パフ・オリエンタル
BTWL BEST Express
CCES CCES Express
CITY100 シティ100

以上がPHP が Express Bird インターフェースを呼び出す方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。