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");
}
}