场景:客户购物并创建电子商务订单。有一个customer db表和一个发货表。客户可以有更多的送货地址。如果客户登录进行另一个订单,则根据客户id从发货表中提取发货地址。
发货被装箱,商店管理员订购了发货标签,地址被发送以进行“验证”。验证发货地址后,将返回新版本的发货地址。这里有4种可能性:
1)验证地址没有任何变化,除了字母可能被更改为大写字母。
2)验证后的地址稍有改动,不影响原版本。也许Ave被添加到街道名称字段中,或者5位邮政编码被更新为9位版本。
3)原始提交的发货地址有一个小错误-但验证能够纠正它。例如,邮政编码有一个错误的数字。
4)原提交地址存在重大错误,无法通过审核解决。要么由管理员解决并重新提交,要么必须与客户联系。
所以问题是:
A)我们是否总是使用(新的)验证地址更新发货表?
B)或者我们是否进行某种检查,并将原始地址和已验证的地址进行比较,以查看是否有更改,然后仅更新地址是否已更改?
C)或者我们是否应该更新地址并保留原始地址的备份?
选择A似乎是最简单的,但我很好奇人们是如何处理这个问题的。请注意,就其验证的严格性而言,这可能与USPS postal的发货最相关。
======编辑
当客户输入地址时验证发货地址显然是最优的,但电子商务商家可以从商家无法控制的不同“渠道”获得订单。因此,仍然需要在创建发货标签时进行验证。
发布于 2015-03-04 17:04:18
D)在入口点与客户进行交互。
在创建eCommerce订单时-他们是否在此处输入地址?这就是你应该验证细节的地方。这就是你可以要求更多信息和清晰度的地方。
例如,如果您事后验证,则可以应用简单的更正(或随时间变化),但如果有重大更改或客户没有输入他们的公寓信息,则无法在以后猜测,并且创建它可能是一项成本高昂且耗时的任务(回电客户等)。
有几种方法可以做到这一点,我不确定你现在使用的是什么。如果您使用的是第三方解决方案(比如我公司提供的https://www.edq.com/address-verification),那么您可以使用它们提供的服务来提供所需的交互和提示。这样的解决方案的优点在于,它可以加快地址的捕获速度并简化检出过程,同时还可以确保在捕获时对地址进行验证和更正。
如果您执行上述操作,则只需存储一个正确的客户接受的地址。如果他们第一次输入正确,那么它就会直接通过一个可爱的用户体验,如果有问题,那么小的问题会通过额外的交互(可能附加Zip +4 )来修复,或者他们会得到提示和指导来更正他们的地址。
发布于 2015-03-05 06:35:40
USPS地址验证仅在确定不会实际更改预期地址时才会更正地址。当地址验证不明确时,地址验证服务将返回原始地址(或错误),并通常包括一条消息,如"ZIP和城市匹配,但街道地址无效“。
因此,您应该能够使用选项A或B。也就是说,不幸的是,大多数运营商API(包括地址验证)并不是100%可靠的,因此使用选项C作为备份可能是合理的。
如果您需要访问易于使用的地址验证界面,我的公司Shippo提供了一个易于使用的地址验证REST API。
发布于 2018-01-09 19:24:14
你可以尝试皮特尼鲍斯“IdentifyAddress”Api在- https://identify.pitneybowes.com/
该服务分析输入地址并将其与世界各地的已知地址数据库进行比较,以输出标准化的详细信息。它纠正地址,添加丢失的邮政信息,并使用适用的邮政机构首选的格式对其进行格式化。我还使用了额外的地址数据库,因此它可以提供增强的详细信息,包括地址质量、地址类型、音译(例如从中文汉字到拉丁字符)以及地址是否验证为参考信息的房屋/门牌、街道或城市级别。
你会在这个网站上找到很多示例和sdk,我发现它非常容易集成。下面是一个小示例- JSON请求-
{
"options": {
"OutputCasing": "M"
},
"Input": {
"Row": [
{
"AddressLine1": "13 milk st",
"AddressLine2": "",
"City": "boston",
"Country": "us",
"StateProvince": "ma",
"PostalCode": "",
"user_fields":[
{
"name": "User1",
"value": "Value1"
}
]
}
]
}
}
}JSON响应
{"Output": [{
"Status": "F",
"Status.Code": "UnableToDPVConfirm",
"Status.Description": "Address Not Deliverable",
"AddressLine1": "13 Milk St",
"City": "Boston",
"StateProvince": "MA",
"PostalCode": "02109-5402",
"Country": "United States of America",
"BlockAddress": "13 Milk St Boston MA 02109-5402 United States of America",
"PostalCode.Base": "02109",
"PostalCode.AddOn": "5402",
"user_fields": [ {
"name": "User1",
"value": "Value1"
}]
}]}https://stackoverflow.com/questions/28845354
复制相似问题