123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?php
- namespace addons\geetest;
- use addons\geetest\library\GeetestLib;
- use think\Addons;
- use think\Validate;
- class Geetest extends Addons
- {
-
- public function install()
- {
- return true;
- }
-
- public function uninstall()
- {
- return true;
- }
-
- public function enable()
- {
- return true;
- }
-
- public function disable()
- {
- return true;
- }
-
- public function actionBegin()
- {
- Validate::extend('captcha', function ($value, $id = "") {
- $request = request();
- $geetest_challenge = $request->post('geetest_challenge');
- $geetest_validate = $request->post('geetest_validate');
- $geetest_seccode = $request->post('geetest_seccode');
- if (!$geetest_challenge || !$geetest_validate || !$geetest_seccode) {
- Validate::setTypeMsg('captcha', __('请先完成验证!'));
- return false;
- }
- $data = array(
- "user_id" => session('geetest_user_id'),
- "client_type" => $request->isMobile() ? 'h5' : 'web',
- "ip_address" => $request->ip()
- );
- $config = get_addon_config('geetest');
- if (!$config['appid'] || !$config['appkey']) {
- Validate::setTypeMsg('captcha', '请先在后台中配置极验证的参数信息');
- return false;
- }
- $GtSdk = new GeetestLib($config['appid'], $config['appkey']);
- if (session('geetest_status') == 1) {
-
- $result = $GtSdk->success_validate($geetest_challenge, $geetest_validate, $geetest_seccode, $data);
- if (!$result) {
- Validate::setTypeMsg('captcha', '请先完成验证!');
- return false;
- }
- } else {
-
- if (!$GtSdk->fail_validate($geetest_challenge, $geetest_validate, $geetest_seccode)) {
- Validate::setTypeMsg('captcha', '请先完成验证!');
- return false;
- }
- }
- return true;
- });
- }
-
- public function configInit(&$params)
- {
- $config = get_addon_config('geetest');
- $params['geetest'] = ['product' => $config['product']];
- }
- }
|