public Task <IDCardBackOCRResult> RecognizeIDCardBack(Stream idCardBackImageData) { var result = new IDCardBackOCRResult { Issuer = "Issuer", IssueDate = new DateTime(2008, 2, 21), ExpiresDate = new DateTime(2018, 2, 21), }; return(Task.FromResult(result)); }
/// <summary> /// 识别身份证背面(国徽面)。 /// </summary> /// <param name="idCardBackImageData"></param> /// <returns></returns> public async Task <IDCardBackOCRResult> RecognizeIDCardBack(Stream idCardBackImageData) { string imgBase64; using (var ms = new MemoryStream()) { idCardBackImageData.CopyTo(ms); imgBase64 = Convert.ToBase64String(ms.ToArray()); } var requestData = new { image = imgBase64, configure = new { side = "back", }, }; var request = WebRequest.Create(svcUrl); request.Method = "POST"; request.Headers.Add("Authorization", "APPCODE " + appCode); request.ContentType = "application/json; charset=UTF-8"; var requestStream = await request.GetRequestStreamAsync(); var writer = new StreamWriter(requestStream); var jsonWriter = new JsonTextWriter(writer); this.serializer.Serialize(jsonWriter, requestData); jsonWriter.Flush(); var response = await request.GetResponseAsync(); var responseStream = response.GetResponseStream(); var result = this.serializer.Deserialize <dynamic>(new JsonTextReader(new StreamReader(responseStream))); if (!(bool)result.success) { throw new IDCardRecognizeException("Can not recognize"); } var returnResult = new IDCardBackOCRResult { Issuer = (string)result.issue, IssueDate = this.parseDate((string)result.start_date), ExpiresDate = this.parseDate((string)result.end_date), }; return(returnResult); }