function post($url,$body){ $curlObj = curl_init(); curl_setopt($curlObj, CURLOPT_URL, $url); // 設置訪問的url curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1); //curl_exec將結果返回,而不是執行 curl_setopt($curlObj, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded;charset=UTF-8")); curl_setopt($curlObj, CURLOPT_URL, $url); curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curlObj, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curlObj, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); curl_setopt($curlObj, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($curlObj, CURLOPT_POST, true); curl_setopt($curlObj, CURLOPT_POSTFIELDS, $body); curl_setopt($curlObj, CURLOPT_ENCODING, 'gzip'); $res = @curl_exec($curlObj); curl_close($curlObj); if ($res === false) { $errno = curl_errno($curlObj); if ($errno == CURLE_OPERATION_TIMEOUTED) { $msg = "Request Timeout: seconds exceeded"; } else { $msg = curl_error($curlObj); } echo $msg; $e = new XN_TimeoutException($msg); throw $e; } return $res; } /** * 推送訂單 (to 順豐) * orderid 訂單號 * j_company 寄件方公司名稱 * j_contact 寄件方聯繫人 * j_telphone 寄件方聯繫電話 * j_address 寄件地址 * d_company 到件方公司名稱 * d_contact 到件方聯繫人 * d_telphone 到件方聯繫電話 * d_address 到件方地址 * d_province 到件方省份 * d_city 到件方城市 * j_province 寄件方省份 * j_city 寄件方城市 * name 商品名稱 * mailno 運單號 * */ function orderservice($orderid,$j_company,$j_contact,$j_telphone,$j_address,$d_company,$d_contact,$d_telphone,$d_address,$d_province, $d_city,$j_province,$j_city,$name,$mailno,$pay_method,$express_type) { $sf_data=C('sf'); $_CHECKBODY=$sf_data['checkword']; $_URL=$sf_data['url']; $_CHECKHEADER=$sf_data['clientcode']; $j_shippercode = citycode($j_province,$j_city); $d_deliverycode = citycode($d_province,$d_city); $body = '<?xml version="1.0" encoding="UTF-8" ?> <Request service="OrderService" lang="zh-CN"> <Head>'.$_CHECKHEADER.'</Head> <Body> <Order orderid="'.$orderid.'" express_type="'.$express_type.'" pay_method="'.$pay_method.'" j_company="'.$j_company.'" j_contact="'.$j_contact.'" j_tel="'.$j_telphone.'" j_address="'.$j_address.'" d_company="'.$d_company.'" d_contact="'.$d_contact.'" d_tel="'.$d_telphone.'" d_address="'.$d_address.'" parcel_quantity="1" custid="" j_shippercode="'.$j_shippercode.'" d_deliverycode="'.$d_deliverycode.'" cargo_total_weight="" sendstarttime="" mailno="'.$mailno.'" remark="'.$name.'" /></Order></Body></Request>'; $newbody = $body.$_CHECKBODY; $md5 = md5($newbody,true); $verifyCode = base64_encode($md5); $url = $_URL; $fields = array('xml'=>$body,'verifyCode'=>$verifyCode); $parambody = http_build_query($fields, '', '&'); $res = post($url,$parambody); return $res; }