> >

Frequently Asked Question


For Slide captcha, the sliding piece doesn’t get aligned when using slide captcha in IE browser?

  1. It could be the style that affects the display of Slide captcha. The IE browser uses DOM rendering, which might result in insufficient width for captcha and start a newline.

  2. Or check the box-sizing: border-box. Please check whether there is global style override, and change the box-sizing to border-box.

The captcha display behaves abnormally in HTML5

The initial scale is required to be 1. This aims to solve the display adaptation problem of different mobile phones.

Failed to set the width of the captcha button in custom mode

The minimum width for Slide captcha is 278px. The minimum width for Click, Nine, Phrase, Icon captcha is 210px. Please do not exceed the limit.

Is the width and height of the captcha button modifiable?

The width is modifiable and it can be any standard css3 format. Notice that the minimum width is 260px. The height is not modifiable.

The loading speed of the captcha is slow in the browser.

  1. The captcha does not initialize in advance in the client. The GeeTest captcha requires to be initialized after when the webpage is loaded.
  2. If you enable the console of IE browser, the webpage will load relatively slow.

Verification in front-end failed, error “drag too much” is reported in console

It is resulted from multiple initializations. captcha initialization only needs to be performed once.

Front-end reports error ‘old challenge’

The challenge is generated when the SDK registers in GeeTest cloud server. It is only valid for 10 minutes. After 10 minutes, the challenge will be invalid.
The ‘old challenge’ indicates that challenge has been used for multiple times. To solve it, please add a timestamp after the register.

How frequent is gt.js updated?

The gt.js is part of SDK and will not be udpated very often. However, the newer version of gt.js is backward-compatible.

Mobile apps

The Click, Nine, Phrase, Icon captcha misplace in HTML5 with iOS devices

The elements are misplaced because iOS triggers the soft keyboard and push the page up. The input box cannot restore after losing focus, which leads to the change of the clientY of the page.
The following are solutions :

  1. Lengthen the webpage;
  2. Insert the following code into your webpage. html,body { width: 100%; height: 100%; }

The error that the ARC library cannot be linked is reported when using Xcode 14.3 to run project of which the minimum version is below 9.0

The reason is that Xcode 14.3 removed ARC-related libraries, and iOS 9.0 and above systems have built-in ARC libraries, so there are two solutions:

  1. Optionally set the project target minimum version to 9.0 or above
  2. Copy the ARC library in the Xcode version below 14.3 to the corresponding path of the Xcode 14.3 version

Rejected when publishing your Android App too Google Play due to not supporting 64-bit architecture

  1. Confirm that the APP has completed 64-bit support
  2. Remove the file liblbs.so under jnilibs
  3. Remove X5 initialization code accessed in the application


Configure API1 & API2

During the integration, please configure the API1 and API2 in client, which is used to send requests to server. Please refer the explanation in server SDK for details.

Secondary verification failure

  1. SDK internal logic errors. Please check: a) whether session is stored and read successfully, b) whether the code could successfully process to the module which sends a request to GeeTest server, c) check the return value of GeeTest server.
  2. Multiple submission. The API which initiates the secondary verification is only available for one time.
  3. The challenge is inconsistent. Please ensure the consistency of challenge during the whole verification process.
  4. Check if gt and key in the code are correct in SDK. Please check if the parameters have been passed correctly.
  5. Please provide challenge to our service team. They could help you to check the log.

What is Bypass Mode?

The bypass mode is an emergency mode to minimize the possible influence to end users when the servers of the website cannot connect to GeeTest cloud server. GeeTest offers the interface independent from the main logic monitoring the service availability. The details can be found in server’s API reference.

How to simulate and test the bypass mode?

To test the bypass mode, please follow the steps below:

  1. Change GEETEST_ID in geetest_config to an invalid one, e.g. 123456789;
  2. Change the listener interface BYPASS_URL in geetest_config to an invalid URL address, e.g. http://www.google.com;
  3. Modify hosts file on server and direct the interface to an invalid IP, e.g. bypass.geetest.com;
  4. Contact us to provide the correct ID on which you perform the above steps and we will make it return fail status.

How to know if the captcha module has been loaded successfully?

You can listen to the onReady event. If the onReady is executed, the captcha module has been loaded successfully and you can use the verify to display the GeeTest captcha.

Why the server always responds 403 to the get requests of API1?

Please check the following to find the problem

  1. Check if gt_id is correct. The gt_id should be a string with 32 characters.
  2. Check if the URL is correct.
  3. Ping the api.geetest.com to check if it’s availability.

Frequently asked questions about network

How to enable HTTPS?

Add a parameter in the initGeetest,

If the http changes to httpclient, can I use post for API1 and API2 requests?

No, please use the get for the API1 , and post for the API2 .

About GeeTest captcha

GeeTest captcha in different platform

Could a set of captcha ID and Key be used in both web, iOS and Android?

Currently, there is no limitation for it. However, it is recommended to use an ID and key set in only one context or only one platform. It will be easier for troubleshooting and have special security policies for that ID and key set

GeeTest only has 2 cookies on the end-user side. All these cookies do not involve in any local information of users.

GeeTestUser: When client sents a request for GeeTest resource, GeeTest server will generate an identifier for it, which is related to the request ID. It’s used to record whether the user has requested the GeeTest static resource.

GeeTestAjaxUser: A identifier generated by GeeTest server when the user interacts with GeeTest. The identifier to record whether the user has sent an ajax request to GeeTest.

Was this helpful?