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