помогите вызвать CallbackFunction после ришения капчи

Поддержка
  • Снимок.PNG
    Как визиветса ета функция я не могу понять. Хочу сделать как в
    https://rucaptcha.com/api-rucaptcha#callback

  • вот нашол на странице етоСнимок.PNG

  • Снимок.PNG

  • @selector

    document.getElementById("g-recaptcha-response").innerHTML = [[RESPONSE]]
    

    попробуй вначале так поставить ответ потом уже вызвать функцию который выше показал

  • @GamiD А что должно бить в респонс? Я решаю капчу автоматически. И ответ уже в страницу должен бить вложен.

  • @selector ответ от сервиса который решил капчу

  • @GamiD я пробовал так, вставлял токен пришедший с решалок, но кнопка continued не проявлялась
    Выводил ее искусственно, меняя атрибуты
    Но при клике на нее капча просто обновлялась
    Хотя токен верный по сути

  • @GamiD said in помогите вызвать CallbackFunction после ришения капчи:

    @selector
    document.getElementById("g-recaptcha-response").innerHTML = [[RESPONSE]]

    попробуй вначале так поставить ответ потом уже вызвать функцию который выше показал

    Народ помогите визвать колбек функцию

  • @GamiD said in помогите вызвать CallbackFunction после ришения капчи:

    document.getElementById("g-recaptcha-response").innerHTML = [[RESPONSE]]

    https://zennolab.com/discussion/threads/ischu-reshenie-recaptcha-dlja-paypal.83923/
    вот сдесь обсуждалось. Кто силен в програмировании можете помоч?
    verifyCallback(); - просто Яваскрипт не срабативет

  • This post is deleted!
  • Вот скрипт который находит callback
    https://gist.github.com/2captcha/2ee70fa1130e756e1693a5d4be4d8c70

    в консоле переключаешься на 90adcb21-76a7-426f-ba17-ac88b5c92388-image.png

    ввод

    const findRecap = () => {
        if (typeof (___grecaptcha_cfg) !== 'undefined') {
            let cs = []
            for (let id in ___grecaptcha_cfg.clients) {
                cs.push(id)
            }
            let res = cs.map(cid => {
                for (let p in ___grecaptcha_cfg.clients[cid]) {
                    let c = {}
                    cid >= 10000 ? c.version = 'V3' : c.version = 'V2'
                    let path = "___grecaptcha_cfg.clients[" + cid + "]." + p
                    let pp = eval(path)
                    if (typeof pp === 'object') {
                        for (let s in pp) {
                            let subpath = "___grecaptcha_cfg.clients[" + cid + "]." + p + "." + s
                            let sp = eval(subpath)
                            if (sp && typeof sp === 'object' && sp.hasOwnProperty('sitekey') && sp.hasOwnProperty('size')) {
                                c.sitekey = eval(subpath + '.sitekey')
                                if (c.version === 'V2') {
                                    let cb = eval(subpath + '.callback')
                                    if (cb == null) {
                                        c.callback = null
                                        c.function = null
                                    }
                                    else {
                                        c.callback = subpath + '.callback'
                                        cb != c.callback ? c.function = cb : c.function = null
                                    }
                                } else {
                                    let cb = eval(subpath+'["promise-callback"]')
                                    if (cb == null) {
                                        c.callback = null
                                        c.function = null
                                    }
                                    else {
                                        c.callback = subpath + '["promise-callback"]'
                                        cb != c.callback ? c.function = cb : c.function = null
                                    }
                                }
    
                            }
                        }
                    }
                    return c
                }
            })
            return (res)
        } else {
            return (null)
        }
    }
    

    После вводишь

    console.log(findRecap())
    
    или
    
    console.log(findRecap()[0].callback)
    

    И получаешь callback

    c07fe139-248e-43b3-ad16-1f3beaf9ad60-image.png

  • Смотрел модуль recaptcha2 так и не понял каким образом ищет callback

  • @GamiD
    сделал как у вас на инструкции: видало в консоль так же как у вас:
    ___grecaptcha_cfg.clients[0].L.L.callback
    Тоесть ето и есть названия колбек функции?
    Дальше запустил етот код в действия Яваскрипт:
    ___grecaptcha_cfg.clients[0].L.L.callback();
    Но нечего не произошло. У вас как?

  • @selector так же в чем проблема не знаю то что нашел в инете показал надо проверять искать еще информации

  • This post is deleted!
  • @GamiD супер, спасибо, все облазил, только это помогло! Сайт один сменил обычную Recaptcha 2 на Enterprise версию. Соответственно стандартный модуль решения рекапчи не пашет, точнее в моем случае он ее решает, но т.к. капча кастомная, то вставляется она не туда куда надо. Как надо делать: по инструкции @GamiD находите коллбек функции, скорее всего она будет содержать в своем названии "___grecaptcha_cfg.clients". Потом с помощью модуля https://community.bablosoft.com/topic/11187/captchacustom решаете капчу, ее нужно будет вручную настроить, вписать токен сайта. Я его взял из запроса, который ушел через стандартный модуль решения рекапчи. После решения результат оказывается в переменной [[RESPONSE]] Потом в действии выполнить яваскрипт в браузере вписываете строчку с найденной по инструкции callback функции:

    ___grecaptcha_cfg.clients[1].B.B.callback([[RESPONSE]]);
    

    Благодарности @GamiD за инструкцию и @GhostZ за суперский модуль

  • @serrgo Рад что смог помочь=)

  • Возникла следующая проблема, название коллбэк функции меняется, а конкретно вот эта ее часть ___grecaptcha_cfg.clients[1].B.B.callback
    Не знаю как часто, возможно раз в пару дней и скорее всего не из за меня а просто автоматом такая фича у этрерпрайз версии. Но все равно это черевато сливом денег на антикапчу и времени вникуда если вовремя это не отследить. Вопрос, как то можно это выпарсить название автоматически каким то яваскрипт запросом?

  • @serrgo Попробуй код который выше дал засунуть в "Выполнить Javascript На Элементе" в селектор укажи путь во внутренности iframe и запустить

  • @GamiD said in помогите вызвать CallbackFunction после ришения капчи:

    @serrgo Попробуй код который выше дал засунуть в "Выполнить Javascript На Элементе" в селектор укажи путь во внутренности iframe и запустить

    Столкнулся с такой же проблемой.
    Уже все советы с форума перепробовал, не хочет выполнятся переход.

    Подскажите где искать данную функцию