Tengo una aplicación simple js + jQuery con un botón protegido por google recaptcha, todo funciona como se esperaba, pero no puedo actualizar la clave del sitio sobre la marcha. La razón por la que quiero esto es porque tengo un par de entornos (puesta en escena, prueba, producción, etc.) y me gustaría tener una clave de sitio separada para entornos específicos (para separar las estadísticas de prueba de los datos de los usuarios reales).
Puedo cambiar el atributo en mi elemento recaptcha, pero parece que el script toma los atributos al inicializar todo, ¿cómo puedo actualizar/restablecer el widget para aceptar la nueva clave de sitio?
He estado experimentando con los métodos de reset y render , pero hasta ahora no ha tenido ningún efecto.
<div id="google-recaptcha" class="g-recaptcha" data-sitekey="this-will-be-replaced-anyways" data-callback="onSubmit" data-size="invisible" ></div> if (grecaptcha) { $('#google-recaptcha').attr({ 'data-sitekey': 'my-real-sitekey' }); }Creo que está buscando Representar explícitamente el widget reCAPTCHA
1.Especifique su función de devolución de llamada onload. Esta función será llamada por el recurso de JavaScript (ver el siguiente paso)
<script> function onloadCallback() { grecaptcha.render('myCaptcha1', { 'sitekey': 'sitekey value', // required 'theme': 'light', // optional 'callback': 'onloadCallback' // optional }); } </script>2.Inserte el recurso de JavaScript, configurando el parámetro onload en el nombre de su función de devolución de llamada onload y el parámetro render en explícito.
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"></script>3. Defina el control HTML de destino que se supone que es un captcha en su página.
<div id="myCaptcha1"></div>Espero que te ayude como me ayudó a mí, buena suerte.