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"]; } } }