物流接口实现方法

一、通过百度API查询物流信息

百度提供了免费的物流查询接口,可以通过以下URL格式进行查询:

https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?cb=jQuery110208172749384481603_1456294051449&appid=4001&com=物流公司名称Ν=物流号&vcode=&token=&_=1456294051453

参数说明:

  • cb: jQuery回调函数名(可自定义)
  • appid: 应用ID,固定为4001
  • com: 物流公司编码(如:jd、shentong、yuantong等)
  • nu: 物流单号
  • vcode: 验证码(可为空)
  • token: 令牌(可为空)
  • _: 时间戳参数

使用示例:

1. 查询京东快递(单号:12148326312)

https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?cb=jQuery110208172749384481603_1456294051449&appid=4001&com=jd&nu=12148326312&vcode=&token=&_=1456294051453

2. 查询申通快递(单号:3304810729274)

https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?cb=jQuery110208172749384481603_1456294051449&appid=4001&com=shentong&nu=3304810729274&vcode=&token=&_=1456294051453

二、通过快递100自动识别物流公司

如果不知道物流单号属于哪家公司,可以使用快递100的自动识别接口:

http://www.kuaidi100.com/autonumber/auto?num={物流单号}

三、PHP实现代码

1. 自动获取物流公司名称

private function expressname($order){    $name   = json_decode($this->getcontent("http://www.kuaidi100.com/autonumber/auto?num={$order}"), true);    $result = $name[0]['comCode'];    if (empty($result)) {        return false;    } else {        return $result;    }}

2. 完整查询流程

// 1. 先通过快递100获取物流公司编码$expressCode = $this->expressname($expressNumber);// 2. 使用百度API查询物流详情$url = "https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury";$params = [    'appid' => '4001',    'com'   => $expressCode,    'nu'    => $expressNumber,    'vcode' => '',    'token' => '',    '_'     => time() . rand(100, 999)];// 发送请求并处理返回的JSON数据$response = $this->getcontent($url . '?' . http_build_query($params));

四、常用快递公司编码对照表

公司名称编码公司名称编码
申通快递shentong圆通速递yuantong
中通快递zhongtong韵达快递yunda
顺丰速运shunfeng京东快递jd
百世快递huitongkuaidi邮政包裹youzhengguonei
EMSems极兔速递jtexpress
德邦快递debangkuaidi天天快递tiantian

五、注意事项

  • 百度API返回的是JSONP格式数据,需要处理回调函数
  • 请求时需要设置合适的User-Agent头,避免被屏蔽
  • 建议添加缓存机制,避免重复请求
  • 该接口为百度公开接口,可能会随时调整,请关注更新

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部