1, CURLOPT_HEADER => 0, CURLOPT_URL => $url, CURLOPT_FRESH_CONNECT => 1, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FORBID_REUSE => 1, CURLOPT_TIMEOUT => 30, CURLOPT_POSTFIELDS => http_build_query($post), CURLOPT_SSLVERSION => 1, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 2 ); $ch = curl_init(); curl_setopt_array($ch, ($options + $defaults)); $result = curl_exec($ch); if ($result === false) { Yii::log("POST ERROR:" . curl_error($ch)); } curl_close($ch); return $result; } //GET请求 //参数1是请求的url //参数2是发送的数据的数组 //参数3是其他GET选项 public static function GET($url, array $get = array(), array $options = array()) { $defaults = array( CURLOPT_URL => $url . (strpos($url, '?') === FALSE ? '?' : '') . http_build_query($get), CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_TIMEOUT => 4, CURLOPT_SSLVERSION => 1, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 2 ); $ch = curl_init(); curl_setopt_array($ch, ($options + $defaults)); $result = curl_exec($ch); if ($result === false) { Yii::log("GET ERROR:" . curl_error($ch)); } curl_close($ch); return $result; } public static function LESHUA_GET($url, array $get = array(), array $options = array()){ $defaults = array( CURLOPT_URL => $url . (strpos($url, '?') === FALSE ? '?' : '') . http_build_query($get), CURLOPT_HEADER => false, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_TIMEOUT => 10, CURLOPT_SSLVERSION => 1, CURLOPT_VERBOSE => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_CAINFO => getcwd().'/protected/files/leshua/yeahka_ca.crt', CURLOPT_SSLCERT => getcwd().'/protected/files/leshua/leshua_apiclient_cert.pem', CURLOPT_SSLCERTPASSWD => 'lewaimai@yeahka.com', CURLOPT_SSLCERTTYPE => 'PEM', CURLOPT_SSLKEY => getcwd().'/protected/files/leshua/leshua_apiclient_key.pem', CURLOPT_SSLKEYPASSWD => 'lewaimai@yeahka.com', CURLOPT_SSLKEYTYPE => 'PEM' ); $ch = curl_init(); curl_setopt_array($ch, ($options + $defaults)); $result = curl_exec($ch); if ($result === false) { Yii::log("GET ERROR:" . curl_error($ch)); } curl_close($ch); return $result; } //异步POST public static function POST_ASYNC($url, array $post = array(), array $options = array()) { /* $defaults = array( CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_URL => $url, CURLOPT_FRESH_CONNECT => 1, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FORBID_REUSE => 1, CURLOPT_TIMEOUT => 4, CURLOPT_POSTFIELDS => http_build_query($post), CURLOPT_SSLVERSION => 1, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 2 ); $ch = curl_init(); curl_setopt_array($ch, ($options + $defaults)); $result = curl_exec($ch); if ($result === false) { Yii::log("POST ERROR:" . curl_error($ch)); } curl_close($ch); return $result; */ $argument = json_encode($post); $optionsargument = json_encode($options); $model = new HttpQueue(); $model -> url = $url; $model -> argument = $argument; $model -> optionsargument = $optionsargument; $model -> type = 0; $model -> last_time = date('Y-m-d H:i:s'); $result = $model -> save(); return $result; } //异步GET public static function GET_ASYNC($url, array $get = array(), array $options = array()) { /* $defaults = array( CURLOPT_URL => $url . (strpos($url, '?') === FALSE ? '?' : '') . http_build_query($get), CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_TIMEOUT => 4, CURLOPT_SSLVERSION => 1, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 2 ); $ch = curl_init(); curl_setopt_array($ch, ($options + $defaults)); $result = curl_exec($ch); if ($result === false) { Yii::log("GET ERROR:" . curl_error($ch)); } curl_close($ch); return $result; */ $argument = json_encode($get); $optionsargument = json_encode($options); $model = new HttpQueue(); $model -> url = $url; $model -> argument = $argument; $model -> optionsargument = $optionsargument; $model -> type = 1; $model -> last_time = date('Y-m-d H:i:s'); $result = $model -> save(); return $result; } public static function POSTJSON($url, $json) { return self::POST($url, array(), array(CURLOPT_POSTFIELDS=>$json)); } //发送短信 public static function SendSMSMessage($phone, $content) { $content = str_replace('【','(',$content); $content = str_replace('】',')',$content); $content = $content . "【乐外卖】"; $content = iconv("utf-8", "gb2312//TRANSLIT//IGNORE", $content); $flag = 0; //要post的数据 $argv = array( 'sn'=>'SDK-JMR-010-00033', ////替换成您自己的序列号 'pwd'=>strtoupper(md5('SDK-JMR-010-00033'.'893025')), //此处密码需要加密 加密方式为 md5(sn+password) 32位大写 'mobile'=>$phone,//手机号 多个用英文的逗号隔开 post理论没有长度限制.推荐群发一次小于等于10000个手机号 'content'=>$content,//短信内容 'ext'=>'', 'stime'=>'',//定时时间 格式为2011-6-29 11:09:21 'rrid'=>'' ); //构造要post的字符串 $params = ""; foreach ($argv as $key=>$value) { if ($flag!=0) { $params .= "&"; $flag = 1; } $params.= $key."="; $params.= urlencode($value); $flag = 1; } $length = strlen($params); //创建socket连接 $fp = fsockopen("sdk2.entinfo.cn",8060,$errno,$errstr,10) or exit($errstr."--->".$errno); //构造post请求的头 $header = "POST /webservice.asmx/mt HTTP/1.1\r\n"; $header .= "Host:sdk2.entinfo.cn\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: ".$length."\r\n"; $header .= "Connection: Close\r\n\r\n"; //添加post的字符串 $header .= $params."\r\n"; //发送post的数据 fputs($fp,$header); $inheader = 1; while (!feof($fp)) { $line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据 if ($inheader && ($line == "\n" || $line == "\r\n")) { $inheader = 0; } if ($inheader == 0) { // echo $line; } } //-5 $line=str_replace("","",$line); $line=str_replace("","",$line); $result=explode("-",$line); // echo $line."-------------"; if(count($result)>1) { Yii::log('发送短信失败,手机号码:' . $phone . ' 发送内容:' . $content . "\n返回值为:".$line.',请查看webservice返回值对照表'); return false; } else { //Yii::log('发送成功 返回值为:'.$line); return true; } } /* * 发送模板短信 */ public static function SendTemplateSMS($phone, $content, $tid=0) { $paramArray = array(); $paramArray["phone"] = $phone; $paramArray["content"] = $content; $paramArray["tid"] = $tid; $retArray = LewaimaiRequestApi::SendCommon("/sms/sendtpsms", $paramArray); if (!$retArray) { return "网络或服务器错误"; } if ($retArray["errcode"] == 0) { return true; } else { return $retArray["errmsg"]; } } }