Commit 6fd6a960c6a2d059ab31994ab20a30f5eec53a66
1 parent
6f1f34e1
Exists in
master
1. 短信抬头调整
2. 图片校验功能完善
Showing
3 changed files
with
133 additions
and
6 deletions
Show diff stats
common/config/params.php
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 | } | ... | ... |