| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- <?php
- class LewaimaiHttp {
- //POST请求
- //参数1是请求的url
- //参数2是发送的数据的数组
- //参数3是其他POST选项
- public static function POST($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 => 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;
- }
- }
- //<string xmlns="http://tempuri.org/">-5</string>
- $line=str_replace("<string xmlns=\"http://tempuri.org/\">","",$line);
- $line=str_replace("</string>","",$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"];
- }
- }
- }
|