php中阿里云快递物流查询接口使用

php中阿里云快递物流查询接口使用php 中阿里云快递物流查询接口使用官方给的 php 代码如下 host https ali deliver showapi com path showapi expInfo method GET appcode 你自己的 AppCode headers array array push

php中阿里云快递物流查询接口使用

官方给的php代码如下:

 $host = "https://ali-deliver.showapi.com"; $path = "/showapi_expInfo"; $method = "GET"; $appcode = "你自己的AppCode"; $headers = array(); array_push($headers, "Authorization:APPCODE " . $appcode); $querys = "com=zhongtong&nu=7&receiverPhone=receiverPhone&senderPhone=senderPhone"; $bodys = ""; $url = $host . $path . "?" . $querys; $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); if (1 == strpos("$".$host, "https://")) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } var_dump(curl_exec($curl)); 

我写的代码如下:

// 查看物流信息接口 // $lo_num物流单号,$ename物流公司英文简写 public function see_wulius($lo_num,$ename){ $host = "https://ali-deliver.showapi.com"; $path = "/showapi_expInfo"; $method = "GET"; $appcode = "bef15540abdf45318fd"; $headers = array(); array_push($headers, "Authorization:APPCODE " . $appcode); $querys = "com=".$ename."&nu=".$lo_num; $bodys = ""; $url = $host . $path . "?" . $querys; $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, false); if (1 == strpos("$".$host, "https://")){ curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys); return (curl_exec($curl)); } 

注意 curl_setopt($curl, CURLOPT_HEADER, false); 这里应该用false,不要包体头,这样才会返回json格式数据。如果按照官方给的文档这里是true的话,返回结果是字符串。

对于多次请求接口
为了减少用户请求,我没有采用缓存,而是直接存入数据库,这样永久保留数据,什么时候都可以查看物流信息。每次查看物流的时候先判断该表有没有这个物流信息,没有就调接口查询然后存进来,有的话根据状态和过期时间判断是否需要重新请求接口,请求一次接口就更新一次数据,过期时间也更新。
在这里插入图片描述




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198492.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午3:06
下一篇 2026年3月26日 下午3:06


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号