Pokud dostáváte při validaci reCaptcha v v3 chybovou hlášku timeout-or-duplicate jedná se o opakované odeslání se stejným tokenem, nebo příliš dlouho načtenou stránku.
Google zde nastavuje interval 2 minuty. Toto je ale příliš rychlé, pokud máte například formulář v modálním okně a náštěvník se před odesláním začte do obsahu.
Řešením je upravit javascriptový kód, aby generoval token, až když uživatel chce provést odeslání formuláře.
grecaptcha.ready(function() {
document.getElementById('contact-form').addEventListener("submit", function(event) {
event.preventDefault();
grecaptcha.execute('My_Site_Key', {action: 'contact'}).then(function(token) {
document.getElementById("recaptchaResponse").value= token;
document.getElementById('contact-form').submit();
});
}, false);
});
červen 2020