php利用快递100接口获取物流信息
PHP使用CURL调用快递100接口查询运单信息
下面是我封装的类:
<?php /** * 快递100接口调用类 * @author 齐云海 * date: 2019/05/29 */ class Express100 { // 密钥 private $key = '密钥'; // 客户编号 private $customer = '客户编号'; /** * 发起请求 * @param $com String 快递公司编号 * @param $num String 快递单号 */ public function kd_request($com, $num) { // 请求参数 $param = array( 'com'=>$com, 'num'=>$num ); $param = json_encode($param); // 签名 $sign = strtoupper(md5($param.$this->key.$this->customer)); // 请求条件 $post_data = array( 'customer'=>$this->customer, 'sign'=>$sign, 'param'=>$param ); $o=""; foreach ($post_data as $k=>$v) { $o.= "$k=".urlencode($v)."&"; //默认UTF-8编码格式 } $post_data=substr($o,0,-1); // CURL POST请求接口 $url = 'https://poll.kuaidi100.com/poll/query.do'; $ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_URL,$url);//抓取指定网页 curl_setopt($ch, CURLOPT_HEADER, 0);//设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式 // 关闭SSL验证 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 请求 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $data = curl_exec($ch);//运行curl if (curl_errno($ch)) { return curl_error($ch); } curl_close($ch); // 返回运单详情 ( 以数组的形式返回 ) return json_decode($data, true); } } 调用方式:(new Express100) -> kd_request('快递公司编号', '快递单号');