甚至可以执行地址(物理,而不是电子邮件)验证?看起来大量的地址格式,即使仅在美国,也会使这个任务变得相当困难.另一方面,对于多个业务需求而言,这似乎是一项必要的任务.
这是一种免费的"开箱即用"方式.不是100%完美,但它应该拒绝公然不存在的地址.
将整个地址提交给Google的地理编码网络服务.此服务会尝试返回您提供该位置的确切坐标,即纬度和经度.
根据我的经验,如果地址无效,您将从服务中获得602的结果.绝对存在误报或漏报的可能性,但与其他一致性检查结合使用可能会有用.
(另一方面,如果城镇存在,雅虎的地理编码网络服务将返回城镇中心的坐标,但地址的其余部分是虚假的.只要你密切注意"精确"字段,它就有用了.结果).
这里有很多好的答案,但大多数人都假设用户想要一个"API"解决方案,他们必须编写代码来连接第三方服务和/或屏幕刮取USPS.这一切都很好,但应该考虑到与实施相关的业务需求和成本,然后权衡所需的好处.
根据业务要求和数据接收到系统的方式,实时地址处理解决方案可能是最好的选择.如果需要实时解决方案,您需要考虑Google Maps/Bing/Yahoo API的许可协议和技术限制.它们通常会限制您每天可以拨打的电话数量.USPS Web工具API是相同的,它们限制了您使用系统的方式/原因,以及此后如何允许您使用这些数据.
与此同时,有一些优秀的服务提供商可以轻松处理静态地址列表.从本质上讲,您向服务提供商提供CSV文件或Excel文件,然后将其清理并将其恢复给您.这是一次性的交易,没有长期承诺或义务 - 通常.
完全披露:我是SmartyStreets的创始人.我们确实解决了美国境内地址的验证问题.我们可以轻松地通过CASS认证列表,我们还提供地址验证Web服务API.我们没有隐藏的费用,合同或任何东西.你使用我们的服务,直到你不再需要它,你可以走开.(与需要合同的手机公司不同.)
USPS在网上有一个地址清洁工,有人将屏幕刮到了穷人的网络服务中.但是,如果您经常这样做,那么申请USPS帐户并调用他们自己的Web服务会更好.
我将向您推荐我的博客文章 - 地址存储课程,我将介绍一些在地址验证过程中使用的技术和算法.我的关键思想是"不要因地址存储而懒惰,以后会让你感到头疼!"
此外,还有另一个StackOverflow问题,询问这个问题.名称国际地理地址应如何存储在关系数据库中.
在我曾经工作过的德国公司开发内部地址验证服务的过程中,我遇到了很多方法来解决这个问题.我会尽力总结下面的调查结果:
免费的开源软件
显然,任何人都会采用的第一种方法是开源方法(如openstreetmap.org),这绝不是一个坏主意.但是,你是否能真正把它用于良好和可靠的使用,在很大程度上取决于你需要依靠多少结果.
地址是一个令人难以置信的变化.验证美国地址并非易事,但可以忍受,但一旦您前往欧洲,特别是英国拥有广泛的邮政编码系统,开源方法将缺乏数据.
Web服务/ API
企业级软件
显然,钱可以完成它.但并非每个企业或开发人员都可以为每个地址查找花费大约0.15美元(对于1,000个API请求来说是150美元) - 这是绝大多数地址验证API已经实现的非常昂贵的商业模式.
我最终整合了什么:streetlayer API
由于我不愿意采用手动验证地址数据的程序化方法,我终于得出结论,我需要一个带有价格标签的API,这不会让我的老板想要解雇我并仍然提供可靠和可靠的国际验证结果.
长话短说,我最终整合了由apilayer构建的API,称为"streetlayer API".通过简单的JSON集成,令人惊讶的准确验证结果和开发人员友好的定价,我很容易相信.此外,每月100个请求是完全免费的.
希望这可以帮助!