Ejemplo n.º 1
0
        private async Task <SiteVerifyResponse> GetSiteVerifyAsync(SiteVerifyPost post)
        {
            //string urlParam = UriExt.JsonObjectToUrlParams(post);
            var    sKey                   = post.SecretKey;
            var    gcResponse             = post.RecaptchaResponseToken;
            string url                    = "https://www.google.com/recaptcha/api/siteverify";
            MultipartFormDataContent form = new MultipartFormDataContent();

            form.Add(new StringContent(post.SecretKey), "secret");
            form.Add(new StringContent(post.RecaptchaResponseToken), "response");
            var msg = CreateMessage(HttpMethod.Post, url);

            msg.Content = form;

            SiteVerifyResponse response = null;

            try
            {
                response = await SendMsgAsync <SiteVerifyResponse>(msg);
            }
            catch (Exception)
            {
                throw;
            }

            return(response);
        }
Ejemplo n.º 2
0
        public async Task <SiteVerifyResult> VerifyAsync(SiteVerifyPost post)
        {
            SiteVerifyResponse response = await GetSiteVerifyAsync(post);

            SiteVerifyResult result = new SiteVerifyResult();

            if (response == null)
            {
                throw new Exception("No response returned from Google reCAPTCHA.");
            }

            if (response.ErrorCodes != null && response.ErrorCodes.Any())
            {
                List <ResultErrorMessage> errorList = new List <ResultErrorMessage>();
                foreach (var error in response.ErrorCodes)
                {
                    errorList.Add(new ResultErrorMessage()
                    {
                        Id = "", Message = error
                    });
                }
                result.IsVerified           = false;
                result.ResultStatus         = enums.ResultStatus.Error;
                result.ResultStatusMessages = errorList.ToArray();
                return(result);
            }

            result.IsVerified = response.Success;

            return(result);
        }