以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [灌水]身份证地区编码Api (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50612) |
-- 作者:2 -- 发布时间:2014/5/9 18:00:00 -- [灌水]身份证地区编码Api 在网上找的地区编码不是很全,好多旧编码找不到,用聚合的Api.纯粹在网上查的话“身份证地区编码”都可以不要了。 datacolchanged Select Case e.DataCol.name Case "身份证号" \'如果更改的是身份证号码列 If e.DataRow.IsNull("身份证号") Then \'身份证号码是否为空 e.DataRow("籍贯") = Nothing e.DataRow("出生日期") = Nothing \'如果为空,则清除出生日期 e.DataRow("性别") = Nothing Else \'否则从身份证号码列中提取出生日期和籍贯 Dim bm As String =e.DataRow("身份证号").trim().SubString(0,6) Dim dr As DataRow = DataTables("身份证地区编码").Find("编码 = \'" & bm & "\'") If dr IsNot Nothing Then e.DataRow("籍贯") = dr("籍贯") Else \'去网上查 Dim strXML As String = Functions.Execute("getXML","http://apis.juhe.cn/idcard/index?key=你申请的APPKEY&dtype=xml&cardno=" & e.DataRow("身份证号").trim())\'聚合身份证查询API接口,飞老师的getXML函数 MessageBox.Show(strXML) Dim xmlDoc As New System.XML.XmlDocument \' xmlDoc.LoadXml(strXML) Dim reason As System.XML.XmlNodeList = xmlDoc.GetElementsByTagName("reason") If reason(0).InnerText="成功的返回" Then \'如果查到 Dim area As System.XML.XmlNodeList = xmlDoc.GetElementsByTagName("area") e.DataRow("籍贯") = area(0).InnerText Else MessageBox.show(reason(0).InnerText) End If End If e.DataRow("出生日期") = ReadBirthday(e.DataRow("身份证号")) e.DataRow("性别") = ReadSex(e.DataRow("身份证号")) End If End Select |
-- 作者:Bin -- 发布时间:2014/5/9 18:01:00 -- 谢谢分享, 不过效率是个问题. |
-- 作者:2 -- 发布时间:2014/5/9 18:03:00 -- 我的网络很快啊,微秒级 |
-- 作者:有点甜 -- 发布时间:2014/5/9 18:09:00 -- 好事......不过,要申请appkey的话,比较麻烦。 |
-- 作者:程兴刚 -- 发布时间:2014/5/9 18:28:00 -- 聚合身份证API是付费查询的,这样的话费用不低,申请Key倒是不麻烦,立即申请立即生效,自动给key。 |