Migre uma integração reCAPTCHA do 2Captcha para a solvethree

Por solvethree5 min de leitura

Não se trata apenas de uma mudança de endpoint. Substitua o envelope clientKey/task por uma requisição sem aninhamento autenticada por uma chave Bearer, configure o site de destino no solvethree e forneça um proxy. Mantenha os IDs de tarefas existentes do 2Captcha separados das novas tarefas do solvethree.

Nesta página

Verifique a tarefa que você está migrando

Esta migração abrange reCAPTCHA v3 Enterprise pela API v2 do 2Captcha. Ela não descreve a API legada in.php/res.php. Além disso, a versão da API do 2Captcha não é a versão do CAPTCHA: o solvethree não oferece suporte a reCAPTCHA v2.

A requisição inicial usa o envelope documentado em createTask do 2Captcha: credenciais fora de um objeto de tarefa específico do provedor.

Antes · envelope de tarefa da API v2 do 2Captcha
{
  "clientKey": "TWO_CAPTCHA_API_KEY",
  "task": {
    "type": "RecaptchaV3TaskProxyless",
    "websiteURL": "https://accounts.example.com/login",
    "websiteKey": "PUBLIC_SITE_KEY",
    "minScore": 0.7,
    "pageAction": "login",
    "isEnterprise": true
  }
}

Não leve esse objeto para a nova API sem alterações. Em particular, o tipo de tarefa sem proxy e minScore não têm lugar na requisição do solvethree abaixo.

Configure o site e substitua a requisição

Primeiro, configure o site de destino no console da solvethree. Seu workspace precisa de um perfil de site ativo antes de poder resolver solicitações para esse hostname. Enviar um hostname e uma ação não cria um perfil.

Crie novas tarefas com POST /v1/tasks em https://api.solvethree.com, usando Authorization: Bearer com a chave de API do seu workspace. Mantenha essa chave no servidor. O contrato de criação de tarefas usa um corpo JSON plano, em vez de um objeto task aninhado.

Alterações na requisição de exemplo
Alterações na requisição de exemplo
Entrada da API v2 do 2CaptchaEquivalente na solvethree
clientKeyChave de API do workspace no cabeçalho Authorization, não no corpo JSON.
Objeto contêiner taskRemova-o; envie os campos da tarefa no nível superior.
type: RecaptchaV3TaskProxylessOmita type. Forneça exatamente um dos campos: proxy ou proxyCandidates.
websiteURLUse site apenas com o hostname: accounts.example.com. Não envie url.
websiteKeyConfigure o perfil do site de destino no console, em vez de copiar esse campo para a tarefa.
pageActionUse action com o valor de ação do destino, como login.
isEnterpriseOmita-o; o valor padrão de recaptchaType é enterprise-v3.
minScoreOmita-o; não o copie para a requisição à solvethree.
reCAPTCHA Enterprise · estrutura da requisição
{
  "site": "accounts.example.com",
  "action": "login",
  "proxy": "http://user:[email protected]:8080",
  "requestId": "example_login_001"
}

Substitua o hostname, a ação e o proxy do exemplo pelos valores do seu destino. Escolha requestId antes de enviar a requisição e guarde-o para recuperação em caso de timeout; use um novo valor para cada nova tarefa lógica.

O exemplo usa um proxy. Como alternativa, proxyCandidates aceita no máximo doze URLs de proxy HTTP ou HTTPS distintas, sem caminhos, consultas ou fragmentos. Envie um campo ou o outro, nunca ambos. Os candidatos permitem que o serviço tente saídas alternativas; eles não garantem um proxy funcional.

Substitua o polling e o tratamento de timeouts

Mantenha as tarefas do 2Captcha em andamento no fluxo getTaskResult dele, usando suas credenciais, IDs de tarefa e política de polling documentada. Um ID de tarefa de outro serviço não é um identificador de tarefa da solvethree.

  1. 1.

    Trate a resposta de criação

    Verifique se a resposta HTTP indica sucesso antes de ler um payload de sucesso. A criação de reCAPTCHA espera até 15 segundos por padrão, mas pode retornar uma tarefa em estado não terminal. Se ela já estiver em ready, use a solução sem iniciar um loop de polling.

  2. 2.

    Faça polling apenas de tarefas não concluídas

    Consulte a tarefa da solvethree com GET /v1/tasks/:id. Substitua a antiga verificação de processing por pending e solving; ambos indicam que a tarefa não foi concluída. Apenas ready contém uma solução utilizável.

  3. 3.

    Defina a espera na URL

    O polling com GET não espera por padrão. Para long polling, defina o parâmetro de consulta waitMs na URL como no máximo 15000, não como um campo JSON. No timeout do seu cliente HTTP, inclua a espera solicitada mais o tempo adicional de rede.

  4. 4.

    Pare ao receber failed

    Leia errorCode e error e pare de fazer polling dessa tarefa. Resoluções com falha são reembolsadas. Um erro como site-unreachable precisa ser investigado; não presuma que toda falha seja um problema de créditos nem continue reenviando entradas inválidas sem alterações.

Um timeout de conexão não comprova que a criação falhou. Se você recebeu o ID da tarefa, consulte essa tarefa. Se não recebeu, repita a mesma requisição com o mesmo requestId para recuperar a tarefa existente, em vez de criar outra resolução. Alterar os dados de entrada da tarefa e reutilizar esse requestId causa um conflito.

Mantenha os erros HTTP separados das falhas terminais de tarefas no seu adaptador. O contrato de polling e o tratamento de falhas descrevem esses dois caminhos; não reutilize o parser de payloads de erro do 2Captcha.

Atualize a extração e o envio do token

Substitua a busca de token do adaptador antigo por solution.token de uma tarefa da solvethree em ready. Envie esse token onde o destino espera o valor de reCAPTCHA — não o ID da tarefa nem o objeto solution inteiro.

Use a identidade de navegador retornada em userAgent e secChUa, junto com o proxy que funcionou, ao enviar o token. Se você forneceu proxyCandidates, use o proxy que funcionou, em vez de escolher outro candidato para o envio.

Uma tarefa em ready significa que uma solução foi gerada, não que o site aceitou a requisição da sua aplicação. Se o destino a rejeitar, inspecione o token enviado, a ação, a URL de destino, o proxy e a identidade do navegador antes de pagar por outra resolução.

Execute sua primeira tarefa.

Comece com $5 em créditos no espaço de trabalho.

Criar um espaço de trabalho
Migre uma integração reCAPTCHA do 2Captcha para a solvethree · solvethree