Hyperf 调用 快递100物流查看接口遇到的坑

最近业务上需要查询快递,所以确定了使用快递100的api

所以我们调用接口,查看文档是这样的

        $com="快递公司编号";

        $num="快递单号";

        $post_data = array();

        $post_data["customer"] = '客户编号';

        $key= '客户key';

        $param["com"] = $com;

        $param["num"] = $num;

        $post_data["param"] = json_encode($param);

        $url='http://poll.kuaidi100.com/poll/query.do';

        $post_data["sign"] = md5($post_data["param"].$key.$post_data["customer"]);

        $post_data["sign"] = strtoupper($post_data["sign"]);

        $o="";

        foreach ($post_data as $k=>$v)

        {

            $o.= "$k=".urlencode($v)."&";       //默认UTF-8编码格式

        }

        $post_data=substr($o,0,-1);

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_POST, 1);

        curl_setopt($ch, CURLOPT_HEADER, 0);

        curl_setopt($ch, CURLOPT_URL,$url);

        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

        $result = curl_exec($ch);

        $data = str_replace("\"",'"',$result);

        $data = json_decode($result,true);

 

这样打印出来会导致数据是true或者是1

原因是$result = curl_exec($ch);这个curl执行函数如果没有设置返回值的情况下返回的是true或false

所以必须加上这个设置项

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

 

测试结果完美解决,可以拿到物流接口返回数据。

你可能感兴趣的:(新奇技术学习,swoole框架搭建及使用)