| | |
| | | } |
| | | else |
| | | { |
| | | var upload = AliyunOSSUtils.Upload(scene, url); |
| | | var upload = AliyunOSSUtils.Upload(scene, url, null); |
| | | url = upload.Url; |
| | | value = ocr.BusinessLicense(upload.Buffer); |
| | | } |
| | |
| | | } |
| | | result.Model = new BaiduOcrBusinessLicenseResultModel |
| | | { |
| | | EnterpriseName = result.WordsResult["单位名称"].Words, |
| | | SocietyCreditCode = result.WordsResult["社会信用代码"].Words, |
| | | LegalPerson = result.WordsResult["法人"].Words, |
| | | EnterpriseType = result.WordsResult["类型"].Words, |
| | | RegisteredCapital = result.WordsResult["注册资本"].Words, |
| | | EstablishmentDate = result.WordsResult["成立日期"].Words, |
| | | Address = result.WordsResult["地址"].Words, |
| | | MainBusiness = result.WordsResult["经营范围"].Words, |
| | | EnterpriseName = result.WordsResult.GetWords("单位名称"), |
| | | SocietyCreditCode = result.WordsResult.GetWords("社会信用代码"), |
| | | LegalPerson = result.WordsResult.GetWords("法人"), |
| | | EnterpriseType = result.WordsResult.GetWords("类型"), |
| | | RegisteredCapital = result.WordsResult.GetWords("注册资本"), |
| | | EstablishmentDate = result.WordsResult.GetWords("成立日期"), |
| | | Address = result.WordsResult.GetWords("地址"), |
| | | MainBusiness = result.WordsResult.GetWords("经营范围"), |
| | | }; |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 身份证正面OCR |
| | | /// </summary> |
| | | /// <param name="url"></param> |
| | | /// <param name="scene"></param> |
| | | /// <param name="isOssUrl"></param> |
| | | public static async Task<BaiduOcrIdentityFrontResult> OcrIdentityFront(this string url, string scene = null, bool isOssUrl = true) |
| | | { |
| | | var options = App.GetOptions<BaiduOptions>(); |
| | | var ocr = new Ocr(options.Ocr.Key, options.Ocr.Secret); |
| | | ocr.Timeout = 60000; |
| | | JObject value; |
| | | if (isOssUrl) |
| | | { |
| | | var downloadUrl = AliyunOSSUtils.GetUrl(url); |
| | | var buffer = await App.GetRequiredService<IHttpRemoteService>().GetAsByteArrayAsync(downloadUrl); |
| | | value = ocr.Idcard(buffer, "front"); |
| | | } |
| | | else |
| | | { |
| | | var upload = AliyunOSSUtils.Upload(scene, url, null); |
| | | url = upload.Url; |
| | | value = ocr.Idcard(upload.Buffer, "front"); |
| | | } |
| | | var result = value.ToObject<BaiduOcrIdentityFrontResult>(); |
| | | result.Url = url; |
| | | if (result.ErrorCode.IsNotNull()) |
| | | { |
| | | return result; |
| | | } |
| | | |
| | | result.Model = new BaiduOcrIdentityFrontResultModel |
| | | { |
| | | Address = result.WordsResult.GetWords("住址"), |
| | | Identity = result.WordsResult.GetWords("公民身份号码"), |
| | | BirthdayText = result.WordsResult.GetWords("出生"), |
| | | Name = result.WordsResult.GetWords("姓名"), |
| | | GenderText = result.WordsResult.GetWords("性别"), |
| | | Nation = result.WordsResult.GetWords("民族"), |
| | | }; |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 身份证背面OCR |
| | | /// </summary> |
| | | /// <param name="url"></param> |
| | | /// <param name="scene"></param> |
| | | /// <param name="isOssUrl"></param> |
| | | public static async Task<BaiduOcrIdentityBackResult> OcrIdentityBack(this string url, string scene = null, bool isOssUrl = true) |
| | | { |
| | | var options = App.GetOptions<BaiduOptions>(); |
| | | var ocr = new Ocr(options.Ocr.Key, options.Ocr.Secret); |
| | | ocr.Timeout = 60000; |
| | | JObject value; |
| | | if (isOssUrl) |
| | | { |
| | | var downloadUrl = AliyunOSSUtils.GetUrl(url); |
| | | var buffer = await App.GetRequiredService<IHttpRemoteService>().GetAsByteArrayAsync(downloadUrl); |
| | | value = ocr.Idcard(buffer, "back"); |
| | | } |
| | | else |
| | | { |
| | | var upload = AliyunOSSUtils.Upload(scene, url, null); |
| | | url = upload.Url; |
| | | value = ocr.Idcard(upload.Buffer, "back"); |
| | | } |
| | | var result = value.ToObject<BaiduOcrIdentityBackResult>(); |
| | | result.Url = url; |
| | | if (result.ErrorCode.IsNotNull()) |
| | | { |
| | | return result; |
| | | } |
| | | |
| | | result.Model = new BaiduOcrIdentityBackResultModel |
| | | { |
| | | ExpiryDateText = result.WordsResult.GetWords("失效日期"), |
| | | IssueAuthority = result.WordsResult.GetWords("签发机关"), |
| | | IssueDateText = result.WordsResult.GetWords("签发日期"), |
| | | }; |
| | | return result; |
| | | } |
| | | |
| | | public static string GetWords(this Dictionary<string, BaiduOcrResultWord> result, string name) |
| | | { |
| | | return result.ContainsKey(name) ? result[name].Words : null; |
| | | } |
| | | } |
| | | } |