Commit 6fd6a960c6a2d059ab31994ab20a30f5eec53a66

Authored by 曹明
1 parent 6f1f34e1
Exists in master

1. 短信抬头调整

2. 图片校验功能完善
common/config/params.php
... ... @@ -19,6 +19,6 @@ return [
19 19 'sms'=>[
20 20 'smsKey'=>'LTAI4Fs7QiKCF4ZpZmEGFkcD',
21 21 'smsSecret'=>'iVs6oI0KknlR2PrRhvQl6f4Xwsudlf',
22   - 'smsSignName'=>'周合立科技',
  22 + 'smsSignName'=>'周和利科技',
23 23 ],
24 24 ];
... ...
common/helpers/CheckActiveHelper.php
... ... @@ -34,7 +34,7 @@ class CheckActiveHelper
34 34 * status string 状态码【待定】(authentic:正品 fake:假货 其他状态码:请闵总帮忙补充)
35 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 39 try {
40 40 $curl = curl_init();
... ... @@ -63,8 +63,8 @@ class CheckActiveHelper
63 63 curl_setopt($curl, CURLOPT_POST, true);
64 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 68 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
69 69 // 返回内容
70 70 $callbcak = curl_exec($curl);
... ... @@ -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 216 * @param $uuid string 是 防伪标签uuid
90 217 * @param $token string 是 访问令牌
... ...
domain/system/message/SmsMessage.php
... ... @@ -70,7 +70,7 @@ class SmsMessage
70 70 * @param $signName
71 71 * @return mixed
72 72 */
73   - public function sendRegCode($phone, $code, $signName = '周合立科技')
  73 + public function sendRegCode($phone, $code, $signName = '周和利科技')
74 74 {
75 75 $this->send($phone, $signName, "SMS_179880510", ["code" => $code]);
76 76 }
... ... @@ -82,7 +82,7 @@ class SmsMessage
82 82 * @param $phone
83 83 * @return mixed
84 84 */
85   - public function sendGetCode($phone, $code, $signName = '周合立科技')
  85 + public function sendGetCode($phone, $code, $signName = '周和利科技')
86 86 {
87 87 $this->send($phone, $signName, "SMS_180755775", ["code" => $code]);
88 88 }
... ...