17
17
* Class ReCaptchaBuilder
18
18
* @package Biscolab\ReCaptcha
19
19
*/
20
- class ReCaptchaBuilder {
20
+ class ReCaptchaBuilder
21
+ {
21
22
22
23
/**
23
24
* @var string
@@ -50,13 +51,6 @@ class ReCaptchaBuilder {
50
51
*/
51
52
protected $ version ;
52
53
53
- /**
54
- * The curl timeout
55
- * please visit https://curl.haxx.se/libcurl/c/CURLOPT_TIMEOUT.html
56
- * @var int
57
- */
58
- protected $ curl_timeout ;
59
-
60
54
/**
61
55
* Whether is true the ReCAPTCHA is inactive
62
56
* @var boolean
@@ -74,19 +68,16 @@ class ReCaptchaBuilder {
74
68
* @param string $api_site_key
75
69
* @param string $api_secret_key
76
70
* @param null|string $version
77
- * @param int|null $curl_timeout
78
71
*/
79
72
public function __construct (
80
73
string $ api_site_key ,
81
74
string $ api_secret_key ,
82
- ?string $ version = self ::DEFAULT_API_VERSION ,
83
- ?int $ curl_timeout = self ::DEFAULT_CURL_TIMEOUT
75
+ ?string $ version = self ::DEFAULT_API_VERSION
84
76
) {
85
77
86
78
$ this ->setApiSiteKey ($ api_site_key );
87
79
$ this ->setApiSecretKey ($ api_secret_key );
88
80
$ this ->setVersion ($ version );
89
- $ this ->setCurlTimeout ($ curl_timeout );
90
81
$ this ->setSkipByIp ($ this ->skipByIp ());
91
82
}
92
83
@@ -95,7 +86,8 @@ public function __construct(
95
86
*
96
87
* @return ReCaptchaBuilder
97
88
*/
98
- public function setApiSiteKey (string $ api_site_key ): ReCaptchaBuilder {
89
+ public function setApiSiteKey (string $ api_site_key ): ReCaptchaBuilder
90
+ {
99
91
100
92
$ this ->api_site_key = $ api_site_key ;
101
93
@@ -107,42 +99,30 @@ public function setApiSiteKey(string $api_site_key): ReCaptchaBuilder {
107
99
*
108
100
* @return ReCaptchaBuilder
109
101
*/
110
- public function setApiSecretKey (string $ api_secret_key ): ReCaptchaBuilder {
102
+ public function setApiSecretKey (string $ api_secret_key ): ReCaptchaBuilder
103
+ {
111
104
112
105
$ this ->api_secret_key = $ api_secret_key ;
113
106
114
107
return $ this ;
115
108
}
116
109
117
- /**
118
- * @param int|null $curl_timeout
119
- *
120
- * @return ReCaptchaBuilder
121
- */
122
- public function setCurlTimeout (?int $ curl_timeout = null ): ReCaptchaBuilder {
123
-
124
- if ($ curl_timeout === null ) {
125
- $ curl_timeout = config ('recaptcha.curl_timeout ' , ReCaptchaBuilder::DEFAULT_CURL_TIMEOUT );
126
- }
127
- $ this ->curl_timeout = $ curl_timeout ;
128
-
129
- return $ this ;
130
- }
131
-
132
110
/**
133
111
* @return int
134
112
*/
135
- public function getCurlTimeout (): int {
113
+ public function getCurlTimeout (): int
114
+ {
136
115
137
- return $ this -> curl_timeout ;
116
+ return config ( ' recaptcha. curl_timeout' , self :: DEFAULT_CURL_TIMEOUT ) ;
138
117
}
139
118
140
119
/**
141
120
* @param string $version
142
121
*
143
122
* @return ReCaptchaBuilder
144
123
*/
145
- public function setVersion (string $ version ): ReCaptchaBuilder {
124
+ public function setVersion (string $ version ): ReCaptchaBuilder
125
+ {
146
126
147
127
$ this ->version = $ version ;
148
128
@@ -152,7 +132,8 @@ public function setVersion(string $version): ReCaptchaBuilder {
152
132
/**
153
133
* @return string
154
134
*/
155
- public function getVersion (): string {
135
+ public function getVersion (): string
136
+ {
156
137
157
138
return $ this ->version ;
158
139
}
@@ -162,7 +143,8 @@ public function getVersion(): string {
162
143
*
163
144
* @return ReCaptchaBuilder
164
145
*/
165
- public function setSkipByIp (bool $ skip_by_ip ): ReCaptchaBuilder {
146
+ public function setSkipByIp (bool $ skip_by_ip ): ReCaptchaBuilder
147
+ {
166
148
167
149
$ this ->skip_by_ip = $ skip_by_ip ;
168
150
@@ -172,7 +154,8 @@ public function setSkipByIp(bool $skip_by_ip): ReCaptchaBuilder {
172
154
/**
173
155
* @return array|mixed
174
156
*/
175
- public function getIpWhitelist () {
157
+ public function getIpWhitelist ()
158
+ {
176
159
177
160
$ whitelist = config ('recaptcha.skip_ip ' , []);
178
161
@@ -188,7 +171,8 @@ public function getIpWhitelist() {
188
171
*
189
172
* @return boolean
190
173
*/
191
- public function skipByIp (): bool {
174
+ public function skipByIp (): bool
175
+ {
192
176
193
177
return (in_array (request ()->ip (), $ this ->getIpWhitelist ()));
194
178
}
@@ -203,7 +187,8 @@ public function skipByIp(): bool {
203
187
* @return string
204
188
* @throws Exception
205
189
*/
206
- public function htmlScriptTagJsApi (?string $ formId = '' , ?array $ configuration = []): string {
190
+ public function htmlScriptTagJsApi (?string $ formId = '' , ?array $ configuration = []): string
191
+ {
207
192
208
193
if ($ this ->skip_by_ip ) {
209
194
return '' ;
@@ -214,7 +199,9 @@ public function htmlScriptTagJsApi(?string $formId = '', ?array $configuration =
214
199
$ html = "<script src= \"https://www.google.com/recaptcha/api.js?render= {$ this ->api_site_key }\"></script> " ;
215
200
break ;
216
201
default :
217
- $ html = "<script src= \"https://www.google.com/recaptcha/api.js \" async defer></script> " ;
202
+ $ language = config ('recaptcha.default_language ' , null );
203
+ $ query = ($ language ) ? "?hl= " . $ language : "" ;
204
+ $ html = "<script src= \"https://www.google.com/recaptcha/api.js " . $ query . "\" async defer></script> " ;
218
205
}
219
206
220
207
if ($ this ->version == 'invisible ' ) {
@@ -226,8 +213,7 @@ function biscolabLaravelReCaptcha(token) {
226
213
document.getElementById(" ' . $ formId . '").submit();
227
214
}
228
215
</script> ' ;
229
- }
230
- elseif ($ this ->version == 'v3 ' ) {
216
+ } elseif ($ this ->version == 'v3 ' ) {
231
217
232
218
$ action = Arr::get ($ configuration , 'action ' , 'homepage ' );
233
219
@@ -237,8 +223,7 @@ function biscolabLaravelReCaptcha(token) {
237
223
if ($ js_custom_validation ) {
238
224
239
225
$ validate_function = ($ js_custom_validation ) ? "{$ js_custom_validation }(token); " : '' ;
240
- }
241
- else {
226
+ } else {
242
227
243
228
$ js_then_callback = Arr::get ($ configuration , 'callback_then ' , '' );
244
229
$ js_callback_catch = Arr::get ($ configuration , 'callback_catch ' , '' );
@@ -281,7 +266,8 @@ function biscolabLaravelReCaptcha(token) {
281
266
*
282
267
* @return string
283
268
*/
284
- public function htmlScriptTagJsApiV3 (?array $ configuration = []): string {
269
+ public function htmlScriptTagJsApiV3 (?array $ configuration = []): string
270
+ {
285
271
286
272
return $ this ->htmlScriptTagJsApi ('' , $ configuration );
287
273
}
@@ -293,7 +279,8 @@ public function htmlScriptTagJsApiV3(?array $configuration = []): string {
293
279
*
294
280
* @return boolean|array
295
281
*/
296
- public function validate ($ response ) {
282
+ public function validate ($ response )
283
+ {
297
284
298
285
if ($ this ->skip_by_ip ) {
299
286
if ($ this ->returnArray ()) {
@@ -317,14 +304,14 @@ public function validate($response) {
317
304
$ url = $ this ->api_url . '? ' . $ params ;
318
305
319
306
if (function_exists ('curl_version ' )) {
307
+
320
308
$ curl = curl_init ($ url );
321
309
curl_setopt ($ curl , CURLOPT_HEADER , false );
322
310
curl_setopt ($ curl , CURLOPT_RETURNTRANSFER , true );
323
- curl_setopt ($ curl , CURLOPT_TIMEOUT , $ this ->curl_timeout );
311
+ curl_setopt ($ curl , CURLOPT_TIMEOUT , $ this ->getCurlTimeout () );
324
312
curl_setopt ($ curl , CURLOPT_SSL_VERIFYPEER , false );
325
313
$ curl_response = curl_exec ($ curl );
326
- }
327
- else {
314
+ } else {
328
315
$ curl_response = file_get_contents ($ url );
329
316
}
330
317
@@ -350,10 +337,29 @@ public function validate($response) {
350
337
351
338
}
352
339
340
+ /**
341
+ * @return string
342
+ */
343
+ public function getApiSiteKey (): string
344
+ {
345
+
346
+ return $ this ->api_site_key ;
347
+ }
348
+
349
+ /**
350
+ * @return string
351
+ */
352
+ public function getApiSecretKey (): string
353
+ {
354
+
355
+ return $ this ->api_secret_key ;
356
+ }
357
+
353
358
/**
354
359
* @return bool
355
360
*/
356
- protected function returnArray (): bool {
361
+ protected function returnArray (): bool
362
+ {
357
363
358
364
return ($ this ->version == 'v3 ' );
359
365
}
0 commit comments