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