我有一个数字支票扫描仪,能够捕获来自支票的MICR线。它将以字符串的形式返回原始格式的MICR行,并使用分隔符分隔帐号、路由号和支票号。但是,每家银行的MICR行的格式都不同,因此没有标准的方法来解析此数据。
我尝试过的一些公司是Inlite Research Inc和Accusoft。Inlite Research的API适用于某些银行,但无法正确读取美国银行的支票。我还在测试来自Accusoft的API。
我想问的是,是否有人知道有API可以准确地解析MICR行中的不同组件。如果我遇到API不能正确处理的新检查,是否有API可以让我添加新的检查格式定义?或者,如果有人知道如何或已经编写了一个例程来解析MICR行。
如果能得到任何帮助,我将不胜感激。谢谢。
发布于 2010-10-07 07:29:23
抱歉,回复晚了。我没有看到这个问题的任何答案,所以我以为没有人回答。
为了回答上面的问题,我在仔细考虑这个问题并与不同的供应商交谈后找到了解决方案。我正在使用的支票扫描器已经能够读取MICR行。问题出在解析MICR行以获取相关信息,例如路由转运号、帐号、支票/序列号和金额(如果有)。在与一些第三方公司交谈并尝试可用的MICR解析器的试用版本后,我得出结论,目前还没有通用的解析器。我仍然面临着不符合On-Us领域的问题。每家银行对此字段的格式各不相同。有时,符号的排列方式也不同。因此,我决定编写自己的解析器。我认为这是最合乎逻辑的方式,因为这些第三方供应商告诉我,他们每个人都推出了自己的解析软件。
我写解析器的方式是我保存了一个MICR线型的表格。每次我遇到新的MICR行格式时,我都会更新这个表。我的解析器将匹配对此表扫描的任何检查,如果找到匹配,它将使用该模式来解析相关信息。
我希望我的经验和我提出的解决方案也能帮助那些遇到同样问题的人。
感谢所有回复的人,祝你好运。
发布于 2016-07-13 07:05:18
根据我的研究,这也应该是正确的答案。MICR模式多种多样,如果没有一组正则表达式匹配模式来提取相关信息,就无法可靠地进行解析。如果能看到您想出的具有如下组名的正则表达式模式的集合,那将是非常好的:
<(?<checkNumber>[0-9\s]*)<[0-9\s]*:[0-9\s]*:.*发布于 2016-07-13 07:23:36
MICR的基本模式:
xxxxxxxxxxx /rrrrrrrrr/ ooooooooooo
其中'x‘是AuxOnUs,'r’是路由号,'o‘是OnUs,'a’是数量,'b‘和'/’是特殊的MICR符号。
最小的MICR代码行就是:
/rrrrrrrrr/ ooooooooo
AuxOnUs通常只用于业务检查,而且它几乎总是意味着有一个序列号。
路由编号始终是一致的,它是MICR中唯一通用的部分。
Amount通常不会在MICR中编码,但有时会编码。
OnUs是最棘手的部分。它通常由支票序列号和账户组成,但每家银行的处理方式都不同。序列号通常是4位数字,但也可能是5位或更多。如果有AuxOnUs字段,您可以非常确定OnUs只是帐号。
OnUs可以包含空格和破折号。如果他们有一个一致的划分方式就好了,但我已经看到了太多的变化,我认为最好只把它作为一个"OnUs“字段,而不是将它分成序列和帐户,除非你是支付银行,在这种情况下,你应该知道你自己的支票格式。
https://stackoverflow.com/questions/3788819
复制相似问题