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
@@ -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 | } |