概述
一般来说winform应用程序解决这个问题起来时很容易的,web应用程序就麻烦一点了。你必要有联机型居民身份证阅读器一个。
实现方式
1、新建一个winform控件项目ReadCardControl,添加一个主类ReadIDCard
private bool ReadIDCard()
{
try
{
BLL.API.SynIDCardAPI.IDCardData CardMsg = new BLL.API.SynIDCardAPI.IDCardData();
int nRet, nPort;
byte[] pucIIN = new byte[4];
byte[] pucSN = new byte[8];
nPort = Convert.ToInt32(1001);
if (BLL.API.SynIDCardAPI.Syn_OpenPort(nPort) == 0)
{
if (BLL.API.SynIDCardAPI.Syn_SetMaxRFByte(nPort, 80, 0) == 0)
{
nRet = BLL.API.SynIDCardAPI.Syn_StartFindIDCard(nPort, ref pucIIN[0], 0);
nRet = BLL.API.SynIDCardAPI.Syn_SelectIDCard(nPort, ref pucSN[0], 0);
nRet = BLL.API.SynIDCardAPI.Syn_ReadMsg(nPort, 0, ref CardMsg);
if (nRet == 0)
{
txtAddress.Text = CardMsg.Address;
txtBirthday.Text = CardMsg.Born;
txtCerticate.Text = CardMsg.IDCardNo;
txtIssuingAuthoriy.Text = CardMsg.GrantDept;
txtNames.Text = CardMsg.Name;
txtNation.Text = Xw.Common.Helper.NationHelper.GetNationByNO(CardMsg.Nation);
txtSex.Text = CardMsg.Sex == "1" ? "男" : "女";
picMan.Image = Image.FromFile(CardMsg.PhotoFileName);
//lblMsg.Text = "读卡成功";
return true;
}
else
{
lblMsg.Text = "请放卡: 读取身份证信息错误";
return false;
}
}