>백엔드 개발 >PHP 튜토리얼 >PHP가 Express Bird 인터페이스를 호출하는 방법의 예

PHP가 Express Bird 인터페이스를 호출하는 방법의 예

黄舟
黄舟원래의
2017-10-28 09:54:573306검색

블로거는 최근 물류 정보 쿼리를 작성해야 했기 때문에 온라인에서 Express Bird API 인터페이스 를 검색했습니다. 반환 값은 JSON 형식으로 되어 있습니다. 다양한 예시를 쉽게 구현해보세요. 아래 그림은 Express Bird API의 개략적인 인터페이스를 보여줍니다. 블로거는 일부 초보자(비웃으려는 것이 아닙니다. 블로거도 초보자 출신입니다)가 프로세스를 잘 알지 못하는 것을 두려워합니다.

익스프레스 버드 흐름도

무료이다보니 하루 최대 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)));
}
?>

Rendering:

php Express Bird 인터페이스 다이어그램 호출

Express 회사 코드:

신방로지스틱스
Coding Name
AJ Anjie Express
ANE Aneng Logistics
AXD Anxinda Express
BQXHM 베이칭 빨간모자
BFDF Pfaff Oriental
BTWL BEST Express
CCES CCES Express
CITY100 City 100
COE COE 오리엔탈 익스프레스
CSCY Changsha Chuangyi
CDSTKY Chengdu Shantu Express
DBL Debon
DSWL D Express Logistics
DTW L 대전물류
EMS EMS
FAST FEDEX 연방(국제)
FKD Feikonda
GDEMS Guangdong Post
GSD GTO
GTO Guotong Express
GTSD 고속철도 익스프레스
HFWL HSBC Logistics
HHTT Tiantian Express
HLWL Henglu Logistics
HOAU 天地华宇
hq568 Huaqiang Logistics
HTKY BEST Express
HXLWL China Dragon Logistics
HYLSD Haolaiyun Express
JGSD Jingguang Express
JIUYE Jiuye Supply Chain
JJKY Jiaji Express
JLDT Kerry Logistics
JTKD Jet Express
JXD 빠른 배송
JYKD Jinyue Express
JYM 배송 추가
JYWL Jiayi Logistics
KYWL 물류 전반
LB 롱뱅 Express
LHT Lianxing Express
MHKD Civil Aviation Express
MLWL Bright Logistics
NEDA Nengda Express
PADTF Ping An Da Tengfei Express
QCKD Quanchen Express
QFKD Quanfeng Express
QRT All Day Express
RFD Ruf engda
SAD 사이오 배송
SAWL Saint Ann Logistics
SBWL Shengbang Logistics
SDWL Shangda Logistics
SF SF Express
SFWL 성펑물류
SHWL 성회물류
ST STO 물류
STO STO Express
STWL Sagitar Express
SURE Sure Express
TSSTO 탕산 STO
UAPEX ㅋㅋㅋ XBWL
스페셜
XJ Xinjie Logistics YADEX
YFEX Yue Feng Logistics
YFHEX Yuanfeihang Logistics
YFSD Yafeng Express
YTKD 익스프레스
YTO YTO 배송
YXKD Yixiang Express
YZPY 우편 선편/소형 소포
ZENY Gain Express
ZHQKD Huiqiang Express
ZJS Home 급행
ZTE Zhongtong Express
ZTKY China Railway Express
ZTO ZTO Express
ZTWL China Railway Log istics
ZYWL China Post Logistics
AMAZON Fulfillment by Amazon
SUBIDA Subida Logistics
RFEX Ruifeng Express
QUICK 퀵 익스프레스
CJKD 인터시티 익스프레스
CNPEX CNPEX China Post Express
HOTSCM Hongqiao Supply Chain
HPTEX Haipatong Logistics Company
AYCA Australia Post Line
PANEX Panjie Express
PCA PCA 익스프레스
UEQ UEQ 익스프레스

위 내용은 PHP가 Express Bird 인터페이스를 호출하는 방법의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.