聚合数据的快递类接口价格还是比较实惠的,而且在去年的时候受菜鸟顺丰互撕影响,聚合数据快递类接口接入量猛增
做电商类的网站或者项目,肯定是少不了发货以及查询快递物流数据的,相对于快递100以及其他大数据服务平台的查询物流的api价格来说聚合数据的价格比较便宜,所以我们使用聚合数据
并且聚合数据支持大多数的快递公司,首先先是进行SDK的封装,我放在了 ThinkPHPLibraryVendorJuhe
目录下
记得申请聚合的常用快递数据接口,地址在这里,首次申请赠送100次查询,足够测试了,上线时替换APPKEY
在 ApplicationCommonConf
中的 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
}
获取到以后,我们可以使用一张表来保存下来这些对应的值,然后我们开始调用了
代码语言:javascript复制 /**
* 聚合快递查询接口
*/
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