第三方快递物流单号识别信息查询api接口免费对接
快递鸟查询API接口是使用的物流单号即可实现查询物流信息。主要应用在电商商城、ERP系统商、WMS系统商、快递柜、银行等企业。多家快递物流公司接口统一接入,建议对接接口提供商,一次性可以接入多家快递,在后期的技术维护也会省下很多工作。 快递鸟网站申请接口KEY并认证-对接接口-调试-上线使用 二、对接准备 1.登录快递鸟注册快账号 2.获取开发者账号信息(ID ,API Key),登录快递鸟后台中查看 3.进行技术联调,并完成调试,物流查询api地址:http://www.kdniao.com/api-track [图片] [图片] [图片] [图片] 三、技术对接 快递鸟提供的快递查询接口,支持418家快递物流查询,涵盖了国内外主流快递服务企业的单号查询,信息及时,数据完整。 一.主动查询(即时查询API) 1)接口规则 a、查询接口支持按照运单号查询(单个查询,并发不超过10个/S)。 b、指定的物流运单号选择相应的快递公司编码,格式不对或则编码错误都会返失败的信息。如圆通快递物流单号应选择圆通快递公司编码(YTO) c、返回的物流跟踪信息按照发生的时间升序排列。 d、接口指令1002。 e、请求地址:快递鸟 2)系统级和应用级输入参数系统级输入参数 http://www.kdniao.com/api-track demo示例: [代码]<?php[代码][代码]//电商ID[代码][代码]defined([代码][代码]'EBusinessID'[代码][代码]) or define([代码][代码]'EBusinessID'[代码][代码], [代码][代码]'123456'[代码][代码]);[代码][代码]//电商加密私钥,快递鸟提供,注意保管,不要泄漏[代码][代码]defined([代码][代码]'AppKey'[代码][代码]) or define([代码][代码]'AppKey'[代码][代码], [代码][代码]'1234567890'[代码][代码]);[代码][代码]//请求url:测试地址[代码][代码]//defined('ReqURL') or define('ReqURL', 'http://sandboxapi.kdniao.cc:8080/kdniaosandbox/gateway/exterfaceInvoke.json');[代码][代码]//请求url:正式地址[代码][代码]defined([代码][代码]'ReqURL'[代码][代码]) or define([代码][代码]'ReqURL'[代码][代码], [代码][代码]'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx'[代码][代码]);[代码] [代码]$kgs = [代码][代码]"JD"[代码][代码];[代码][代码]//快递公司简称,官方有文档[代码][代码]$number = [代码][代码]"12345678"[代码][代码];[代码][代码]//快递单号[代码] [代码]//调用查询物流轨迹[代码][代码]//---------------------------------------------[代码][代码]$logisticResult=getOrderTracesByJson($kgs,$number);[代码][代码]echo $logisticResult;[代码] [代码]//解析数据[代码][代码]$data = json_decode($logisticResult,[代码][代码]true[代码][代码]);[代码] [代码]if[代码][代码]($data[[代码][代码]'Success'[代码][代码]] == [代码][代码]true[代码][代码]){[代码][代码]//返回信息成功[代码][代码] [代码][代码]$str = [代码][代码]""[代码][代码];[代码] [代码]if[代码][代码](isset($data[[代码][代码]'Traces'[代码][代码]]) && !empty($data[[代码][代码]'Traces'[代码][代码]])){[代码][代码] [代码][代码]for[代码][代码]($i=[代码][代码]0[代码][代码];$i<count($data[[代码][代码]'Traces'[代码][代码]]);$i++){[代码][代码] [代码][代码]$str .= [代码][代码]"时间:"[代码][代码].$data[[代码][代码]'Traces'[代码][代码]][$i][[代码][代码]'AcceptTime'[代码][代码]].[代码][代码]"<br/>地址:"[代码][代码].$data[[代码][代码]'Traces'[代码][代码]][$i][[代码][代码]'AcceptStation'[代码][代码]].[代码][代码]"<br/>"[代码][代码];[代码][代码] [代码][代码]}[代码][代码]}[代码][代码]echo [代码][代码]"您查询的单号是:"[代码][代码].$data[[代码][代码]'LogisticCode'[代码][代码]]."<br/>[代码][代码]物流信息:<br/>[代码][代码]".$str."[代码][代码]";[代码][代码]}[代码] [代码]//---------------------------------------------[代码][代码] [代码] [代码]/**[代码][代码] [代码][代码]* Json方式 查询订单物流轨迹[代码][代码] [代码][代码]*/[代码][代码]function getOrderTracesByJson($kgs,$number){[代码] [代码] [代码][代码]$requestData= [代码][代码]"{'OrderCode':'','ShipperCode':'$kgs','LogisticCode':'$number'}"[代码][代码];[代码][代码] [代码] [代码] [代码][代码]$datas = array([代码][代码] [代码][代码]'EBusinessID'[代码] [代码]=> EBusinessID,[代码][代码] [代码][代码]'RequestType'[代码] [代码]=> [代码][代码]'1002'[代码][代码],[代码][代码] [代码][代码]'RequestData'[代码] [代码]=> urlencode($requestData) ,[代码][代码] [代码][代码]'DataType'[代码] [代码]=> [代码][代码]'2'[代码][代码],[代码][代码] [代码][代码]);[代码][代码] [代码][代码]$datas[[代码][代码]'DataSign'[代码][代码]] = 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([代码][代码]'%s=%s'[代码][代码], $key, $value); [代码][代码] [代码][代码]} [代码][代码] [代码][代码]$post_data = implode([代码][代码]'&'[代码][代码], $temps);[代码][代码] [代码][代码]$url_info = parse_url($url);[代码][代码] [代码][代码]if[代码][代码](empty($url_info[[代码][代码]'port'[代码][代码]]))[代码][代码] [代码][代码]{[代码][代码] [代码][代码]$url_info[[代码][代码]'port'[代码][代码]]=[代码][代码]80[代码][代码]; [代码][代码] [代码][代码]}[代码][代码] [代码][代码]$httpheader = [代码][代码]"POST "[代码] [代码]. $url_info[[代码][代码]'path'[代码][代码]] . [代码][代码]" HTTP/1.0\r\n"[代码][代码];[代码][代码] [代码][代码]$httpheader.= [代码][代码]"Host:"[代码] [代码]. $url_info[[代码][代码]'host'[代码][代码]] . [代码][代码]"\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[[代码][代码]'host'[代码][代码]], $url_info[[代码][代码]'port'[代码][代码]]);[代码][代码] [代码][代码]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)));[代码][代码]}[代码] [代码]?>[代码]