整合ThinkPHP功能系列之使用聚合数据查询快递物流数据

聚合数据的快递类接口价格还是比较实惠的,而且在去年的时候受菜鸟顺丰互撕影响,聚合数据快递类接口接入量猛增

做电商类的网站或者项目,肯定是少不了发货以及查询快递物流数据的,相对于快递 100 以及其他大数据服务平台的查询物流的 api 价格来说聚合数据的价格比较便宜,所以我们使用聚合数据

并且聚合数据支持大多数的快递公司,首先先是进行 SDK 的封装,我放在了 ThinkPHP\Library\Vendor\Juhe目录下

记得申请聚合的常用快递数据接口,地址在这里,首次申请赠送 100 次查询,足够测试了,上线时替换 APPKEY

在 Application\Common\Conf中的 config.php 中我们添加聚合数据快递查询的 APPKEY

	//聚合数据快递查询 APPKEY
	'EXPRESS_APP_KEY' =>'填写你申请的 APPKEY',

当然也是可以直接写在控制器中的,在使用之前我们先查一下快递公司编号对照表,使用 $exp->getComs() 获取支持的公司列表

{
  "resultcode": "200",
  "reason": "查询支持的快递公司成功",
  "result": [
    {
      "com": "顺丰",
      "no": "sf"
    },
    {
      "com": "申通",
      "no": "sto"
    },
    {
      "com": "圆通",
      "no": "yt"
    },
    {
      "com": "韵达",
      "no": "yd"
    },
    {
      "com": "天天",
      "no": "tt"
    }
    ......有省略
  ],
  "error_code": 0
}

获取到以后,我们可以使用一张表来保存下来这些对应的值,然后我们开始调用了

    /**
     * 聚合快递查询接口
     */
    public function exp()
    {
        Vendor('Juhe.Exp');
        header('Content-type:text/html;charset=utf-8');
        $params = array(
            'key' => C('EXPRESS_APP_KEY'), //申请的快递 appkey
            'com' => '', //快递公司编码
            'no'  => '' //快递编号
        );
        $exp = new Exp($params['key']); //初始化类

        $result = $exp->query($params['com'],$params['no']); //执行查询

        if($result['error_code'] == 0){//查询成功
            $list = $result['result']['list'];
            p($list);
        }else{
            echo "获取失败,原因:".$result['reason'];
        }

    }

作为接口肯定是要防刷的,这里就根据自己的业务逻辑来进行操作吧,具体代码还是看Github

2 条评论

发表评论

*