提取信用卡短信中的消费信息进行财务管理的方法及系统 【技术领域】
本发明属于手机应用软件技术领域,涉及一种数据处理方法,尤其涉及一种提取信用卡短信中的消费信息进行财务管理的方法;同时,本发明还涉及一种提取信用卡短信中的消费信息进行财务管理的系统。
背景技术
近年来,信用卡和手机的使用不断普及。而信用卡业务一般都包含手机银行功能,每当用户使用信用卡消费成功后,银行将通过短信将交易账单发送到用户手机。以深圳平安银行的信用卡为例,用户在办理银行卡时选择了电话银行业务。某天他在商场消费500元购买一件衣服时,使用信用卡刷卡结账。交易完毕后几分钟内,他将收到一条消费短信确认:from:95511:你尾号1234的平安信用卡于12月31日22:13消费RMB500.00。[平安银行]。
同时,在现代社会,生活节奏加快,人们的资金交易越来越频繁,为了跟踪自己的资金流,以便对个人的财产进行有效的管理,越来越多的人使用理财管理软件。目前,这些软件都是用户手工将消费账单输入到里面。比如iPhone手机中国市场上的热门的手机记账软件就有快捷记账,消费管理(iXpenselt),家记账等等。快捷记账支持记录多种付款方式。用户每次记录消费信息时,先选择消费类型(比如信用卡消费)然后再手动录入消费账单。消费管理(iXpenselt)还支持图象显示财务报告和较强大的财务查询功能。
【发明内容】
本发明所要解决的技术问题是:提供一种提取信用卡短信中的消费信息进行财务管理的方法,可自动判别短信内容的消费类型,并将消费内容和数额提取后,进行归类处理,存储到理财管理软件中。
此外,本发明还提供一种提取信用卡短信中的消费信息进行财务管理的系统。
为解决上述技术问题,本发明采用如下技术方案:
一种提取信用卡短信中的消费信息进行财务管理的方法,所述方法包括如下步骤:
步骤110,按照设定规则读取手机中某条短信的内容;
步骤120,判断该短信是否是手机银行发送的短信;若是,转到步骤130,否则转到步骤150;
步骤130,判断该短信是否是手机银行的消费确认信息短信;若是,转到步骤140,否则转到步骤150;
步骤140,提取消费数据,存储到财务软件的数据库中;
步骤150,判断短信是否遍历结束;如果答案为否,转到110,如果答案为是,转到步骤160;
步骤160,结束。
作为本发明的一种优选方案,所述步骤150与步骤160之间还包括步骤160′:在所有短信遍历结束后,记录本次检查短信的时间,以备下次检查短信时参考;相应地,所述步骤110中,在读取某短信前,先检查收到该短信的时间是否在上次检查短信的时间之前,如果收到该短信的时间是在上次检查短信的时间之前,表示该短信已经检查过,跳到下一条,否则读取该条短信。
作为本发明的一种优选方案,所述步骤110中,调用手机操作系统的访问短信的接口,逐条读取短信内容。
作为本发明的一种优选方案,所述步骤120中,判断步骤的判断方法为:
在前期准备的模板数据库中搜索发送短信的手机号,所述前期准备的模板数据库存有手机银行的号码;如果找到,则判断该短信是银行发送的短信,并记录下对应银行的名称;如果无法找到,则判断该短信不是银行发送的短信;银行的手机号码是唯一确定的字符串,搜索的方法为:将该短信的手机号码与所述模板数据库中的号码逐个比较,如果被比较的两个字符串相等,则搜索成功并中止;如果所有的字符串都不相等,则搜索失败,判断该短信不是手机银行发送的短信。
作为本发明的一种优选方案,所述步骤130中,根据步骤120确认的银行,从数据库中获得该银行的消费信息短信格式,并与当前手机短信用正则表达式进行匹配;若匹配成功,则认为该短信是手机银行的消费确认信息短信,否则不认为该短信是手机银行的消费确认信息短信。
作为本发明的一种优选方案,所述步骤140中,分别用信用卡号、日期、消费的正则表示式去搜索对应的消费信息,获得对应的消费信息后,存入财务软件的数据库中。
作为本发明地一种优选方案,所述方法在步骤110之前还包括对前期的数据采集和归类步骤:获得所有信用卡电话银行的短信内容,提取手机银行号码,信用卡消费短信的短信格式和关键词,作为模板数据存储在模板数据库中。
一种提取信用卡短信中的消费信息进行财务管理的系统,所述系统包括:
短信读取单元,用以按照设定规则读取手机中某条短信的内容;
第一判断单元,与所述短信读取单元连接,用以判断所述短信读取单元读取的短信是否是手机银行发送的短信;
第二判断单元,与所述第一判断单元连接,用以判断相应短信是否是手机银行的消费确认信息短信;
信息提取单元,与所述第二判断单元连接,在所述第二判断单元判断对应短信是手机银行的消费确认信息短信后,提取消费数据,存储到财务软件的数据库中。
作为本发明的一种优选方案,所述信息提取单元在所有短信遍历结束后,记录本次检查短信的时间,以备下次检查短信时参考;相应地,所述短信读取单元在读取某短信前,先检查收到该短信的时间是否在上次检查短信的时间之前,如果收到该短信的时间是在上次检查短信的时间之前,表示该短信已经检查过,跳到下一条,否则读取该条短信。
作为本发明的一种优选方案,所述第一判断单元的判断方法为:
在前期准备的模板数据库中搜索发送短信的手机号,所述前期准备的模板数据库存有手机银行的号码;如果找到,则判断该短信是银行发送的短信,并记录下对应银行的名称;如果无法找到,则判断该短信不是银行发送的短信;银行的手机号码是唯一确定的字符串,搜索的方法为:将该短信的手机号码与所述模板数据库中的号码逐个比较,如果被比较的两个字符串相等,则搜索成功并中止;如果所有的字符串都不相等,则搜索失败,判断该短信不是手机银行发送的短信。
作为本发明的一种优选方案,所述第二判断单元根据步骤120确认的银行,从数据库中获得该银行的消费信息短信格式,并与当前手机短信用正则表达式进行匹配;若匹配成功,则认为该短信是手机银行的消费确认信息短信,否则不认为该短信是手机银行的消费确认信息短信;所述信息提取单元分别用信用卡号、日期、消费的正则表示式去搜索对应的消费信息,获得对应的消费信息后,存入财务软件的数据库中。
作为本发明的一种优选方案,所述系统进一步包括模板数据库生成单元,用以对前期的数据采集和归类;获得所有信用卡电话银行的短信内容,提取手机银行号码、信用卡消费短信的短信格式和关键词,作为模板数据存储在模板数据库中。
本发明的有益效果在于:本发明提出的提取信用卡短信中的消费信息进行财务管理的方法及系统,用户收到手机银行短信之后,使用本发明,自动判别短信内容的消费类型,并将消费内容和数额提取后,进行归类处理,存储到理财管理软件中。通过该发明,用户使用财务管理软件时,记录信用卡的信用卡消费将无须手动输入,获得更快捷准确的使用体验。本发明延伸了信用卡消费和财务管理的功能,并将两者结合,使用户非常方便地记录下自己的信用卡消费记录。由于信用卡的使用人数和次数数量大,该发明具有很好的实用和推广价值。
【附图说明】
图1为本发明方法的流程图。
图2为本发明系统的组成示意图。
图3为实施例二中本发明方法的流程图。
【具体实施方式】
下面结合附图详细说明本发明的优选实施例。
实施例一
本发明揭示一种直接提取短信中信用卡消费的信息保存在财务管理软件的方法。用户收到手机银行短信之后,使用本发明,自动判别短信内容的消费类型,并将消费内容和数额提取后,进行归类处理,存储到理财管理软件中。通过该发明,用户使用财务管理软件时,记录信用卡的信用卡消费将无须手动输入,获得更快捷准确的使用体验。
请参阅图1,本发明揭示一种提取信用卡短信中的消费信息进行财务管理的方法,所述方法包括如下步骤:
【步骤100】前期的数据采集和归类。
获得所有信用卡电话银行的短信内容,提取手机银行号码,信用卡消费短信的短信格式和关键词,作为模板数据存储在模板数据库中;并形成各信用卡电话银行消费信息短信的正则表达式。
【步骤110】读取用户手机中的短信。
调用手机对应操作系统的访问短信的接口,按照设定顺序读取手机中某条短信的内容。不同的手机平台,读取短信的程序接口会有所不同。
【步骤120】判断该短信是否是手机银行发送的短信;如果答案为是,转到步骤130,如果答案为否,转到步骤150。
上述判断步骤的判断方法为:在前期准备的模板数据库中搜索发送短信的手机号,所述前期准备的模板数据库存有手机银行的号码;如果找到,则判断该短信是银行发送的短信,并记录下对应银行的名称;如果无法找到,则判断该短信不是银行发送的短信;银行的手机号码是唯一确定的字符串,搜索的方法为将该短信的手机号码与所述模板数据库中的号码逐个比较,如果被比较的两个字符串相等,则搜索成功并中止;如果所有的字符串都不相等,则搜索失败,判断该短信不是手机银行发送的短信。
【步骤130】判断该短信是否是手机银行的消费确认信息短信;若是,转到步骤140,否则转到步骤150。
根据步骤120确认的银行,从数据库中获得该银行的消费信息短信格式(正则表达式),并与当前手机短信用正则表达式进行匹配;匹配方法为:将消费信息短信的正则表达式的字符信息与当前手机短信的信息进行一一匹配,若在匹配的过程中出现两者有任何不同,则认为匹配失败,否则认为匹配成功。若匹配成功,则认为该短信是手机银行的消费确认信息短信,否则不认为该短信是手机银行的消费确认信息短信。
信用卡的短信具有一定的模式,但是却由于不同的银行,不同的消费时间和消费金额而短信内容会不同。在计算机科学中,正则表达式就是用某种模式去匹配一类字符串的一个公式。其作用为:(1)验证字符串是否符合指定特征。比如验证是否是合法的邮件地址和本发明中的短信是否是手机银行信用卡消费短信。(2)从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。比如表达式“ab+“描述的是一个‘a’和任意个‘b’,那么‘ab’,‘abbbbb’都符合这个特征。以平安信用卡的信用卡短信为例:
1.信用卡消费短信:您尾号1234的平安信用卡于12月09日18:33消费RMB66[平安银行]。
2.信用卡还款提醒短信:
平安信用卡12月账单提醒:您本期账单金额为RMB864元,到期还款日为01年07日。[平安银行]
正则表达式“^您尾号[0-9]{4}”能匹配短信开头为“您尾号“再加四个数字的字符串。即它在上述第一条短信开头找到匹配字符串“您尾号1234”,而无法在第二条短信中找到。从而能判断出第二条短信不是消费确认短信。如果该银行还有其他格式短信,而该正则表达式也同样能在匹配到“您尾号1234”,则通过比较该格式的短信与消费短信的差异,而将新的区分模式加入正则表达式。每个银行的短信格式是有限的,所以理论上有限模式的正则表达式是可以将信用卡消费短信和其它短信区分开的。
【步骤140】提取消费内容和消费金额,存储到财务软件的数据库中。
分别用信用卡号、日期、消费的正则表示式去搜索对应的消费信息,获得对应的消费信息后,存入财务软件的数据库中。
比如,匹配消费字符串的正则表达式:”消费RMB[0-9]+[.][0-9]{2}”,表示该字符串的模式是“消费RMB“后跟任意个数字再加一个小数点,再加两个数字。“消费RMB888.00”,“消费RMB 500.23”都可以用这个表达式找到。而“存入RMB777.77”,则无法匹配到。具体的表达式形式要根据前期的数据预处理获得。保证该表达式在所有的信用卡短信范围内与要找到的模式是唯一的对应关系。获得对应的消费信息后,存入财务软件的数据中。
【步骤150】判断短信是否遍历结束;如果答案为否,转到110,如果答案为是,转到步骤160。
【步骤160】结束。
为了实行本发明,需具备如下硬件条件:该设备中需要有能接收到短信,能运行一般软件的智能手机。该智能手机操作系统还必须提供程序访问短信内容的接口。
以黑莓(BlackBerry)手机为例,使用JAVA语言的遍历手机短信的代码如下:
DatagramConnection_dc=
(DatagramConnection)Connector.open(″sms://″);
for(;;)
{
Datagram d=_dc.newDatagram(_dc.getMaximumLength());
_dc.receive(d);
byte[]bytes=d.getData();
String address=d.getAddress();
String msg=new String(bytes);
}
其中,字符串address存储的是短信的发送手机号,字符串msg存储的是短信的字符串。
以上介绍了本发明提取信用卡短信中的消费信息进行财务管理的方法的具体流程,本发明在揭示上述方法的同时还揭示了上述方法对应的管理系统。
请参阅图2,本发明提取信用卡短信中的消费信息进行财务管理系统包括模板数据库生成单元11、短信读取单元12、第一判断单元13、第二判断单元14、信息提取单元15。
模板数据库生成单元11用以对前期的数据采集和归类。获得所有信用卡电话银行的短信内容,提取手机银行号码、信用卡消费短信的短信格式和关键词,作为模板数据存储在模板数据库中。
短信读取单元12用以调用手机对应操作系统的访问短信的接口,按照设定规则读取手机中某条短信的内容。
第一判断单元13与所述短信读取单元连接,用以判断所述短信读取单元读取的短信是否是手机银行发送的短信;所述第一判断单元的判断方法为:在前期准备的模板数据库中搜索发送短信的手机号,所述前期准备的模板数据库存有手机银行的号码;如果找到,则判断该短信是银行发送的短信,并记录下对应银行的名称;如果无法找到,则判断该短信不是银行发送的短信;银行的手机号码是唯一确定的字符串,搜索的方法为将该短信的手机号码与所述模板数据库中的号码逐个比较,如果被比较的两个字符串相等,则搜索成功并中止;如果所有的字符串都不相等,则搜索失败,判断该短信不是手机银行发送的短信。
第二判断单元14与所述第一判断单元连接,用以判断相应短信是否是手机银行的消费确认信息短信;根据步骤120确认的银行,从数据库中获得该银行的消费信息短信格式,并与当前手机短信用正则表达式进行匹配;若匹配成功,则认为该短信是手机银行的消费确认信息短信,否则不认为该短信是手机银行的消费确认信息短信。
信息提取单元15与所述第二判断单元连接,在所述第二判断单元判断对应短信是手机银行的消费确认信息短信后,提取消费内容和消费金额,存储到财务软件的数据库中;分别用信用卡号、日期、消费的正则表示式去搜索对应的消费信息,获得对应的消费信息后,存入财务软件的数据库中。
综上所述,本发明提出的提取信用卡短信中的消费信息进行财务管理的方法及系统,用户收到手机银行短信之后,使用本发明,自动判别短信内容的消费类型,并将消费内容和数额提取后,进行归类处理,存储到理财管理软件中。通过该发明,用户使用财务管理软件时,记录信用卡的信用卡消费将无须手动输入,获得更快捷准确的使用体验。本发明延伸了信用卡消费和财务管理的功能,并将两者结合,使用户非常方便地记录下自己的信用卡消费记录。由于信用卡的使用人数和次数数量大,该发明具有很好的实用和推广价值。
实施例二
与实施例一相比,本实施例中,提取信用卡短信中的消费信息进行财务管理的方法中,步骤150与步骤160之间还可以包括步骤160′:在所有短信遍历结束后,记录本次检查短信的时间,以备下次检查短信时参考。相应地,所述步骤110中(管理系统则对应短信读取单元12),在读取某短信前,先检查收到该短信的时间是否在上次检查短信的时间之前,如果收到该短信的时间是在上次检查短信的时间之前,表示该短信已经检查过,跳到下一条,否则读取该条短信。
请参阅图3,本实施例中,提取信用卡短信中的消费信息进行财务管理的方法包括如下步骤:
【步骤100】前期的数据采集和归类。
获得所有信用卡电话银行的短信内容,提取手机银行号码,信用卡消费短信的短信格式和关键词,作为模板数据存储在模板数据库中。
【步骤110】读取用户手机中的短信。
调用手机对应操作系统的访问短信的接口,按照设定顺序读取手机中某条短信的内容。不同的手机平台,读取短信的程序接口会有所不同。
在读取某短信前,可以先检查收到该短信的时间是否在上次检查短信的时间之前,如果收到该短信的时间是在上次检查短信的时间之前,表示该短信已经检查过,跳到下一条,否则读取该条短信。
【步骤120】判断该短信是否是手机银行发送的短信;如果答案为是,转到步骤130,如果答案为否,转到步骤150。
上述判断步骤的判断方法为:在前期准备的模板数据库中搜索发送短信的手机号,所述前期准备的模板数据库存有手机银行的号码;如果找到,则判断该短信是银行发送的短信,并记录下对应银行的名称;如果无法找到,则判断该短信不是银行发送的短信;银行的手机号码是唯一确定的字符串,搜索的方法为将该短信的手机号码与所述模板数据库中的号码逐个比较,如果被比较的两个字符串相等,则搜索成功并中止;如果所有的字符串都不相等,则搜索失败,判断该短信不是手机银行发送的短信。
【步骤130】判断该短信是否是手机银行的消费确认信息短信;若是,转到步骤140,否则转到步骤150。
根据步骤120确认的银行,从数据库中获得该银行的消费信息短信格式,并与当前手机短信用正则表达式进行匹配;若匹配成功,则认为该短信是手机银行的消费确认信息短信,否则不认为该短信是手机银行的消费确认信息短信。
信用卡的短信具有一定的模式,但是却由于不同的银行,不同的消费时间和消费金额而短信内容会不同。在计算机科学中,正则表达式就是用某种模式去匹配一类字符串的一个公式。其作用为:(1)验证字符串是否符合指定特征。比如验证是否是合法的邮件地址和本发明中的短信是否是手机银行信用卡消费短信。(2)从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。比如表达式“ab+“描述的是一个‘a’和任意个‘b’,那么‘ab’,‘abbbbb’都符合这个特征。
以平安信用卡的信用卡短信为例:
1、信用卡消费短信:您尾号1234的平安信用卡于12月09日18:33消费RMB66[平安银行]。
2、信用卡还款提醒短信:平安信用卡12月账单提醒:您本期账单金额为RMB864元,到期还款日为01年07日。[平安银行]
正则表达式“^您尾号[0-9]{4}”能匹配短信开头为您尾号再加四个数字的字符串。即它在第一条短信开头找到匹配字符串“您尾号1234”,而无法在第二条短信中找到。从而能判断出第二条短信不是消费确认短信。如果该银行还有其他格式短信,而该正则表达式也同样能在匹配到“您尾号1234”,则通过比较该格式的短信与消费短信的差异,而将新的区分模式加入正则表达式。每个银行的短信格式是有限的,所以理论上有限模式的正则表达式是可以将信用卡消费短信和其它短信区分开的。
【步骤140】提取消费内容和消费金额,存储到财务软件的数据库中。
分别用信用卡号、日期、消费的正则表示式去搜索对应的消费信息,获得对应的消费信息后,存入财务软件的数据库中。
比如,匹配消费字符串的正则表达式:”消费[0-9]+[.][0-9]{2}”,表示该字符串的模式是“消费RMB“后跟任意个数字再加一个小数点,再加两个数字。“消费RMB888.00”,“消费RMB 500.23”都可以用这个表达式找到。而“存入RMB777.77”,则无法匹配到。具体的表达式形式要根据前期的数据预处理获得。保证该表达式在所有的信用卡短信范围内与要找到的模式是唯一的对应关系。获得对应的消费信息后,存入财务软件的数据中。
【步骤150】判断短信是否遍历结束;如果答案为否,转到110,如果答案为是,转到步骤160′。
【步骤160′】在所有短信遍历结束后,记录本次检查短信的时间,以备下次检查短信时参考;转步骤170。
【步骤170】结束。
实施例三
在blackberry手机上,用户已经接受到深圳平安银行的消费确认短信:from(95511):你尾号7136的平安信用卡于12月9日18:33消费RMB66.30,快来参加节日高ii-周周3笔7级好礼。[平安银行]使用本发明所述的方法,程序将根据手机号95511自动判断出该短信为信用卡银行发送的。并通过前面所述的方法将消费的信用卡卡号7136,消费时间12月9日18:33,和消费信息RMB 66.30提取出来存储在财务软件的数据中。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。