CN110909212A - 一种银行标识代码的匹配方法和设备 - Google Patents
一种银行标识代码的匹配方法和设备 Download PDFInfo
- Publication number
- CN110909212A CN110909212A CN201910964504.8A CN201910964504A CN110909212A CN 110909212 A CN110909212 A CN 110909212A CN 201910964504 A CN201910964504 A CN 201910964504A CN 110909212 A CN110909212 A CN 110909212A
- Authority
- CN
- China
- Prior art keywords
- bank
- bank card
- card number
- array
- identification code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 7
- 238000003491 array Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008676 import Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 2
- 241001122767 Theaceae Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请实施例公开了一种银行标识代码的匹配方法和设备,该方法包括:设备获取第一银行卡号,所述第一银行卡号为第一数组中存储的多个银行卡号中的任意一个;所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较;在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,所述设备确定所述第一银行卡号所属的银行为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行。采用本申请实施例能够提高银行标识代码的匹配准确性和匹配效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种银行标识代码的匹配方法和设备。
背景技术
在一些实际应用中,需要根据银行卡号匹配出其归属的银行及其银行卡的类型,现有技术中,可以通过关系型数据库甲骨文oracle进行匹配,例如假设A表包括一个完整的银行卡账号,B表中包括所有银行的前几位银行卡号及其对应归属的银行名称和银行卡类型,通过A表左连接B表,关联条件为A的银行卡账号模糊匹配B表的银行卡前几位即可。
但是随着业界数据量越来越大,A表中包括的银行卡号数量剧增,有时高达几十亿甚至几百亿个,如果通过关系型数据库oracle的模糊匹配条件来逐一匹配,则花费时间较长,匹配效率较低。所以对于处理大数据量的银行卡匹配,需要用到蜂巢hive数据库,但是hive存储的是非关系型数据。当A表跟B表进行左连接时并不支持模糊匹配,它仅支持等值匹配。例如A表左连接B表,关联条件只能是截取A的银行卡号的前几位跟B表的银行卡进行等值连接。但是B表中银行卡的前几位不是固定的,例如6226代表的是第一银行,622代表的是第二银行。当A表中有一个银行卡是6226****2121,要判断它归属于哪家银行,通过hive的等值匹配无法实现。
发明内容
本申请实施例提供了一种银行标识代码的匹配方法和设备,能够通过模糊匹配的方式匹配出银行卡号中的银行标识代码,提高了匹配的准确性和效率。
第一方面,本申请实施例提供了一种银行标识代码的匹配方法,该方法包括:
设备获取第一银行卡号,所述第一银行卡号为第一数组中存储的多个银行卡号中的任意一个,所述第一数组为用于存储用户的银行卡号的数组;
所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较,所述第二数组为用于存储银行标识代码的数组,所述第二数组中的银行标识代码的存储方式为数组的下标越小存储的银行标识代码的位数越多,所述预设规则为所述第一银行卡号按照所述第二数组的下标从小到大的顺序逐一与所述第二数组中的银行标识代码进行比较;
在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,所述设备确定所述第一银行卡号所属的银行为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行。
本申请实施例中,基于上述第二数组中数组的下标越小存储的银行标识代码的位数越多的存储方式,按照所述第二数组的下标从小到大的顺序将待匹配的银行卡号逐一与所述第二数组中的银行标识代码进行比较,一旦出现待匹配的银行卡号的前几位数字与第二数组中的某一个标识代码匹配成功的情况,则终止对该待匹配的银行卡号的匹配操作,确定该待匹配的银行卡号所属的银行为匹配成功的标识代码对应的银行,通过本申请实施例提高了银行标识代码匹配的准确性和匹配的效率。
结合第一方面,在第一方面的第一种可能的实施方式中,所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之后,还包括:
在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,所述设备确定所述第一银行卡号所属的银行卡类型为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行卡类型。
在本申请实施例,还可以通过准确快速匹配到银行卡号的银行标识代码以确定该银行卡号所属的银行卡类型。
结合第一方面,在第一方面的第二种可能的实施方式中,所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,还包括:
所述设备获取第二银行卡号,所述第二银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第二银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第二银行卡号所属银行的银行卡号。
在申请实施例中,设备可以并行处理多个银行卡号的银行标识代码的匹配操作,大大提高了匹配的效率。
结合第一方面的第一种可能的实施方式,在第一方面的第三种可能的实施方式中,所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,还包括:
所述设备获取第三银行卡号,所述第三银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第三银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第三银行卡号所属银行和所属银行卡类型的银行卡号。
在本申请实施例中,设备可以并行处理多个银行卡号的银行标识代码的匹配操作以准确快速地确定该多个银行卡号所属的银行和所属的银行卡类型。
第二方面,本申请实施例提供了一种银行标识代码的匹配设备,该设备包括:
获取单元,用于获取第一银行卡号,所述第一银行卡号为第一数组中存储的多个银行卡号中的任意一个,所述第一数组为用于存储用户的银行卡号的数组;
比较单元,用于按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较,所述第二数组为用于存储银行标识代码的数组,所述第二数组中的银行标识代码的存储方式为数组的下标越小存储的银行标识代码的位数越多,所述预设规则为所述第一银行卡号按照所述第二数组的下标从小到大的顺序逐一与所述第二数组中的银行标识代码进行比较;
确定单元,用于在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,确定所述第一银行卡号所属的银行为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行。
本申请实施例中,基于上述第二数组中数组的下标越小存储的银行标识代码的位数越多的存储方式,按照所述第二数组的下标从小到大的顺序将待匹配的银行卡号逐一与所述第二数组中的银行标识代码进行比较,一旦出现待匹配的银行卡号的前几位数字与第二数组中的某一个标识代码匹配成功的情况,则终止对该待匹配的银行卡号的匹配操作,确定该待匹配的银行卡号所属的银行为匹配成功的标识代码对应的银行,通过本申请实施例提高了银行标识代码匹配的准确性和匹配的效率。
结合第二方面,在第二方面的第一种可能的实施方式中,所述确定单元,还用于在所述比较单元按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之后,在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,确定所述第一银行卡号所属的银行卡类型为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行卡类型。
在本申请实施例,还可以通过准确快速匹配到银行卡号的银行标识代码以确定该银行卡号所属的银行卡类型。
结合第二方面,在第二方面的第二种可能的实施方式中,所述获取单元,还用于在所述比较单元按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,获取第二银行卡号,所述第二银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第二银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第二银行卡号所属银行的银行卡号。
在申请实施例中,设备可以并行处理多个银行卡号的银行标识代码的匹配操作,大大提高了匹配的效率。
结合第二方面的第一种可能的实施方式,在第二方面的第三种可能的实施方式中,所述获取单元,还用于在所述比较单元按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,获取第三银行卡号,所述第三银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第三银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第三银行卡号所属银行和所属银行卡类型的银行卡号。
在本申请实施例中,设备可以并行处理多个银行卡号的银行标识代码的匹配操作以准确快速地确定该多个银行卡号所属的银行和所属的银行卡类型。
第三方面,本申请实施例提供了一种设备,包括一个或多个处理器、存储器以及通信模块;所述存储器以及所述通信模块与所述一个或多个处理器耦合,所述存储器存储有计算机程序,所述处理器被配置用于调用所述计算机程序执行上述第一方面及其可能的实施方式中任一项所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第一方面及其可能的实施方式中任一项所述的方法。
综上所述,本申请实施例基于上述第二数组中数组的下标越小存储的银行标识代码的位数越多的存储方式,按照所述第二数组的下标从小到大的顺序将待匹配的银行卡号逐一与所述第二数组中的银行标识代码进行比较,一旦出现待匹配的银行卡号的前几位数字与第二数组中的某一个标识代码匹配成功的情况,则终止对该待匹配的银行卡号的匹配操作,确定该待匹配的银行卡号所属的银行为匹配成功的标识代码对应的银行,通过本申请实施例提高了银行标识代码匹配的准确性和匹配的效率。
附图说明
下面将对本申请实施例中所需要使用的附图作介绍。
图1为本申请实施例提供的一种系统架构示意图;
图2为本申请实施例提供的一种银行标识代码的匹配方法的流程示意图;
图3为本申请实施例提供的一种设备的逻辑结构示意图;
图4为本申请实施例提供的一种设备的硬件结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
下面先对本方案涉及的系统构架进行描述。如图1所示,系统构架可以包括一个或多个服务器100(多个服务器可以构成服务器集群)以及多个终端110(或设备),其中:
服务器100可以包括但不限于后台服务器、组件服务器、信息处理服务器等,服务器100可以通过互联网与多个终端110进行通信。服务器100与终端110之间可以实现数据信息的交互以用于完成保险购买等交易。服务器100上需要运行有相应的服务器端程序来提供相应的处理服务,如信息数据库服务,数据计算、决策执行等等。
终端110可以安装并运行相关的应用(或APP)。应用是指与服务器100相对应,为客户提供本地服务的程序。这里,该本地服务可包括但不限于:向服务器100发送信息和接收服务器100发送的信息等等。本方案实施例中的终端110可以包括但不限于任何一种基于智能操作系统的手持式电子产品,其可与用户通过键盘、虚拟键盘、触摸板、触摸屏以及声控设备等输入设备来进行人机交互,诸如智能手机、平板电脑、个人电脑等。其中,智能操作系统包括但不限于任何通过向移动设备提供各种移动应用来丰富设备功能的操作系统,诸如安卓(Android)、iOSTM、Windows Phone等。
需要说明的是,本方案提供的系统构架不限于图1所示系统架构。
在正式介绍本申请实施例提供的银行标识代码的匹配方法之前,下面先介绍用户的信息和银行的信息的获取。
在具体实施例中,设备可以先获取用户的交易信息表,然后根据该交易信息表提取用户的信息,可以从交易信息表中提取的用户信息可以包括用户姓名、用户证件类型、用户证件号、用户的银行卡号和用户的手机号等等。该交易信息表可以包括一个或多个信息表,每一交易信息表都可以对应一个用户;该交易信息表可以是用户在交易的过程中产生的包括用户信息的文件,该文件可以是存储在上述设备的本地数据库中,或者是存储在某个系统的数据库中,上述设备可以被授权从该某个系统中获取这些交易信息表。具体的,上述设备可以是图1所示的服务器100,也可以是其它的设备,该其它的设备可以与上述设备通信以获取需要的数据信息。
为了便于理解,下面举例说明。
例如,用户想购买某个保险公司的保险,那么该用户可以通过用户终端(例如图1中所示的终端110)与该保险公司的后台设备(例如例如图1中所示的服务器100)进行数据交互以完成该保险购买的交易,在这个交易过程(例如支付保费的过程)中,用户需要通过用户终端向设备发送提供其姓名、证明其身份的信息(例如身份证、港澳通行证及对应证件类型的证件号码)、手机号以及支付保费的银行卡号等等信息,设备接收到这些信息后将这些信息写入该用户的交易信息表中,然后将该交易信息表保存到数据库中。而在本方案中,为了梳理购买该保险公司保险的用户的银行卡的相关信息,例如为了梳理用户曾使用过哪几个银行卡购买过该保险公司的保险,以及理清这些银行卡的归属银行以及银行卡类型,需要通过上述的交易信息表来获取用户的相关信息来帮助完成梳理。
在其中一种可能的实施方式中,当用户在支付交易费用时使用的是支付宝等类似的快捷支付方式来支付,那么交易信息表中包含的用户信息只有用户的姓名和银行卡号,而没有包含用户的证件号以及证件类型,在这种情况下,只知道用户的姓名而没有证件号及其证件类型,没办法唯一确定用户的身份,梳理出来的信息可能出错。因此,如果是购买保险的交易,可以通过用户的交易信息表中包括的保单号、赔案号和/或批单号查找到对应的保单表、赔案表和/或批单表,然后根据查找到的这些信息表获取到用户的证件号和证件类型。
在其中一种可能的实施方式中,如果上述两种方式都不能完全获取到用户的证件信息,那么设备可以通过交易信息表中的手机号关联查找用户的保单验真表,通过获取该保单验证表中用户的证件号和证件类型回补用户的证件信息。
上述用户的保单表、赔案表、批单表和保单验真表可以是存储在设备的本地数据库中,或者是存储在某个系统的数据库中,上述设备可以被授权从该某个系统中获取这些信息表。
上述设备获取到用户的信息之后,以列表的形式将用户的信息存储起来。例如可以参见表1,在表1中,从左到右四列每一列分别为姓名、证件类型、证件号和银行卡号,从上到下每一行包括一个用户的信息。当然,表1中只是示例性地列出部分用户的信息,在具体实施例中,可以比表1中的信息更多或者更少,具体可以根据实际情况决定。此外,表中的数据只是一个示例,不是真实的数据。
表1
姓名 | 证件类型 | 证件号 | 银行卡号 |
张三 | 身份证 | 450881188609134581 | 6227608174508194567 |
李四 | 身份证 | 516098174508194567 | 6221888117900627890 |
王五 | 身份证 | 340992199010291234 | 6222108174508194567 |
赵四 | 身份证 | 440881179006278907 | 4367421886091345818 |
孙小二 | 身份证 | 450881198609134181 | 4581232199010291234 |
吴大 | 身份证 | 126098174508194567 | 6221551179006278907 |
此外,上述设备获取各个银行的信息,该银行的信息包括银行的名称、银行对应的银行卡类型和银行卡类型对应的银行标识代码,并按照预设规则排序存储。
在具体实施例中,每个银行可以对应包括多个银行卡类型,每种银行卡类型可以唯一对应一个银行标识代码;且不同银行的银行标识代码的位数可能不同,例如第一银行的一个银行卡类型的银行标识代码为6226,而第二银行的一个银行卡类型的银行标识代码为622。上述各个银行包括国内银行和国外银行。银行标识代码为银行卡号开头的几位数字,用于标识发行者即银行。不同的银行,其对应的银行标识码的位数可以不同也可以相同。
在获取上述各个银行的信息之后,根据预设规则对银行标识代码排序,该预设规则为银行标识代码的位数越多则排在越前面,如果位数相同则可以不分先后排序或者可以是越大的排在越前面。
为了便于理解,请参考表2。表2示例性地给出了部分银行标识代码的排序信息,在表2中可以看到银行标识代码的位数越多排在越前面,位数越少排在越后面;此外,还可以看到不同的银行可以对应包括不同的银行卡类型,例如第三银行可以包括第三银行卡类型和第四银行卡类型,且同一个银行的不同银行卡类型对应的银行标识代码可以不同。
表2
基于图1给出的本方案提供的系统架构以及上述对用户的信息和银行的信息的获取的描述,下面提供一种银行标识代码的匹配方法,方法的交互流程图如图2所示。该方法可以包括以下步骤:
S201、设备获取第一银行卡号,所述第一银行卡号为第一数组中存储的多个银行卡号中的任意一个,所述第一数组为用于存储用户的银行卡号的数组。
在具体实施例中,上述设备将上述获取的用户信息和各个银行的信息导入用户自定义函数UDF中,并分别以数组的形式存储。该用户自定义的函数用于根据上述的银行信息匹配出上述用户的银行卡号的归属银行和银行卡类型。
为了便于理解,举例说明。例如,假设上述获取的用户信息如表1所示,上述获取的银行信息如表2所述,则上述设备将表1的数据导入到上述用户自定义的函数中并定义为数组A,同时上述设备将表2的数据导入到上述用户自定义的函数中并定义为数组B。需要说明的是,将表2存储在数组B中时,其银行标识代码的排序的顺序和表2的顺序一样,即数组B中存储银行标识代码的列的元素的下标越小存储的银行标识代码的位数越多。
为了便于理解数组A和数组B,下面举例说明。
对于数组A,可以参见表3。
表3
- | [x][0] | [x][1] | [x][2] | [x][3] |
[0][x] | 1 | 1 | 450881188609134581 | 6227608174508194567 |
[1][x] | 2 | 1 | 516098174508194567 | 6221888117900627890 |
[2][x] | 3 | 1 | 340992199010291234 | 6222108174508194567 |
[3][x] | 4 | 1 | 440881179006278907 | 4367421886091345818 |
[4][x] | 5 | 1 | 450881198609134181 | 4581232199010291234 |
[5][x] | 6 | 1 | 126098174508194567 | 6221551179006278907 |
在表3中可以看到数组A可以是一个二维数组,每一行表示一个用户的信息,列则表示对应用户的具体信息。表3可以和表1对比着看,数组A中的[x][0]列表示用户的姓名,数组A中的[x][1]列表示用户的证件类型,数组A中的[x][2]列表示用户的证件号,数组A中的[x][3]列表示用户的银行卡号。[x][0]列表示的用户姓名可以用数字做为代号表示,例如1表示张三、2表示李四等等。[x][1]列表示的用户的证件类型也可以用数字做为代号表示,例如用1来表示身份证这一证件类型,然后,证件号和银行卡号不变,还是用户本来的号码。当然,一个用户可以有多个银行卡号,当同一个用户有多个银行卡号时,可以在数组中分配多行来分别存储该用户对应的信息,但其用户姓名的代号不变。
对于数组B,可以参见表4。在表4中可以看到数组B可以是一个二维数组,每一行表示一个银行卡类型的信息,列则表示对应银行卡类型的具体信息。表4可以和表2对比着看,数组B中的[x][0]列表示银行的名称,数组B中的[x][1]列表示银行卡类型,数组B中的[x][2]列表示银行标识代码。[x][0]列表示的银行名称可以用数字做为代号表示,例如1表示第一银行、2表示第二银行等等。[x][1]列表示的银行卡类型也可以用数字做为表示,例如用1来表示第一银行卡类型、用2来表示第二银行卡类型等等,然后,银行标识代码不变,还是银行本来的号码。当然,一个银行可以包括多个银行卡类型,当同一个银行有多个银行卡类型时,可以在数组中分配多行来分别存储该银行卡类型对应的信息,但其银行的名称的代号不变,例如可以参见[2][x]和[3][x]行。此外,观察[x][2]列可以发现,银行标识代码的位数越长,排在越前面,即银行标识代码的位数越长,对应的数组的下标越小。
表4
- | [x][0] | [x][1] | [x][2] |
[0][x] | 1 | 1 | 4509134581 |
[1][x] | 2 | 2 | 516194567 |
[2][x] | 3 | 3 | 341234 |
[3][x] | 3 | 4 | 351236 |
[4][x] | 4 | 5 | 447897 |
[5][x] | 5 | 6 | 62276 |
[6][x] | 6 | 7 | 2667 |
当需要进行银行卡号的银行标识代码匹配时,设备可以从存储了用户的银行卡号的数组例如数组A中获取用户的银行卡号以进行银行标识代码匹配的操作。需要说明的是,设备可以每次获取一个银行卡号进行银行标识代码匹配的操作,等该一个银行卡号匹配结束后,再重新获取另外一个银行卡号重复银行标识代码匹配的操作,直到所有的银行卡号的银行标识代码全部匹配完成。
S202、所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较,所述第二数组为用于存储银行标识代码的数组。
具体的,所述第二数组中的银行标识代码的存储方式为数组的下标越小存储的银行标识代码的位数越多,所述预设规则为所述第一银行卡号按照所述第二数组的下标从小到大的顺序逐一与所述第二数组中的银行标识代码进行比较。
在具体实施例中,上述设备从存储了用户的银行卡号的数组中获取到银行卡号后,将获取的银行卡号按照存储了银行标识代码的数组的银行标识代码的数组下标从小到大的顺序逐一与该数组中的银行标识代码进行比较。
为了便于理解,例如可以参见表3和表4。假设上述设备从表3的数组A中获取的银行卡号为第一行的银行卡号6227608174508194567,然后上述设备将该银行卡号按照表4中数组B的银行标识代码的数组下标从小到大的顺序逐一与这些银行标识代码比较。银行卡号6227608174508194567按照4509134581、516194567、341234、351236、447897和62276的顺序逐一与这些银行标识代码比较。
S203、在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,所述设备确定所述第一银行卡号所属的银行为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行。
上述第一银行卡号开头预设位数不固定为具体的几位数,具体根据银行标识码的位数来决定,该银行卡号所属的银行对应的银行标识代码为几位数,那么上述第一银行卡号开头预设位数与该几位数相同。
具体的,为了便于理解,举例说明。还是参见表3和表4,在上述步骤202的例子中银行卡号6227608174508194567按照4509134581、516194567、341234、351236、447897和62276的顺序逐一与这些银行标识代码比较,在银行卡号6227608174508194567与银行标识代码62276比较的时候,银行标识代码62276与银行卡号6227608174508194567的开头5位数的数字相等,则表明银行卡号6227608174508194567匹配到的银行标识代码即为62272,在表4中,银行标识代码62272对应的银行为代号为5的第五银行,因此可以确定银行卡号6227608174508194567所属的银行为第五银行。到此,银行卡号6227608174508194567的匹配操作结束。
本申请实施例中,基于上述第二数组中数组的下标越小存储的银行标识代码的位数越多的存储方式,按照所述第二数组的下标从小到大的顺序将待匹配的银行卡号逐一与所述第二数组中的银行标识代码进行比较,一旦出现待匹配的银行卡号的前几位数字与第二数组中的某一个标识代码匹配成功的情况,则终止对该待匹配的银行卡号的匹配操作,确定该待匹配的银行卡号所属的银行为匹配成功的标识代码对应的银行,通过本申请实施例提高了银行标识代码匹配的准确性和匹配的效率。
在其中一种可能的实施方式中,所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之后,还包括:在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,所述设备确定所述第一银行卡号所属的银行卡类型为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行卡类型。
上述第一银行卡号开头预设位数不固定为具体的几位数,具体根据银行标识码的位数来决定,该银行卡号所属的银行卡类型对应的银行标识代码为几位数那么上述第一银行卡号开头预设位数与该几位数相同。
具体的,为了便于理解,举例说明。还是参见表3和表4,在上述步骤203银行卡号6227608174508194567匹配到的银行标识代码为62272,在表4中,银行标识代码为62272对应的银行卡类型为代号为6的第六银行卡类型,因此可以确定银行卡号6227608174508194567所属的银行卡类型为第六银行卡类型。
在本申请实施例,还可以通过准确快速匹配到银行卡号的银行标识代码以确定该银行卡号所属的银行卡类型。
在其中一种可能的实施方式中,所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,还包括:所述设备获取第二银行卡号,所述第二银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第二银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第二银行卡号所属银行的银行卡号。
在具体的实施例中,上述设备可以同时从存储了用户的银行卡号的数组中获取多个银行卡号,并行对该多个银行卡号进行银行标识代码的匹配操作以确定该多个银行卡号各自所属的银行,每一个银行卡号与银行标识代码匹配的规则和上述图2中描述的规则相同,此处不再赘述,这样可以极大地提高银行标识代码的匹配效率。
在其中一种可能的实施方式中,所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,还包括:所述设备获取第三银行卡号,所述第三银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第三银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第三银行卡号所属银行和所属银行卡类型的银行卡号。
在具体的实施例中,上述设备可以同时从存储了用户的银行卡号的数组中获取多个银行卡号,并行对该多个银行卡号进行银行标识代码的匹配操作以确定该多个银行卡号各自所属的银行和各自所属的银行卡类型,匹配的规则和上述图2中描述的规则相同,这样可以极大地提高银行标识代码的匹配效率。
综上所述,本申请实施例基于上述第二数组中数组的下标越小存储的银行标识代码的位数越多的存储方式,按照所述第二数组的下标从小到大的顺序将待匹配的银行卡号逐一与所述第二数组中的银行标识代码进行比较,一旦出现待匹配的银行卡号的前几位数字与第二数组中的某一个标识代码匹配成功的情况,则终止对该待匹配的银行卡号的匹配操作,确定该待匹配的银行卡号所属的银行为匹配成功的标识代码对应的银行,通过本申请实施例提高了银行标识代码匹配的准确性和匹配的效率。
为了便于更好地实施本申请的上述方案,本申请实施例还对应提供了一种设备300,该设备300可以是图2中所述的设备。下面结合附图3来进行详细说明:
图3所示为设备300的结构示意图,所述设备300包括:获取单元301,比较单元302和确定单元303,其中:
获取单元301,用于获取第一银行卡号,所述第一银行卡号为第一数组中存储的多个银行卡号中的任意一个,所述第一数组为用于存储用户的银行卡号的数组;
比较单元302,用于按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较,所述第二数组为用于存储银行标识代码的数组,所述第二数组中的银行标识代码的存储方式为数组的下标越小存储的银行标识代码的位数越多,所述预设规则为所述第一银行卡号按照所述第二数组的下标从小到大的顺序逐一与所述第二数组中的银行标识代码进行比较;
确定单元303,用于在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,确定所述第一银行卡号所属的银行为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行。
在其中一种可能的实施方式中,确定单元303,还用于在比较单元302按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之后,在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,确定所述第一银行卡号所属的银行卡类型为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行卡类型。
在其中一种可能的实施方式中,获取单元301,还用于在比较单元302按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,获取第二银行卡号,所述第二银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第二银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第二银行卡号所属银行的银行卡号。
在其中一种可能的实施方式中,获取单元301,还用于在比较单元302按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,获取第三银行卡号,所述第三银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第三银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第三银行卡号所属银行和所属银行卡类型的银行卡号。
图3所示的设备300中各个单元的具体实现及有益效果可以对应参照图2所示的方法实施例及其可能的实施方式中的相应描述,此处不再赘述。
请参见图4,图4是本申请实施例提供的一种设备400,该设备400可以是图2中所述的设备,该设备400包括处理器401、存储器402和通信接口403,所述处理器401、存储器402和通信接口403通过总线404相互连接。
存储器402包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器402用于相关指令及数据的存储。通信接口403用于接收和发送数据。
处理器401可以是一个或多个中央处理器(central processing unit,CPU),在处理器401是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该设备400中的处理器401用于读取所述存储器402中存储的程序代码,执行以下操作:
获取第一银行卡号,所述第一银行卡号为第一数组中存储的多个银行卡号中的任意一个,所述第一数组为用于存储用户的银行卡号的数组;
按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较,所述第二数组为用于存储银行标识代码的数组,所述第二数组中的银行标识代码的存储方式为数组的下标越小存储的银行标识代码的位数越多,所述预设规则为所述第一银行卡号按照所述第二数组的下标从小到大的顺序逐一与所述第二数组中的银行标识代码进行比较;
在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,确定所述第一银行卡号所属的银行为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行。
在其中一种可能的实施方式中,处理器401按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之后,还包括:
在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,确定所述第一银行卡号所属的银行卡类型为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行卡类型。
在其中一种可能的实施方式中,处理器401按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,还包括:
获取第二银行卡号,所述第二银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第二银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第二银行卡号所属银行的银行卡号。
在其中一种可能的实施方式中,处理器401按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,还包括:
获取第三银行卡号,所述第三银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第三银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第三银行卡号所属银行和所属银行卡类型的银行卡号。
需要说明的是,上述各个操作的实现还可以对应参照图2所示的方法实施例及其可能实现的方式中的相应描述,此处不再赘述。
本发明实施例还提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,图2所示的方法及其可能的是实现方式的流程得以实现。
综上所述,本申请实施例基于上述第二数组中数组的下标越小存储的银行标识代码的位数越多的存储方式,按照所述第二数组的下标从小到大的顺序将待匹配的银行卡号逐一与所述第二数组中的银行标识代码进行比较,一旦出现待匹配的银行卡号的前几位数字与第二数组中的某一个标识代码匹配成功的情况,则终止对该待匹配的银行卡号的匹配操作,确定该待匹配的银行卡号所属的银行为匹配成功的标识代码对应的银行,通过本申请实施例提高了银行标识代码匹配的准确性和匹配的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种银行标识代码的匹配方法,其特征在于,包括:
设备获取第一银行卡号,所述第一银行卡号为第一数组中存储的多个银行卡号中的任意一个,所述第一数组为用于存储用户的银行卡号的数组;
所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较,所述第二数组为用于存储银行标识代码的数组,所述第二数组中的银行标识代码的存储方式为数组的下标越小存储的银行标识代码的位数越多,所述预设规则为所述第一银行卡号按照所述第二数组的下标从小到大的顺序逐一与所述第二数组中的银行标识代码进行比较;
在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,所述设备确定所述第一银行卡号所属的银行为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行。
2.根据权利要求1所述方法,其特征在于,所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之后,还包括:
在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,所述设备确定所述第一银行卡号所属的银行卡类型为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行卡类型。
3.根据权利要求1所述方法,其特征在于,所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,还包括:
所述设备获取第二银行卡号,所述第二银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第二银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第二银行卡号所属银行的银行卡号。
4.根据权利要求2所述方法,其特征在于,所述设备按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,还包括:
所述设备获取第三银行卡号,所述第三银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第三银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第三银行卡号所属银行和所属银行卡类型的银行卡号。
5.一种银行标识代码的匹配设备,其特征在于,包括:
获取单元,用于获取第一银行卡号,所述第一银行卡号为第一数组中存储的多个银行卡号中的任意一个,所述第一数组为用于存储用户的银行卡号的数组;
比较单元,用于按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较,所述第二数组为用于存储银行标识代码的数组,所述第二数组中的银行标识代码的存储方式为数组的下标越小存储的银行标识代码的位数越多,所述预设规则为所述第一银行卡号按照所述第二数组的下标从小到大的顺序逐一与所述第二数组中的银行标识代码进行比较;
确定单元,用于在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,确定所述第一银行卡号所属的银行为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行。
6.根据权利要求5所述设备,其特征在于,所述确定单元,还用于在所述比较单元按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之后,在第一次出现所述第二数组中的银行标识代码与所述第一银行卡号开头预设位数的数字相等的情况下,确定所述第一银行卡号所属的银行卡类型为与所述第一银行卡号开头预设位数的数字相等的银行标识代码对应的银行卡类型。
7.根据权利要求5所述设备,其特征在于,所述获取单元,还用于在所述比较单元按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,获取第二银行卡号,所述第二银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第二银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第二银行卡号所属银行的银行卡号。
8.根据权利要求6所述设备,其特征在于,所述获取单元,还用于在所述比较单元按照预设规则将所述第一银行卡号与第二数组中的银行标识代码进行比较之前,获取第三银行卡号,所述第三银行卡号为第一数组中存储的多个银行卡号中除了所述第一银行卡号之外的任意一个,所述第三银行卡号为与所述第一银行卡号并行按照所述预设规则和所述第二数组中的银行标识代码比较以确定所述第三银行卡号所属银行和所属银行卡类型的银行卡号。
9.一种设备,其特征在于,所述设备包括一个或多个处理器、存储器以及通信模块;所述存储器以及所述通信模块与所述一个或多个处理器耦合,所述存储器存储有计算机程序,所述处理器被配置用于调用所述计算机程序执行如权利要求1至4任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至4任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910964504.8A CN110909212B (zh) | 2019-10-11 | 2019-10-11 | 一种银行标识代码的匹配方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910964504.8A CN110909212B (zh) | 2019-10-11 | 2019-10-11 | 一种银行标识代码的匹配方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110909212A true CN110909212A (zh) | 2020-03-24 |
CN110909212B CN110909212B (zh) | 2024-04-09 |
Family
ID=69815367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910964504.8A Active CN110909212B (zh) | 2019-10-11 | 2019-10-11 | 一种银行标识代码的匹配方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110909212B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523999A (zh) * | 2020-04-22 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种对公银行账户的识别方法、装置、电子设备 |
CN112765224A (zh) * | 2021-01-27 | 2021-05-07 | 云账户技术(天津)有限公司 | 发行者代码自动匹配方法、装置和电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5187351A (en) * | 1990-09-10 | 1993-02-16 | Addmaster Corporation | Processing of bank documents |
WO2012090763A1 (ja) * | 2010-12-28 | 2012-07-05 | 株式会社エスグランツ | コード列検索装置、検索方法及びプログラム |
CN103955643A (zh) * | 2014-05-20 | 2014-07-30 | 北京握奇智能科技有限公司 | 一种网银交易安全判断与提示方法及系统 |
CN104217494A (zh) * | 2013-05-30 | 2014-12-17 | 财付通支付科技有限公司 | 一种卡号校验方法和装置 |
CN104572325A (zh) * | 2013-10-29 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种递进式响应表单处理方法和终端 |
CN104809157A (zh) * | 2015-03-25 | 2015-07-29 | 小米科技有限责任公司 | 号码识别方法及装置 |
US20160048913A1 (en) * | 2014-08-15 | 2016-02-18 | Mastercard International Incorporated | Systems and Methods for Assigning a Variable Length Bank Identification Number |
CN108563685A (zh) * | 2018-03-13 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 一种银行标识代码的查询方法、装置及设备 |
CN108573446A (zh) * | 2018-04-25 | 2018-09-25 | 平安科技(深圳)有限公司 | 银行卡认证方法、装置、设备及可读存储介质 |
-
2019
- 2019-10-11 CN CN201910964504.8A patent/CN110909212B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5187351A (en) * | 1990-09-10 | 1993-02-16 | Addmaster Corporation | Processing of bank documents |
WO2012090763A1 (ja) * | 2010-12-28 | 2012-07-05 | 株式会社エスグランツ | コード列検索装置、検索方法及びプログラム |
CN104217494A (zh) * | 2013-05-30 | 2014-12-17 | 财付通支付科技有限公司 | 一种卡号校验方法和装置 |
CN104572325A (zh) * | 2013-10-29 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种递进式响应表单处理方法和终端 |
CN103955643A (zh) * | 2014-05-20 | 2014-07-30 | 北京握奇智能科技有限公司 | 一种网银交易安全判断与提示方法及系统 |
US20160048913A1 (en) * | 2014-08-15 | 2016-02-18 | Mastercard International Incorporated | Systems and Methods for Assigning a Variable Length Bank Identification Number |
CN104809157A (zh) * | 2015-03-25 | 2015-07-29 | 小米科技有限责任公司 | 号码识别方法及装置 |
CN108563685A (zh) * | 2018-03-13 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 一种银行标识代码的查询方法、装置及设备 |
CN108573446A (zh) * | 2018-04-25 | 2018-09-25 | 平安科技(深圳)有限公司 | 银行卡认证方法、装置、设备及可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523999A (zh) * | 2020-04-22 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种对公银行账户的识别方法、装置、电子设备 |
CN112765224A (zh) * | 2021-01-27 | 2021-05-07 | 云账户技术(天津)有限公司 | 发行者代码自动匹配方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110909212B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107066616B (zh) | 用于账号处理的方法、装置及电子设备 | |
KR102193502B1 (ko) | 지불 임계값을 취득하기 위한 방법 및 디바이스 | |
WO2020253467A1 (zh) | 一种基于区块链系统的数据处理方法、系统及装置 | |
CN112036890B (zh) | 客户身份认证方法及装置 | |
CN111325617B (zh) | 基于文件的对账方法、装置、计算机设备和可读存储介质 | |
CN109993651B (zh) | 数据核算业务指令集校验方法、装置、计算机设备和介质 | |
CN112613917A (zh) | 基于用户画像的信息推送方法、装置、设备及存储介质 | |
CN111666492A (zh) | 基于用户行为的信息推送方法、装置、设备及存储介质 | |
CN108388512B (zh) | 数据处理方法和服务器 | |
CN111260220B (zh) | 群控设备识别方法、装置、电子设备和存储介质 | |
CN110766275A (zh) | 数据验证方法、装置、计算机设备及存储介质 | |
CN110909212B (zh) | 一种银行标识代码的匹配方法和设备 | |
CN111882399A (zh) | 服务信息推荐方法、装置、计算机系统及可读存储介质 | |
CN106709805B (zh) | 一种用户收益数据获取方法及系统 | |
CN106572074A (zh) | 一种验证码的校验方法和装置 | |
CN109165947B (zh) | 账户信息确定方法、装置及服务器 | |
CN108959289B (zh) | 网站类别获取方法和装置 | |
CN111753203A (zh) | 一种卡号推荐方法、装置、设备和介质 | |
CN110111196A (zh) | 信息验证方法及相关产品 | |
CN110442375B (zh) | 移动支付产品渠道集成方法、装置、设备和存储介质 | |
CN114943537A (zh) | 交易验证风险分析方法及装置 | |
WO2022179733A1 (en) | An apparatus, method and computer program product for identifying a validation check for a set of numbers | |
CN110941663B (zh) | 证件信息的关联规则获取方法及装置 | |
CN110046898B (zh) | 账户信息的分组方法、装置及支付方法、装置 | |
CN108573446B (zh) | 银行卡认证方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |