前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP 快递查询源码指导 (快递鸟API)

PHP 快递查询源码指导 (快递鸟API)

作者头像
泥豆芽儿 MT
修改2019-08-07 17:36:22
2.6K0
修改2019-08-07 17:36:22
举报
文章被收录于专栏:木头编程 - moTzxx

☞ 背景

  • 最近进行网站后台开发,需要实现物流的即时查询,发现之前集成的 快递100物流查询 API ——【PHP 快递查询源码资源】 已经不能正常使用了; 为了方便以后的业务需求,经过比较,最后选择使用 第三方物流 ——【快递鸟】
  • 同时,在此进行整理,希望能帮到有需求的道友们,谢谢 …

官方文档: 快递鸟 —— 即时查询API 开发框架:ThinkPHP5.1.2

☞ 开发步骤

①. 前期准备

  • 首先要进行快递鸟账号的注册 并根据对方的要求,完善用户申请。 然后,根据自己的需求,开通所需服务(如果只是进行物流信息的查询,以当前业务查询次数较少为例):

②. 集成类的使用

  • 首先需要登录 快递鸟 获取账号的 用户IDAPI key 对所提供源码中的 集成类 BirdExpress.php ,进行配置项的替换操作
  • 然后 将集成类整合到你的项目框架,根据框架规则进行必要修改(框架不同规则自然多数不同,本人为 ThinkPHP5.1.2) 下图为简单的调用测试:

③. 核心处理方法源码

  • 首先,官方的代码 demo获得的物流信息是正序展示的 为了方便物流信息的倒序展示,我进行了对数组Traces 的反转操作
代码语言:javascript
复制
	/**
     * 核心方法
     * 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;
    }

④. [重要]: 代码逻辑梳理,以及整体业务设计构化

  • 通过上面核心源码的展示,你应该会注意到

调用其方法,必须要传入 快递公司编码 和 物流单号 这两个参数

代码语言:javascript
复制
1. 根据得到的 快递公司编码Excel表
   取出其中的 "快递公司"和"编码"两列数据存储到本地数据表
2. 在后台操作人员输入快递单号时
   同时要求选择快递公司,获得 "编码"
   从而保证,在数据表中,存储的快递单号唯一匹配到一个编码,继而方便后面进行快递信息查询时,可同时获得所需的两个参数.

⑤. 效果展示截图

☞ ***>>> 源码上传 >>>***(稍等,资源审核中)

☞ 附录

①. 个人请求

  • 希望道友们能在这个【PHP 快递查询 - 源码资源】下,给个评论,就说 : "楼主表示:代码已过期,不能正常使用了,请不要再下载了!"

—— 即便我删掉了原先的博客,依然有人能通过其他路径找到 !? 我也奇怪,为什么自己上传的资源,CSDN 不允许删除呢?

②. 为什么我选择使用 快递鸟API

首先,我拥有一个,测试物流单号:640041334612 (中通快递),然后使用多个快递查询服务,效果如下:

代码语言:javascript
复制
通過比較发现:
1. "快递100" 没有查到结果;
	"爱查快递" 得出的结果并不是真实的物流信息
2. "快递网" 能查到快递信息,但是询问服务人员时知晓:
	要么网站上添加对方链接(我的管理后台以及小程序、app是不能这样玩的);
	要么需要进行套餐定制,最低的大概一年1000 
	—— (前期网站是不需要那么大的 查询业务的,感觉浪费),而且,我不喜欢官网的设计风格(任性了)
3. "快递鸟",最让我动心的是那个 "限3000次/天(即时查询)" 是免费的
	对于业务量前期不大的网站足够使用,即便后期有需要,也可以直接进行套餐升级

③. 参考文章

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年04月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ☞ 背景
  • ☞ 开发步骤
    • ①. 前期准备
      • ②. 集成类的使用
        • ③. 核心处理方法源码
          • ④. [重要]: 代码逻辑梳理,以及整体业务设计构化
            • ⑤. 效果展示截图
            • ☞ ***>>> 源码上传 >>>***(稍等,资源审核中)
            • ☞ 附录
              • ①. 个人请求
                • ②. 为什么我选择使用 快递鸟API
                  • ③. 参考文章
                  相关产品与服务
                  访问管理
                  访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档