Как заставить Google Recaptcha v3 работать внутри события onValidate () Marketo Form? - PullRequest
0 голосов
/ 02 июля 2019

Функция onValidate() от Marketo не работает с Google Recaptcha v3's grecaptcha.execute(). У меня установлено значение false для отправки, и когда запускается проверка marketo, он не ждет, пока вернется grecaptcha.execute(), даже если я использовал async await.

<script>
MktoForms2.whenReady(function (mktoForm) {
    mktoForm.submittable(false);    

    mktoForm.onValidate(async function (native) {
        if (!native) return;

        const recaptchaToken = await grecaptcha.execute(userConfig.apiKeys.recaptcha, {
            action: userConfig.actions.formSubmit
        });

        mktoForm.addHiddenFields({ "Recaptcha": recaptchaToken });

        if (recaptchaToken.length) {
            mktoForm.submittable(true);
        } else {
            mktoForm.submittable(false);
        }
    });
})
</script>

onValidate() должен дождаться разрешения recaptchaToken перед возвратом, однако он обходит await и каждый раз использует subbmittable от marketo как false.

...