一、 文档地址
1.百度AI身份证验证参考文档地址:https://ai.baidu.com/docs#/OCR-API/7e4792c7
2.百度AI 驾驶证验证参考文档地址:https://ai.baidu.com/docs#/OCR-API/6a5f6b1b
二、注册时验证照片是否和名字身份证号一致。
上传实体类:
//用户注册(司机)
public class UserRegisterParam
{
/// <summary>
/// 用户姓名
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 手机号
/// </summary>
public string PhoneNumber { get; set; }
/// <summary>
/// 密码
/// </summary>
public string PassWord { get; set; }
/// <summary>
/// 身份证号
/// </summary>
public string IDCard { get; set; }
/// <summary>
/// 驾驶证照片
/// </summary>
public List<UploadImgage> DriverLicensePhoto { get; set; }
/// <summary>
/// 身份证照片
/// </summary>
public List<UploadImgage> OtherPhoto { get; set; }
}
public class UploadImgage
{
/// <summary>
/// 图片名称
/// </summary>
public string ImageName { get; set; }
/// <summary>
/// 图片Base64编码
/// </summary>
public string ImageBase64 { get; set; }
}
验证代码:
public int YZ_pic(UserRegisterParam param)
{
//驾驶证照片
if (param.DriverLicensePhoto.Count > 0)
{
// List<UploadImgage> driverLicensePhotos = JsonHelper.JsonDeserialize<List<UploadImgage>>(param.DriverLicensePhoto);
List<UploadImgage> driverLicensePhotos = param.DriverLicensePhoto;
if (driverLicensePhotos != null && driverLicensePhotos.Count > 0)
{
foreach (var item in driverLicensePhotos)
{
var driverLicenseName = item.ImageName;
var driverLicenseBase = item.ImageBase64;
// byte[] arr = Convert.FromBase64String(driverLicenseBase);
string result = yz_JSZ(driverLicenseBase);
if (result.Contains("姓名") && result.Contains("证号"))
{
JObject obj = (JObject)JsonConvert.DeserializeObject(result.ToString());
string usernames = obj["words_result"]["姓名"]["words"].ToString();
string zj = obj["words_result"]["证号"]["words"].ToString();
if (usernames == param.UserName && zj == param.IDCard)
{
if (param.OtherPhoto.Count < 1)
{
return 1;
}
else
{ //其他照片(身份证)
List<UploadImgage> otherPhotos = param.OtherPhoto;
if (otherPhotos != null && otherPhotos.Count > 0)
{
foreach (var items in otherPhotos)
{
var otherPhotoName = items.ImageName;
var otherPhotoBase = items.ImageBase64;
// byte[] arrs = Convert.FromBase64String(otherPhotoBase);
string results = yz_IDcard(otherPhotoBase);//error_msg
if (results.Contains("公民身份号码") && results.Contains("姓名"))
{
JObject objs = (JObject)JsonConvert.DeserializeObject(results.ToString());
string idcard = objs["words_result"]["公民身份号码"]["words"].ToString();
string username = objs["words_result"]["姓名"]["words"].ToString();
if (idcard == param.IDCard && username == param.UserName)
{
return 1;
}
}
}
return 0;
}
}
}
}
}
return 0;
}
}
return 0;
}
身份证和驾驶证验证请求百度AI:client_id ; client_secret在百度AI官网申请;地址:http://ai.baidu.com/docs#/Auth/top
public string yz_IDcard(string strbaser64)
{
string result = "";
string token = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=XXX&client_secret=XXX";
string jsonText = SendRequest(token, Encoding.UTF8);
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
String access_token = jo["access_token"].ToString();
string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" + access_token;
Encoding encoding = Encoding.Default;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
request.Method = "post";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
String str = "id_card_side=front&image=" + System.Web.HttpUtility.UrlEncode(strbaser64);
byte[] buffer = encoding.GetBytes(str);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
result = reader.ReadToEnd();
return result;
}
public string yz_JSZ(string strbaser64)
{
string result = "";
string token = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=XXX&client_secret=XXX";
string jsonText = SendRequest(token, Encoding.UTF8);
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
String access_token = jo["access_token"].ToString();
string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/driving_license?access_token=" + access_token;
Encoding encoding = Encoding.Default;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
request.Method = "post";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
String str = "image=" + System.Web.HttpUtility.UrlEncode(strbaser64);
byte[] buffer = encoding.GetBytes(str);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
result = reader.ReadToEnd();
return result;
}