Google recaptcha always returns false

0

I'm doing the google recaptcha validation but it always returns false.

    [HttpPost]
    [AllowAnonymous]       
    [Route("SendMessage")]        
    public HttpResponseMessage SendMessage([FromBody] EmailDTO email) {
        try
        {
            var client = new WebClient();

            var response = Request.CreateResponse("g-recaptcha-response");

            var secretKey = "mykey";

            var result = client.DownloadString(string.Format("https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}", secretKey, response));

            var objJSON = JObject.Parse(result);
            var status = (bool)objJSON.SelectToken("success");

            if (!status) {
                return Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "Failed captcha");
            }

            var objMail =  EmailService.SendMessage(email);

            if (objMail != null)
            {
                return Request.CreateResponse<EmailDTO>(HttpStatusCode.OK, objMail);
            }
            else
            {

                return Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "Error sending email");
            }
        }
        catch (Exception)
        {
            return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Error occured while sendign email");
        }
    }
    
asked by Bruno 23.07.2018 в 15:49
source

0 answers