快递100物流查询 API
——【PHP 快递查询源码资源】 已经不能正常使用了; 为了方便之后的业务需求,通过比较,最后选择使用 第三方物流 ——【快递鸟】官方文档: 快递鸟 —— 即时查询API
开发框架:ThinkPHP5.1.2
php
用户ID
和 API key
BirdExpress.php
,进行配置项的替换操做ThinkPHP5.1.2
)测试发现,线上的
Linux
系统下没法识别命名空间大小写状况,在此建议namespace app\api\Controller
,都改为小写字母html
demo
得到的物流信息是正序展现的Traces
的反转操做/** * 核心方法 * Json方式 查询订单物流轨迹 * @param string $ShipperCode 快递公司编码 * @param string $LogisticCode 物流单号 * @param int $arrayFlag 是否进行数组转化标志 默认0:否 1:转化 * 参考规则举例: * $requestData = "{'OrderCode':'','ShipperCode':'ZTO','LogisticCode':'640041334612'}"; * @return result 包含即时物流信息的 Json数据 */ public function getOrderTracesByJson($ShipperCode = "",$LogisticCode = "",$arrayFlag = 0) { $requestData = "{ 'OrderCode':'', 'ShipperCode':'$ShipperCode', 'LogisticCode':'$LogisticCode' }"; $postData = array( 'EBusinessID' => $this->EBusinessID, 'RequestType' => '1002',//接口指令1002 'RequestData' => urlencode($requestData), 'DataType' => '2', ); $postData['DataSign'] = $this->encrypt($requestData, $this->AppKey); $result = $this->sendPost($this->ReqURL, $postData); //根据公司业务处理返回的信息...... if ($arrayFlag){ $result = json_decode($result,true); //TODO 方便物流信息的倒序展现,进行数组反转 $result['Traces'] = array_reverse($result['Traces']); } return $result; }
[重要提示]:
代码逻辑梳理,以及总体业务设计构化调用其方法,必需要传入 快递公司编码 和 物流单号 这两个参数mysql
1. 根据官方提供的快递公司编码Excel表 取出其中的 "快递公司"和"编码"两列数据存储到本地数据表 若是使用的快递数量较集中,能够本身建表输入 若是是通用性的快递使用,建议直接对excel表转化为mysql(或其余数据表)存储
若是须要进行
excel
表的导入操做,可直接参考对应文章: ThinkPHP5.1 excel表的导入导出操做 (PHPExcel)web
2. 在后台操做人员输入快递单号时 同时要求选择快递公司,得到 "编码" 从而保证,在数据表中,存储的快递单号惟一匹配到一个编码,继而方便后面进行快递信息查询时,可同时得到所需的两个参数.
但愿道友们能在这个【PHP 快递查询 - 源码资源】下,给个评论,就说 :sql
"楼主表示:代码已过时,不能正常使用了,请不要再下载了!"json
—— 即使我删掉了原先的博客,依然有人能经过其余路径找到 !? 我也奇怪,为何本身上传的资源,CSDN 不容许删除呢?
小程序
首先,我拥有一个,测试物流单号:
640041334612 (中通快递)
,而后使用多个快递查询服务,效果以下:api
通過比較发现: 1. "快递100" 没有查到结果; "爱查快递" 得出的结果并非真实的物流信息 2. "快递网" 能查到快递信息,可是询问服务人员时知晓: 要么网站上添加对方连接(个人管理后台以及小程序、app是不能这样玩的); 要么须要进行套餐定制,最低的大概一年1000 —— (前期网站是不须要那么大的 查询业务的,感受浪费),并且,我不喜欢官网的设计风格(任性了) 3. "快递鸟",最让我动心的是那个 "限3000次/天(即时查询)" 是免费的 对于业务量前期不大的网站足够使用,即使后期有须要,也能够直接进行套餐升级