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('快遞公司編號', '快遞單號');