Geetest.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Utils;
  4. use App\Models\Setting;
  5. /**
  6. * 极验行为式验证安全平台,php 网站主后台包含的库文件
  7. *
  8. * @author Tanxu
  9. */
  10. final class Geetest
  11. {
  12. public static function get($user_id = null)
  13. {
  14. $configs = Setting::getClass('geetest');
  15. $GtSdk = new GeetestLib($configs['geetest_id'], $configs['geetest_key']);
  16. $status = $GtSdk->preProcess($user_id);
  17. $ret = \json_decode($GtSdk->getResponseStr());
  18. session_start();
  19. $_SESSION['gtserver'] = $status;
  20. $_SESSION['user_id'] = $user_id;
  21. return $ret;
  22. }
  23. public static function verify($geetest_challenge, $geetest_validate, $geetest_seccode)
  24. {
  25. session_start();
  26. $configs = Setting::getClass('geetest');
  27. $GtSdk = new GeetestLib($configs['geetest_id'], $configs['geetest_key']);
  28. $user_id = $_SESSION['user_id'];
  29. if ($_SESSION['gtserver'] === 1) {
  30. $result = $GtSdk->successValidate($geetest_challenge, $geetest_validate, $geetest_seccode, $user_id);
  31. if ($result) {
  32. return true;
  33. }
  34. return false;
  35. }
  36. if ($GtSdk->failValidate($geetest_challenge, $geetest_validate, $geetest_seccode)) {
  37. return true;
  38. }
  39. return false;
  40. }
  41. }