Commit 6fd6a960c6a2d059ab31994ab20a30f5eec53a66

Authored by 曹明
1 parent 6f1f34e1
Exists in master

1. 短信抬头调整

2. 图片校验功能完善
common/config/params.php
@@ -19,6 +19,6 @@ return [ @@ -19,6 +19,6 @@ return [
19 'sms'=>[ 19 'sms'=>[
20 'smsKey'=>'LTAI4Fs7QiKCF4ZpZmEGFkcD', 20 'smsKey'=>'LTAI4Fs7QiKCF4ZpZmEGFkcD',
21 'smsSecret'=>'iVs6oI0KknlR2PrRhvQl6f4Xwsudlf', 21 'smsSecret'=>'iVs6oI0KknlR2PrRhvQl6f4Xwsudlf',
22 - 'smsSignName'=>'周合立科技', 22 + 'smsSignName'=>'周和利科技',
23 ], 23 ],
24 ]; 24 ];
common/helpers/CheckActiveHelper.php
@@ -34,7 +34,7 @@ class CheckActiveHelper @@ -34,7 +34,7 @@ class CheckActiveHelper
34 * status string 状态码【待定】(authentic:正品 fake:假货 其他状态码:请闵总帮忙补充) 34 * status string 状态码【待定】(authentic:正品 fake:假货 其他状态码:请闵总帮忙补充)
35 * imgUrl file 返回的图片状态 备注:请返回完整的URL路径,例如:http://check1.bosch-smartlife.com/images/success.png 35 * imgUrl file 返回的图片状态 备注:请返回完整的URL路径,例如:http://check1.bosch-smartlife.com/images/success.png
36 */ 36 */
37 - public static function checkAppQrv($imageFullPath, $fileName, $token) 37 + public static function checkAppQrv_old($imageFullPath, $fileName, $token)
38 { 38 {
39 try { 39 try {
40 $curl = curl_init(); 40 $curl = curl_init();
@@ -63,8 +63,8 @@ class CheckActiveHelper @@ -63,8 +63,8 @@ class CheckActiveHelper
63 curl_setopt($curl, CURLOPT_POST, true); 63 curl_setopt($curl, CURLOPT_POST, true);
64 curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); 64 curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
65 // 超时时间 65 // 超时时间
66 - curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);  
67 - curl_setopt($curl, CURLOPT_TIMEOUT, 30); 66 + curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 60);
  67 + curl_setopt($curl, CURLOPT_TIMEOUT, 60);
68 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 68 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
69 // 返回内容 69 // 返回内容
70 $callbcak = curl_exec($curl); 70 $callbcak = curl_exec($curl);
@@ -85,6 +85,133 @@ class CheckActiveHelper @@ -85,6 +85,133 @@ class CheckActiveHelper
85 } 85 }
86 86
87 /** 87 /**
  88 + * http post请求--CURL模拟表单上传文件
  89 + * @param $url string 请求地址
  90 + * @param $params array 请求参数
  91 + * @param $header array 请求头
  92 + * @return mixed
  93 + */
  94 + public static function checkAppQrv($imageFullPath, $fileName, $token)
  95 + {
  96 + try {
  97 +
  98 + // 获取图片内容
  99 + $filename_root = $_SERVER['DOCUMENT_ROOT'];
  100 + $path = $filename_root. '/tmp/'. date("Ymd");
  101 + $saveFilePath = $path.'/'.$fileName;
  102 + //以下代码适合PHP7.x PHP5.6
  103 + $file = new \CURLFile(realpath($saveFilePath),'multipart/form-data', 'img');
  104 + //或者使用下面过程化的写法
  105 + //$file = curl_file_create('@' .realpath($saveFilePath),'multipart/form-data');
  106 + $postfields = [
  107 + 'fileName' => $fileName,
  108 + //'token' => $token,
  109 + 'img' => $file
  110 + ];
  111 + Log::DEBUG("请求checkAppQrv参数:" . json_encode($postfields));
  112 + $url = self::CHECK_URL;
  113 + //----------------------------
  114 + $ch = curl_init();
  115 + $params[CURLOPT_URL] = $url; //请求url地址
  116 + $params[CURLOPT_HEADER] = true; //是否返回响应头信息
  117 + $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
  118 + $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
  119 + $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';
  120 + $params[CURLOPT_POST] = true;
  121 + $params[CURLOPT_POSTFIELDS] = $postfields;
  122 + $header = array('Content-Type: multipart/form-data'); //请求头记得变化-不同的上传方式
  123 + $params[CURLOPT_HTTPHEADER] = $header;
  124 + // 超时时间
  125 + $params[CURLOPT_CONNECTTIMEOUT] = 30;
  126 + $params[CURLOPT_TIMEOUT] = 30;
  127 +
  128 + curl_setopt_array($ch, $params); //传入curl参数
  129 + $content = curl_exec($ch); //执行
  130 + //http状态码
  131 + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  132 + Log::DEBUG("checkAppQrv返回码:" .$httpCode);
  133 + if ($httpCode == 200) {
  134 + $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
  135 + Log::DEBUG("checkAppQrv返回headerSize:" .$headerSize);
  136 + $header = substr($content, 0, $headerSize);
  137 + $content = substr($content, $headerSize);
  138 + }
  139 + //打印请求的header信息
  140 + //$request_header = curl_getinfo($ch, CURLINFO_HEADER_OUT);
  141 + //状态处理
  142 + if (in_array($httpCode, array(400, 403)))
  143 + return "";
  144 + curl_close($ch); //关闭连接
  145 + Log::DEBUG("checkAppQrv返回结果为:" .$content);
  146 + //返回内容JSON_DECODE
  147 + return json_decode($content, true);
  148 + } catch (Exception $e) {
  149 + Log::DEBUG("检查图片出错:" . $e->getTraceAsString());
  150 + return false;
  151 + }
  152 + }
  153 +
  154 + public static function checkAppQrv_fsockopen($imageFullPath, $fileName, $token)
  155 + {
  156 + //第二种方法:fsockopen方法上传
  157 + // 获取图片内容
  158 + $filename_root = $_SERVER['DOCUMENT_ROOT'];
  159 + $path = $filename_root. '/tmp/'. date("Ymd");
  160 + $saveFilePath = $path.'/'.$fileName;
  161 +
  162 + $arr_data = array('fileName' => $fileName,
  163 + 'token' => $token); //普通参数
  164 + $var_file='img'; //文件变量名
  165 + $file_type='image/jpeg'; //文件类型
  166 +
  167 + $filepath = realpath($saveFilePath); //文件路径
  168 + $filestring = @file_get_contents($filepath) or exit('not found file ( '.$filepath.' )'); //生成文件流
  169 + $host = "check1.bosch-smartlife.com";
  170 + $requestPath = self::CHECK_URL;
  171 +
  172 +
  173 +
  174 + //构造post请求的头
  175 + $boundary = substr(md5(time()),8,16); //分隔符
  176 + $header = "POST {$requestPath} HTTP/1.1\r\n";//一般有post, get这两种
  177 + $header .= "Host: {$host}\r\n";
  178 + $header .= "Content-Type: multipart/form-data; boundary={$boundary}\r\n";
  179 +
  180 + $data = "";
  181 + //请求普通数据
  182 + foreach($arr_data as $k=>$v){
  183 + $data .= "--{$boundary}\r\n";
  184 + $data .= "Content-Disposition: form-data; name=\"{$k}\"\r\n";
  185 + $data .= "\r\n{$v}\r\n";
  186 + $data .= "--{$boundary}\r\n";
  187 + }
  188 + //请求图片数据
  189 + $filename = basename($filepath); //文件名
  190 + $data .= "--{$boundary}\r\n";
  191 + $data .= "Content-Disposition: form-data; name=\"$var_file\"; filename=\"$filename\"\r\n";
  192 + $data .= "Content-Type: $file_type\r\n"; //\r\n不可少
  193 + $data .= "\r\n$filestring\r\n"; //\r\n不可少
  194 + $data .= "--{$boundary}\r\n"; //\r\n不可少
  195 + $header .= "Content-Length: ".strlen($data)."\r\n\r\n"; //\r\n不可少
  196 +
  197 + //发送post的数据
  198 + $fp = fsockopen($host,80,$errno,$errstr,10) or exit($errstr."--->".$errno);
  199 + fputs($fp,$header.$data);
  200 +
  201 + $inheader = 0; //1去除请求包的头只显示页面的返回数据 0-保留头
  202 + while (!feof($fp)) {
  203 + $line = fgets($fp,1024);
  204 + if ($inheader && ($line == "\n" || $line == "\r\n")) {
  205 + $inheader = 0;
  206 + }
  207 + if ($inheader == 0) {
  208 + Log::DEBUG("返回信息:" . $line);
  209 + }
  210 + }
  211 + return "";
  212 + }
  213 +
  214 + /**
88 * 防伪标签的激活 215 * 防伪标签的激活
89 * @param $uuid string 是 防伪标签uuid 216 * @param $uuid string 是 防伪标签uuid
90 * @param $token string 是 访问令牌 217 * @param $token string 是 访问令牌
domain/system/message/SmsMessage.php
@@ -70,7 +70,7 @@ class SmsMessage @@ -70,7 +70,7 @@ class SmsMessage
70 * @param $signName 70 * @param $signName
71 * @return mixed 71 * @return mixed
72 */ 72 */
73 - public function sendRegCode($phone, $code, $signName = '周合立科技') 73 + public function sendRegCode($phone, $code, $signName = '周和利科技')
74 { 74 {
75 $this->send($phone, $signName, "SMS_179880510", ["code" => $code]); 75 $this->send($phone, $signName, "SMS_179880510", ["code" => $code]);
76 } 76 }
@@ -82,7 +82,7 @@ class SmsMessage @@ -82,7 +82,7 @@ class SmsMessage
82 * @param $phone 82 * @param $phone
83 * @return mixed 83 * @return mixed
84 */ 84 */
85 - public function sendGetCode($phone, $code, $signName = '周合立科技') 85 + public function sendGetCode($phone, $code, $signName = '周和利科技')
86 { 86 {
87 $this->send($phone, $signName, "SMS_180755775", ["code" => $code]); 87 $this->send($phone, $signName, "SMS_180755775", ["code" => $code]);
88 } 88 }