掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本文的实施例总体上涉及计算平台,并且更具体地,涉及使用按需应用来生成非接触式卡的虚拟号码以安全地自动填充表单域。

相关申请

本申请要求2019年2月1日提交的题为“USING ON-DEMAND APPLICATIONS TOGENERATE VIRTUAL NUMBERS FOR A CONTACTLESS CARD TO SECURELY AUTOFILL FORMS”的美国专利申请序列号16/265,961的优先权。上述申请的内容通过引用整体并入本文。

背景技术

支付卡的账户标识符通常是长数字和/或字符串。像这样,用户难以正确地手动输入账户标识符。实际上,用户经常犯错并且将不正确的账号输入到计算接口(例如,支付接口)中。通常,从应用商店下载的本机操作系统(OS)应用可能包括协助用户将账户标识符输入表单的功能。但是,某些用户在其设备上可能没有此类应用。因此,这些用户必须手动正确地输入账户标识符。

发明内容

本文公开的实施例提供了用于将非接触式卡轻拍到计算设备以安全地生成能在表单域(form field)中自动填充的虚拟卡号的系统、方法、制品和计算机可读介质。根据一个示例,第一应用可以输出包括支付域的表单。操作系统(OS)可以从非接触式卡接收包括加密数据的统一资源定位符(URL)。可以从接收到的URL动态下载并安装第二应用。第二应用可以将加密数据发送到认证服务器,该认证服务器验证加密数据。第二应用可以从虚拟账号服务器接收虚拟账号、与虚拟账号相关联的有效期、以及与虚拟账号相关联的CVV。第二应用可以将虚拟账号、有效期和CVV提供给OS的自动填充服务。OS的自动填充服务可以在第一应用的支付域中自动填充虚拟账号。

附图说明

图1A-图1C示出了将非接触式卡轻拍到计算设备以安全地生成可在表单域中自动填充的虚拟卡号的系统的实施例。

图2A-图2D示出了将非接触式卡轻拍到计算设备以安全地生成可在表单域中自动填充的虚拟卡号的实施例。

图3示出了第一逻辑流程的实施例。

图4示出了第二逻辑流程的实施例。

图5示出了第三逻辑流程的实施例。

图6示出了第四逻辑流程的实施例。

图7示出了计算架构的实施例。

具体实施方式

本文公开的实施例提供了使用非接触式卡来生成卡数据(例如,账号、有效期和/或卡验证值(CVV))的安全技术,该卡数据可以自动填充到计算设备上的表单中,而无需应用(例如,银行应用、账户管理应用、支付应用等)预先安装在设备上。通常,当计算设备正在输出包括卡数据域的表单时,非接触式卡可以例如经由轻拍手势而进入计算设备的通信范围内。这样做导致非接触式卡生成统一资源定位符(URL),该资源定位符(URL)被发送到计算设备。URL的至少一部分可以被定向到托管一个或多个应用和/或应用段的应用服务器。应用可以包括可经由应用商店获得的应用,而应用的段可以包括应用的一部分(例如,一个或多个页面、一个或多个功能等)。例如,应用段可以是按需应用,诸如即时应用和/或渐进式网络应用。与URL相关联的一个或多个应用段可以被下载到计算设备并在计算设备上执行。

由非接触式卡生成的URL可以进一步包括由认证服务器用作验证过程的一部分的数据。例如,URL可以包括作为验证过程的一部分由服务器解密的加密数据。下载的应用段可以接收URL并提取加密数据。然后,下载的应用可以将加密数据发送到认证服务器以进行验证。一旦被验证,认证服务器可以指示虚拟账号服务器为与非接触式卡相关联的账户生成卡数据。卡数据可以包括虚拟账号、有效期、CVV和用户的地址。虚拟账号可以是不同于与非接触式卡相关联的账号的账号。然后可以将生成的卡数据发送到在计算设备上执行的应用段。应用段可以将卡数据提供给OS的自动填充服务。然后,自动填充服务可以将卡数据自动填充到表单的对应支付域中。

有利地,本文公开的实施例改进了所有设备和相关联的数据的安全性。例如,本文公开的实施例在自动填充卡数据时提供通过应用商店安装的应用的安全性,而不需要用户在其计算设备上从应用商店安装应用。此外,常规方法要求用户手动将卡数据输入表单中。然而,这样做可以允许其他用户或设备在用户将卡数据输入表单中时捕获卡数据。通过消除用户手动将卡数据输入到表单中的需要,增强了卡数据的安全性。

总体上参考本文所使用的符号和术语,以下详细描述的一个或多个部分可以在计算机或计算机网络上执行的程序过程方面呈现。这些过程描述和表示被本领域技术人员用来将其工作的实质最有效地传达给本领域其他技术人员。过程在此处并且通常地被认为是导致所期结果的自洽操作序列。这些操作是需要物理量的物理操纵的操作。通常,尽管不是必须的,这些量采取能够被存储、传送、组合、比较和以其他方式操纵的电、磁或光信号的形式。主要出于通用的原因,有时将这些信号称为位、值、元件、符号、字符、项、数字或诸如此类被证明是方便的。但是,应注意,所有这些和类似术语均应与适当的物理量相关联,并且仅是应用于这些量的方便标签。

此外,这些操纵通常被称为诸如添加或比较之类的术语,其通常与人类操作员执行的智力操作相关联。但是,在构成一个或多个实施例的一部分的本文所描述的任何操作中,在大多数情况下人类操作员的这种能力是不需要的或不期望的。而是,这些操作是机器操作。用于执行各种实施例的操作的有用机器包括由存储在其中的根据本文的教导编写的计算机程序选择性地激活或配置的数字计算机,和/或包括为所需目的而特别构造的装置或数字计算机。各种实施例还涉及用于执行这些操作的装置或系统。这些装置可以为所需目的特别构造。从给出的描述中,各种这些机器所需的结构将是显而易见的。

现在参考附图,其中相似的附图标记始终用于指代相似的元件。在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对其的透彻理解。然而,很明显,没有这些具体细节也可以实践新颖实施例。在其他实例中,以框图形式示出了公知的结构和设备,以便促进其描述。目的是覆盖权利要求范围内的所有修改、等同物和替代物。

图1A描绘了与所公开的一致的示例性系统100的示意图。如示出的,系统100包括一个或多个非接触式卡101、一个或多个移动设备110、认证服务器120、虚拟账号服务器140和应用服务器150。非接触式卡101表示任何类型的支付卡,诸如信用卡、借记卡、ATM卡、礼品卡和诸如此类。非接触式卡101可以包括一个或多个芯片(未描绘),诸如射频识别(RFID)芯片,其被配置为经由NFC、EMV标准或无线通信中的其他短程协议与移动设备110通信。尽管NFC被用作示例通信协议,但是本公开同样适用于其他类型的无线通信,诸如EMV标准、蓝牙和/或Wi-Fi。移动设备110表示任何类型的网络使能的计算设备,诸如智能电话、平板计算机、可穿戴设备、手提电脑、便携式游戏设备和诸如此类。服务器120、140、150表示任何类型的计算设备,诸如服务器、工作站、计算机集群、云计算平台、虚拟化计算系统和诸如此类。

如示出的,移动设备110的存储器111包括操作系统(OS)112的实例。示例操作系统112包括

作为另一个示例,用户可以使用网络浏览器115和/或由商人提供的其他应用116从商人的网站进行购买。为了完成交易,用户必须向网络浏览器115中的一个或多个表单127和/或其他应用116的表单129提供卡数据。将网络浏览器115和/或其他应用116用作本文的参考示例不应该被认为是对本公开的限制,这是因为本公开同样适用于包括具有用于卡数据的域的表单的所有类型的应用和具有用于卡数据的域的所有类型的表单。

通常,用户可能会遇到包括用于卡数据的一个或多个域(例如,姓名域、卡号域、有效期域、CVV域、账单地址域、送货地址域等)的表单127、129。常规地,要求用户手动输入他们的姓名、卡号、有效期、CVV和/或地址信息。一些移动操作系统允许将此类数据自动填充到表单中,但其他移动操作系统则对自动填充此类数据施加了限制。此外,在允许自动填充表单中的数据的操作系统中,必须通过专用应用对用户进行认证来这样做。例如,现有解决方案要求用户安装由非接触式卡101的发行者提供的账户管理应用,并在该应用中进行认证以自动填充表单127、129中的卡数据。然而,有利地,本文公开的实施例通过利用非接触式卡101触发虚拟账号、有效期和/或CVV的生成来解决此类问题,该虚拟账号、有效期和/或CVV可以复制到OS 112的自动填充服务114,而无需预先安装在设备110上的应用(诸如账户管理应用)。

为此,用户可以向移动设备110轻拍非接触式卡101,从而使非接触式卡101充分靠近移动设备110的读卡器119,以使能在非接触式卡101的通信接口107和移动设备110的读卡器119之间进行NFC数据传送。在一些实施例中,移动设备110可以经由应用程序接口(API)调用而触发读卡器119。在一个示例中,移动设备110响应于用户轻拍或以其他方式选择用户界面的元素(诸如,表单域)经由API调用而触发读卡器。另外地和/或可替选地,移动设备110可以基于周期性地轮询读卡器119来触发读卡器119。更一般地,移动设备110可以使用任何可行的方法来触发读卡器119进行通信。在移动设备110和非接触式卡101之间建立了通信之后,在非接触式卡101的处理器(未图示)上执行的小应用程序103经由通信接口107生成数据并将其发送到移动设备110。在一些实施例中,非接触式卡101生成的数据可以包括URL 106。URL可以定向到应用服务器150或托管一个或多个账户应用151的某个其他位置。当OS 112接收到URL 106时,OS可以从URL 106动态地下载账户应用151,并在设备上动态地安装账户应用151。URL 106还可以是打开本地资源(例如,相关联的账户应用151的一个或多个特定页面)的通用链接URL(或深层链接URL)。在移动设备110上执行时应被打开的账户应用151的页面可以被指定为URL的参数。

更一般地,URL 106表示定向到应用服务器150的一个或多个账户应用151的一个或多个URL(和/或统一资源标识符(URI))。小应用程序103可以基于任何合适的选择技术(例如,随机地,基于从移动设备110接收到的数据,等等)选择URL 106。账户应用151可以包括可以动态地下载并安装在移动设备110上的按需应用。如示出的,账户应用151包括即时应用152和渐进式网络应用153。即时应用是可以动态地下载并安装在移动设备110上的非持久性应用。即时应用152的一个示例是

通常,渐进式网络应用是在网络浏览器115中执行的并在移动设备110上执行时保持持续的按需应用。例如,渐进式网络应用被分配给移动设备110的存储,并且当新功能被添加到渐进式网络应用时可在后台进行更新。渐进式网络应用153的一个示例是Android渐进式网络应用。如所陈述的,渐进式网络应用153可以动态下载并在下载完成时自动在网络浏览器115中执行。渐进式网络应用153对应于基于要执行的特定功能而选择的应用的子集。例如,渐进式网络应用153可以是执行各种功能的整体账户管理应用的子集,而渐进式网络应用153包括账户管理应用的一个或多个部分和/或由账户管理应用提供的功能的子集。

在一些实施例中,账户应用151包括另一应用(例如,账户管理应用等)的一个或多个部分(或段)。因此,换句话说,账户应用151可以包括页面的子集(或全部)和/或其他应用的功能。例如,第一账户应用151可以包括允许客户查看其银行账户余额的页面以及允许客户将电子邮件发送给客户服务的页面同时排除由完整的账户管理应用提供的其他功能(例如,支付计划、贷款请求等)。有利地,第一账户应用151能够执行相关联的功能,而无需将银行的账户管理应用预先安装在移动设备110上。更一般地,账户应用151可以被共同地视为可以被访问的基于云的“应用捆绑包”,并且该捆绑包的子集可以快速下载到移动设备110。因此,应用捆绑包可以共同包括由账户管理应用提供的所有功能,但是仅将需要执行一个或多个所需操作的账户应用151的子集下载到移动设备110。

小应用程序103生成的URL 106可以进一步包括加密数据105作为参数。如下面更详细描述的,认证服务器120可以使用加密数据105来验证非接触式卡101生成的数据。例如,非接触式卡101的小应用程序103可以使用密码算法来至少部分地基于存储在非接触式卡101的存储器102中的私钥104来生成加密数据105的密码有效载荷。在这样的实施例中,私钥104和一些其他数据段(例如,客户标识符、账户标识符等)可以作为密码算法的输入提供,其输出加密数据105。通常,小应用程序103可以使用任何类型的密码算法和/或系统来生成加密数据105,并且使用特定密码算法作为本文的示例不应被视为对本公开的限制。在一些实施例中,小应用程序103可以使用密钥多样化技术来执行加密以生成密码有效载荷。密钥多样化技术的示例在2018年11月29日提交的美国专利申请16/205,119中进行了描述。上述专利申请的全部内容通过引用合并于此。

如所陈述的,非接触式卡101的小应用程序103可以包括加密数据105作为URL 106的参数,从而生成具有加密数据108的URL。例如,如果到应用服务器150的URL和/或账户应用151是“http://www.example.com/accountapp”,并且加密数据105是“ABC123”,则具有加密数据108的URL可以是“http://www.example.com/accountapp?data=ABC123”。在一些实施例中,小应用程序103可以在包括加密数据105作为URL 106的参数之前,根据与URL兼容的编码格式对加密数据105进行编码。例如,加密数据105可以是一串二进制数据(例如零和一),其可能与URL不兼容。因此,小应用程序103可以将加密数据105编码为美国信息交换标准码(ASCII)base64编码格式。这样做是通过将以ASCII字符串格式的二进制加密数据105转换为基数64表示(例如,前面的示例中的“ABC123”)来表示该以ASCII字符串格式的二进制加密数据105。更进一步,URL 106可以包括在安装时打开应用151的哪个页面的指示。继续前面的示例,页面标识符“1”(或其他页面标识符,诸如页面名称等)可以作为参数添加到URL 106,并且具有加密数据108的URL可以是“http://www.example.com/accountapp?data=ABC123&p=1”。

一旦生成,小应用程序103可以例如经由NFC将具有加密数据108的URL发送到移动设备110。在一个实施例中,当被OS 112接收到时,OS 112致使网络浏览器115访问具有加密数据108的URL。这样做使得描述移动设备110的信息与请求一起发送以访问具有加密数据108的URL。例如,该信息可以包括移动设备110的属性,诸如操作系统版本、硬件能力和软件能力。作为响应,应用服务器150可以将与具有加密数据108的URL相关联的账户应用151发送到移动设备110。在一些实施例中,应用服务器150基于接收到的移动设备110的属性来选择账户应用151。例如,如果移动设备110的OS 112不支持渐进式网络应用153,则应用服务器150可以选择对应的即时应用152作为账户应用151。在一些实施例中,如果应用服务器150选择即时应用152作为账户应用151,则应用服务器150可以致使移动设备110打开应用商店应用(例如,其他应用116之一)以下载即时应用152。应用商店的示例包括

在一些实施例中,当OS 112接收到具有加密数据108的URL时,该URL被定向到即时应用152。在一些这样的实施例中,即时应用152是通过应用商店下载的。因此,代替打开网络浏览器115,OS 112打开对应的应用商店应用116。在一些实施例中,应用商店应用116在OS 112的后台打开,而没有在OS 112的前台中打开应用商店应用116。在这样的实施例中,在OS 112的后台中下载了即时应用152。无论是否出现在OS 112的前台或后台,应用商店应用116都会下载、安装并执行即时应用152。然而,在一些实施例中,可以使用网络浏览器115下载此类即时应用152,而无关乎即时应用152存储在何处。

另外地和/或可替选地,应用服务器150可以基于执行给定功能所需的应用的部分来选择账户应用151。例如,应用服务器151可以基于具有加密数据108的URL中的加密数据105来确定该功能包括以下中的一项或多项:提取加密数据105、对加密数据105进行解码、将解码后的加密数据105发送到认证服务器120、接收来自VAN生成器142的虚拟卡数据126、并将虚拟卡数据126提供给自动填充服务114。因此,应用服务器150可以选择包括执行所述功能所需的功能的一个或多个账户应用151。例如,应用服务器150可以选择一个或多个即时应用152,其包括以下功能:提取加密数据105、对加密数据105进行解码、将解码后的加密数据105发送到认证服务器120、接收来自VAN生成器142的虚拟卡数据126、并且将虚拟卡数据126提供给自动填充服务114。在一些实施例中,应用服务器150可以将应用的附加部分发送到移动设备110(例如,作为后台下载的一部分)。

类似地,应用服务器150可以基于执行给定功能所需的应用的部分来选择一个或多个渐进式网络应用153。例如,渐进式网络应用153可以针对给定的任务和/或功能被优化。作为另一示例,渐进式网络应用153可以包括执行所需功能(和/或附加功能)的核心渐进式网络应用153的子集。核心渐进式网络应用153可以包括账户管理应用的完整功能。因此,继续前面的示例,应用服务器150可以选择一个或多个渐进式网络应用153,其被优化以提取加密数据105、对加密数据105进行解码、将解码后的加密数据105发送到认证服务器120、接收来自VAN生成器142的虚拟卡数据126、并将虚拟卡数据126提供给自动填充服务114。类似地,应用服务器150可以选择核心渐进式网络应用153的子集,其中该子集包括以下功能:提取加密数据105、对加密数据105进行解码、将解码后的加密数据105发送到认证服务器120、接收来自VAN生成器142的虚拟卡数据126、并将虚拟卡数据126提供给自动填充服务114。

图1B描绘了其中示例账户应用151-1已经被动态下载并安装在移动设备110的存储器111中的实施例。账户应用151可以是即时应用152和/或渐进式网络应用153。在图1B中,为了清楚起见,未描绘图1A的一些元素。如所陈述的,可以由应用服务器150基于一个或多个所需功能、由账户应用151-1执行的功能和/或移动设备110的参数来选择账户应用151-1。尽管描绘为在存储器111中执行(例如,作为即时应用152),但是如果账户应用151-1是渐进式网络应用153,则账户应用151-1的渐进式网络应用153实例可以在网络浏览器115中执行。在其中账户应用151-1是渐进式网络应用153的一个实施例中,渐进式网络应用153可以确定从应用服务器150下载即时应用152并安装在移动设备110上。

此外,无论账户应用151-1是即时应用152还是渐进式网络应用153,账户应用151-1都包括足以执行所需功能(例如,本文描述的功能)的页面或功能。更具体地,一旦被下载到移动设备110,账户应用151-1就可以打开一个或多个页面(例如,由URL 106的一个或多个参数指定的页面),其接收具有加密数据108的URL作为输入、从具有加密数据108的URL提取加密数据105、并经由网络130将加密数据105发送到认证服务器120。此外,账户应用151-1可以在将二进制加密数据105发送到认证服务器120之前将加密数据105转换为原始编码格式(例如,从ASCII base64到二进制)。如下面更详细描述的,账户应用151-1可以接收来自VAN生成器142的虚拟卡数据126,并将虚拟卡数据126提供给自动填充服务114。

一旦被接收到,认证应用123就可以认证加密数据105。例如,认证应用123可以尝试使用存储在认证服务器120的存储器122中的私钥104的副本来解密该加密数据105。私钥104可以与存储在非接触式卡101的存储器102中的私钥104相同,其中每个非接触式卡101被制造为包括唯一私钥104(并且认证服务器120存储每个唯一私钥104的对应副本)。因此,认证应用123可以成功地解密加密数据105,从而验证加密数据105。例如,如所陈述的,可以使用客户标识符来生成加密数据105。在这样的示例中,认证应用123可以使用认证服务器120的私钥104对加密数据105进行解密。如果解密的结果产生与账户数据124中的账户相关联的客户标识符,则认证应用123验证加密数据105,并指示VAN生成器142为与非接触式卡101相关联的账户生成虚拟卡数据126。如果认证应用123无法解密加密数据以产生预期结果(例如,与非接触式卡101相关联的账户的客户标识符),则认证应用123没有验证加密数据105。由于失败的验证,认证应用123不指示VAN生成器142生成虚拟卡数据126以保护相关联的账户的安全性。

图1B中描绘的实施例反映了其中认证应用123验证加密数据105并指示虚拟账号服务器140的存储器141中的虚拟账号(VAN)生成器142生成虚拟卡数据126。虚拟卡数据126可以包括与非接触式卡101相关联的账户的虚拟账号、有效期和/或CVV。在一些实施例中,VAN生成器142生成虚拟账号、有效期和/或CVV。在其他实施例中,VAN生成器142生成虚拟账号并选择现有的有效期和/或CVV(例如,从账号数据124)。例如,现有的有效期和/或CVV可以是非接触式卡101或与账户数据124中的账户相关联的另一张卡的有效期和/或CVV。卡数据126可以进一步包括账户持有人的姓名和与非接触式卡101相关联的一个或多个已知地址。

在至少一个实施例中,包括由VAN生成器142生成的虚拟账号的卡数据126被限制为特定商人或商人群组。虚拟账号和/或卡数据126可以进一步包括其他限制(例如,时间限制、数量限制等)。一旦生成,VAN生成器142就可以将虚拟卡数据126发送到在移动设备110上执行的账户应用151-1。VAN生成器142可以经由任何合适的方法将虚拟卡数据126提供给账户应用151-1,诸如推送通知、短信、电子邮件、一个或多个数据包等。

一旦被账户应用151-1接收到,账户应用151-1就可以例如经由自动填充服务114的应用编程接口(API)向OS 112的自动填充服务114提供虚拟卡数据126的虚拟账户号、有效期、CVV、地址。因此,账户应用151-1还包括接收虚拟卡数据126并将虚拟卡数据126提供给自动填充服务114的功能。如图1B中示出的,自动填充服务114现在存储虚拟卡数据126,包括虚拟账号、有效期和CVV。如所陈述的,虚拟卡数据126可以进一步包括账户持有人姓名、账单地址和/或送货地址。这样做允许自动填充服务114将虚拟卡数据126分别注入到网络浏览器115的表单127和其他应用116的表单129中。

图1C描绘了其中自动填充服务114将虚拟卡数据126自动填充到网络浏览器115中的表单127和其他应用116的表单129的实施例。如参考图2A-图2D更详细地描述的,自动填充服务114可以将虚拟卡数据126的每个元素自动填充到表单127、129的对应域。在至少一个实施例中,可以提示用户批准将虚拟卡数据126自动填充到表单127、129。

图2A是描绘了使非接触式卡101轻拍以生成虚拟卡数据以使用自动填充服务114来填充到示例表单中的示例实施例的示意图200。如示出的,网络浏览器115在URL 201处输出页面。URL 201处的页面包括具有表单域202-204和209的表单(例如,支付表单),其中域202对应于账号域,域203对应于有效期域,域204对应于CVV域,并且域209对应于地址域。地址域209可以是账单地址和/或送货地址。该表单可以包括为了清楚起见未描绘的附加元素。如示出的,由OS 112和/或不同的服务(如果已安装的话)输出通知205。通知205指示用户将非接触式卡101轻拍到移动设备110。在一个实施例中,用户在将非接触式卡101轻拍到移动设备110之前选择通知205。然而,在一些实施例中,不输出通知205,并且用户在没有来自通知205的指令的情况下将非接触式卡101轻拍到移动设备110。

在一个示例中,当账号域202(或另一域)接收到焦点(focus)(例如,由用户选择)时,OS 112输出通知205。为了确定域已经接收到焦点,OS 112可以分析账号域202的超文本标记语言(HTML)属性以确定账号域202已经接收到焦点。作为另一示例,OS 112在确定表单包括一个或多个支付域时输出通知205。此外,OS 112可以分析账号域202的元数据以确定该域202与账号相关联。例如,OS 112可以基于元数据确定账号域202被配置为接收16个字符作为输入。作为另一示例,元数据可以为表单域202指定类似于与账号域相关联的名字的名字(例如,“accountnumber”、“account_number”等)。作为另一个示例,表单域的元数据可以指定表单域与账号域、有效期域、CVV域、送货地址域和/或账单地址域相关联。因此,OS112可以基于自动确定出表单包括一个或多个支付域和/或基于确定出支付域已经接收到焦点来输出通知205以将非接触式卡101轻拍到移动设备110。

如所陈述的,一旦非接触式卡101被轻拍到移动设备110,则OS 112经由读卡器119(例如,经由NFC、蓝牙、RFID和/或EMV协议等)发送对非接触式卡101的通信接口107的指示。该指示可以指定生成具有加密数据的URL。如所陈述的,小应用程序103可以使用非接触式卡的数据(例如,客户标识符)和私钥104作为密码算法的输入来生成加密数据,以生成加密数据105。小应用程序103可以将加密数据105编码成与URL兼容的编码格式。小应用程序103然后可以选择URL 106并且包括编码的加密数据105作为URL 106的参数。小应用程序103可以进一步将账户应用151的一页或多页的指示作为参数添加到URL。这样做确保了通过接收URL作为输入(例如,作为在执行时被提供给账户应用151的“创建时(oncreate)”输入)来使账户应用151在执行时打开到正确的页面。然后,小应用程序103可以经由通信接口107将具有加密数据的URL发送到移动设备110。

图2B是描绘了其中移动设备110的OS 112接收具有由非接触式卡101生成的加密数据的URL的实施例的示意图210。如示出的,OS 112已经致使网络浏览器115打开指向应用服务器150的示例URL 206。在实施例中,在支付表单域202-204在其他应用116之一中的情况下,OS 112打开网络浏览器115并致使网络浏览器115访问URL 206。应用服务器150然后可以接收该请求并发起与URL 206相关联的账户应用151的传输。如所陈述的,账户应用151可以是即时应用152、渐进式网络应用153或未预先安装在移动设备110上的任何其他应用。通常,应用服务器150基于所需功能和账户应用151所执行的功能来选择账户应用151。在一些实施例中,应用服务器150基于描述利用URL 206接收到的移动设备110的属性来选择账户应用151。例如,如果移动设备110的OS 112不支持即时应用152而是支持渐进式网络应用153,则应用服务器150可以将作为渐进式网络应用153的账户应用151发送到移动设备110。描述移动设备110的其他示例属性包括检测到的安装在OS 112中的软件版本、移动设备110的网络连接的速度、移动设备110的剩余电池寿命等。因此,例如,如果移动设备110具有缓慢的网络连接和/或很少的剩余电池寿命,则应用服务器150可以选择具有可执行所需功能的最小尺寸的账户应用151。

图2C是描绘了其中下载了账户应用151的即时应用152版本并将其安装在移动设备110上的实施例的示意图220。如示出的,账户应用151打开反映出加密数据105已经被提取并且从URL 206解码的页面。账户应用151的页面基于URL 206中的参数“p=1”打开。账户应用151然后可以将提取和解码后的加密数据105发送到认证服务器120进行认证。如示出的,认证服务器120对加密数据105进行认证,并指示VAN生成器142生成虚拟卡号、有效期和CVV。VAN生成器142然后将生成的数据发送到账户应用151,该账户应用151输出URL 208,该URL 208利用支付表单重定向到先前的应用(例如,网络浏览器115和/或其他应用116)。可以使用其他图形对象来代替链接208,并且链接208的使用不应被视为限制本公开。

图2D是描绘了其中用户已经在账户应用151中选择了链接208以返回到网络浏览器115的实施例的示意图230。如示出的,自动填充服务114已经将示例数据自动填充到网络浏览器115中的表单域202-204中。更具体地,自动填充服务114已将虚拟账号自动填充到表单域202、将有效期自动填充到表单域203、将CVV自动填充到表单域204、并且将账户持有人的地址自动填充到表单域209。一旦自动填充,用户可以选择购买按钮211以处理购买的支付。有利地,数据被自动填充到表单域,而无需用户手动输入数据,并且无需专用应用自动填充要预先安装在设备110上的数据。在一些实施例中,自动填充服务114可以向用户输出在将数据自动填充到表单域202-204和209之前必须选择的通知(未图示)。

在一些实施例中,自动填充服务114检测表单域(例如表单域202-204、209)、检测具有与检测到的表单域的类型匹配的类型的通知(例如,文本消息通知)中的内容、并将从通知中解析的内容提供给键盘中的自动填充建议。这样做允许自动填充服务114自动将来自通知的数据填充到对应的表单域。

图3示出了逻辑流程300的实施例。逻辑流程300可以表示由本文描述的一个或多个实施例执行的一些或全部操作。例如,逻辑流程300可以包括一些或全部操作,以使用非接触式卡生成虚拟卡数据并使用自动填充服务114将虚拟账号自动填充到表单。实施例不限于此上下文。

如示出的,逻辑流程300在框305处开始,其中不包括已安装的账户管理应用的移动设备110输出第一应用,该第一应用包括具有支付域的支付表单。第一应用可以是包括表单127的网络浏览器115和/或包括表单129的其他应用116中的一个。支付域可以包括账号域、有效期域、CVV域、一个或多个姓名域以及一个或多个地址域(例如,账单地址、送货地址等)中的一个或多个。例如,OS 112可以分析表单域的元数据,以确定域中的一个或多个与账号、有效期、CVV、账单地址等相关联。作为另一示例,OS 112可以基于元数据确定出将域配置为接收16个字符作为输入。

在一些实施例中,用户可以轻拍网络浏览器115中的表单的支付域以给予支付域焦点之一。例如,用户可以轻拍表单的支付域以给予支付域焦点。作为另一示例,用户可以使用鼠标和/或键盘来选择表单的支付域。更一般地,可以使用任何技术来给予支付域焦点,包括以编程方式生成的焦点。例如,支付域可以基于HTML“focus()”方法接收焦点。作为另一个示例,例如基于在源代码中施加于支付域的“自动获得焦点(autofocus)”HTML属性,当加载表单时,支付域可以自动接收焦点。一旦支付域接收到焦点,账户应用113和/或OS 112就可以输出指定用户将非接触式卡101轻拍到移动设备110的通知。

在框310处,用户将非接触式卡101轻拍到移动设备110,以致使非接触式卡101生成加密数据并将其作为URL的一部分发送到应用服务器150和/或账户应用151之一。OS 112可以经由NFC读卡器119向非接触式卡101发送指定生成并作为URL的一部分发送加密数据的指示。

在框315处,非接触式卡的小应用程序103使用私钥104、输入数据(例如,客户标识符)和密码算法来生成加密数据。小应用程序103然后可以包括加密数据作为URL的参数。小应用程序103可以在将编码的加密数据作为URL的参数进行附加之前进一步对加密数据进行编码。此外,URL可以是通用链接URL,其具有指定当下载时要打开的账户应用151的一个或多个页面的标识符的参数。更进一步,URL可以标识即时应用152和/或渐进式网络应用153的首先需要下载的部分。这样做允许在应用151被下载时要打开的标识出的页面被首先下载,而稍后下载未立即打开的其他页面。

在框320处,小应用程序103可以将包括加密数据的URL发送到移动设备110。在框325处,OS 112指引网络浏览器115访问从非接触式卡101接收到的URL,以动态下载和安装(和/或执行)第二应用(例如账户应用151之一),其中第二应用是即时应用152和/或渐进式网络应用153。应用服务器150然后可以选择账户应用151中的一个或多个并将其发送到移动设备110。如所陈述的,在访问从非接触式卡101接收到的URL中,网络浏览器115可以发送描述移动设备110的信息(例如,网络浏览器115的类型的指示、网络浏览器的版本、OS 112的类型和OS 112的版本等)。因此,应用服务器150可以基于移动设备110所支持的应用的类型来选择账户应用151。此外,应用服务器150可以基于账户应用151必须被配置为执行的功能的类型来选择账户应用151。一旦接收到,OS 112就执行接收到的账户应用151。例如,OS112可以将渐进式网络应用153加载到网络浏览器115中。作为另一个示例,OS 112可以执行即时应用。不管账户应用151的类型如何,OS 112都接收来自应用服务器150的具有加密数据的URL,并将具有加密数据的URL作为输入提供给应用。

在框330处,账户应用151从URL提取加密数据,并将加密数据发送到认证服务器120的认证应用123以进行验证。如所陈述的,在一些实施例中,账户应用151可以在将加密数据发送到认证服务器120之前对加密数据进行解码。在框335处,认证应用123使用认证服务器120的存储器中的私钥来解密加密数据,以验证加密数据。在框340处,认证应用123将指示发送到VAN生成器142,该指示指定生成包括虚拟账号、有效期和CVV的卡数据。在框345处,VAN生成器142生成虚拟账号、有效期和CVV。在框350处,VAN生成器142将虚拟账号、有效期和CVV发送到移动设备110。VAN生成器142可以进一步包括账户持有人的姓名、账单地址和送货地址,其可以由VAN生成器142本地存储和/或从认证服务器120接收。

在框355处,第二应用(例如,下载的账户应用151)将接收到的数据提供给OS 112的自动填充服务114。此外,用户可以返回到第一应用(例如,网络浏览器115和/或其他应用116)。在框360处,自动填充服务然后可以将存储在自动填充服务114中的虚拟账号、有效期、CVV、姓名和地址自动填充到表单的支付域。在框365处,用户提交包括由VAN生成器142生成的卡数据的自动填充的表单。例如,表单的提交可以更新支付信息(例如,在用户的账户中)、完成购买等。有利地,表单被自动填充并且购买可以完成而无需账户管理应用(或与非接触式卡101和/或认证服务器120通信的其他应用)预先安装在设备上。

图4示出了逻辑流程400的实施例。逻辑流程400可以表示由本文描述的一个或多个实施例执行的一些或全部操作。例如,逻辑流程500可以包括由应用服务器150执行的一些或全部操作,以选择账户应用151以发送给移动设备110。实施例不限于此上下文。

如示出的,逻辑流程400在框405处开始,其中应用服务器150接收来自移动设备110的属性数据。通常,当遵循由非接触式卡101生成的URL时,网络浏览器115包括在超文本传输协议(HTTP)请求中描述移动设备110的数据。应用服务器150可以分析接收到的数据以确定例如移动设备110的类型、OS 112的类型和/或版本、网络浏览器115的类型和/或版本等。在框10处,应用服务器150基于移动设备110的属性数据来确定移动设备110是否与即时应用152和/或渐进式网络应用153兼容。例如,即时应用152可能需要特定类型和版本的OS以实现兼容性,而渐进式网络应用153可能需要特定类型和版本的OS和网络浏览器以实现兼容性。设备属性指示移动设备110是否满足这些要求。

在框415处,应用服务器150基于在框410处进行的确定来选择即时应用152和/或渐进式网络应用153中的一个或多个。例如,如果移动设备110与即时应用兼容,则应用服务器150可以选择即时应用152作为账户应用151。此外,如所陈述的,应用服务器150基于要在移动设备110上执行的所需功能(例如,提取加密数据、将加密数据发送到认证服务器、接收来自VAN生成器142的虚拟卡数据、并且将接收到的虚拟卡数据提供给自动填充服务114)来选择即时应用152和/或渐进式网络应用153中的一个或多个。在框420处,应用服务器150提供由非接触式卡101生成的URL作为用于下载在框415处所选的账户应用151的参数。在框425处,应用服务器150将所选账户应用151和URL发送到移动设备110。这样做致使所选应用被动态下载并安装在移动设备110上。

图5示出了逻辑流程500的实施例。逻辑流程500可以表示由本文描述的一个或多个实施例执行的一些或全部操作。例如,逻辑流程500可以包括由非接触式卡101执行的一些或全部操作,以生成具有加密数据108的URL。实施例不限于此上下文。

如示出的,逻辑流程500在框505处开始,其中非接触式卡的小应用程序103生成加密数据105。如所陈述的,加密数据105是基于私钥104和输入数据(例如客户标识符)的密码算法的输出。在框510处,小应用程序103根据编码格式(例如,ASCII base64)对加密数据105进行编码。在框515处,小应用程序103生成URL,该URL包括编码的加密数据和目标账户应用151的一个或多个应用页面作为参数。可以将URL定向到应用服务器150和/或账户应用151中的一个或多个。在框520处,非接触式卡101将在框515处生成的URL发送到移动设备110。在接收到URL时,OS 112致使网络浏览器115访问URL。这样做可致使账户应用151被动态下载并安装在移动设备110上。

图6示出了逻辑流程600的实施例。逻辑流程600可以表示由本文描述的一个或多个实施例执行的一些或全部操作。例如,逻辑流程600可以包括由在移动设备110上执行的账户应用151执行的一些或全部操作。实施例不限于此上下文。

如示出的,逻辑流程600在框605处开始,其中图3的第二应用(例如,账户应用151)接收包括编码的加密数据的URL作为输入。在框610处,账户应用151打开在URL中指定的账户应用151的页面。例如,账户应用151可以打开一个或多个页面,其被配置为:从URL中提取编码的加密数据、对加密数据进行解码、将加密数据发送到认证服务器、接收来自VAN生成器142的虚拟卡数据、并且将接收到的虚拟卡数据提供给自动填充服务114。如所陈述的,账户应用151可以是即时应用152和/或渐进式网络应用153。

在框615处,账户应用151例如基于URL中的参数名称从URL提取编码的加密数据。在框620处,账户应用151将加密数据解码为未编码的格式(例如,二进制)。在框625处,账户应用151将解码后的加密数据发送到认证服务器120。在框630处,账户应用151接收来自VAN生成器142的虚拟卡数据(例如,虚拟卡号、有效期、CVV、姓名、账单地址和送货地址中的一个或多个)。在框635处,账户应用151将虚拟卡数据提供给自动填充服务114。

图7示出了包括计算系统702的示例性计算架构700的实施例,该计算系统702可以适合于实施如前面描述的各种实施例。在各种实施例中,计算架构700可以包括或被实施为电子设备的一部分。在一些实施例中,计算架构700可以表示例如实施系统100的一个或多个组件的系统。在一些实施例中,计算系统702可以表示例如系统100的移动设备110、认证服务器120、虚拟账号服务器140和/或应用服务器150。实施例不限于此上下文。更一般地,计算架构700被配置为实施文本参考图1-图6描述的所有逻辑、应用、系统、方法、装置和功能。

如本申请中所使用的,术语“系统”和“组件”以及“模块”旨在指代计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件,其示例由示例性计算架构700提供。例如,组件可以是但不限于在计算机处理器上运行的进程、计算机处理器、硬盘驱动器、(光学和/或磁存储介质的)多个存储驱动器、对象、可执行文件、执行线程、程序和/或计算机。借由说明,在服务器上运行的应用和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。此外,组件可以通过各种类型的通信介质彼此通信地耦合以协调操作。协调可以涉及信息的单向或双向交换。例如,组件可以以通过通信介质传送的信号的形式来传送信息。该信息可以被实施为分配给各种信号线的信号。在这样的分配中,每个消息都是信号。然而,进一步的实施例可以可替选地采用数据消息。这样的数据消息可以跨各种连接发送。示例性连接包括并行接口、串行接口和总线接口。

计算系统702包括各种常见的计算元件,诸如一个或多个处理器、多核处理器、协同处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、计时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。然而,实施例不限于由计算系统702来实施。

如图7中示出的,计算系统702包括处理器704、系统存储器706和系统总线708。处理器704可以是各种市售计算机处理器中的任何一种,包括但不限于:

系统总线708提供用于系统组件的接口,该系统组件包括但不限于到处理器704的系统存储器706。系统总线708可以是几种类型的总线结构中的任何一种,这些总线结构可以使用各种市售总线架构中的任何一种进一步互连到存储器总线(具有或不具有存储器控制器)、外围总线和本地总线。接口适配器可以经由插槽架构连接到系统总线708。示例插槽架构可以包括但不限于加速图形端口(AGP)、卡总线、(扩展的)行业标准架构((E)ISA)、微通道架构(MCA)、NuBus、外围组件互连(扩展的)(PCI(X))、PCI Express、个人计算机存储器卡国际协会(PCMCIA)和诸如此类。

系统存储器706可以包括以一个或多个较高速度的存储器单元形式的各种类型的计算机可读存储介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器(例如,一个或多个闪速阵列)、聚合物存储器(诸如铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅-氧化硅-氮化硅-氧化硅-硅(SONOS)存储器、磁卡或光卡、设备的阵列(诸如独立磁盘冗余阵列(RAID)驱动器)、固态存储器设备(例如USB存储器)、固态驱动器(SSD)和适合存储信息的任何其他类型的存储介质。在图7中示出的实施例中,系统存储器706可以包括非易失性存储器710和/或易失性存储器712。基本输入/输出系统(BIOS)可以存储在非易失性存储器710中。

计算系统702可以包括以一个或多个较低速度的存储器单元形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)714、用于从可移动磁盘718读取或写入可移动磁盘718的磁软盘驱动器(FDD)716、以及从可移动光盘722读取或写入可移动光盘722(例如,CD-ROM或DVD)的光盘驱动器720。HDD 714、FDD 716和光盘驱动器720可以分别通过HDD接口724、FDD接口726和光盘驱动器接口728连接到系统总线708。用于外部驱动器实施方式的HDD接口724可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一项或两者。计算系统702通常被配置为实施本文参考图1-图6描述的所有逻辑、系统、方法、装置和功能。

驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块可以存储在驱动器和存储器单元710、712中,包括操作系统730、一个或多个应用程序732、其他程序模块734和程序数据736。在一个实施例中,一个或多个应用程序732、其他程序模块734和程序数据736可以包括例如系统100的各种应用和/或组件,例如小应用程序103、私钥104、URL 106、具有加密数据108的URL、操作系统112、自动填充服务114、网络浏览器115、其他应用116、认证应用123和VAN生成器142。

用户可以通过一个或多个有线/无线输入设备(例如键盘738和诸如鼠标740的指点设备)将命令和信息输入到计算系统702中。其他输入设备可以包括麦克风、红外(IR)遥控器、射频(RF)遥控器、游戏垫、触笔、读卡器、加密狗、指纹读取器、手套、绘图板、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式、电阻式等)、轨迹球、触控板、传感器、手写笔和诸如此类。这些和其他输入设备通常通过耦合到系统总线708的输入设备接口742连接到处理器704,但是可以通过其他接口连接,诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等。

监视器744或其他类型的显示设备也经由诸如视频适配器746之类的接口连接到系统总线708。监视器744可以在计算系统702的内部或外部。除了监视器744之外,计算机典型地还包括其他外围输出设备,诸如扬声器、打印机等。

计算系统702可以使用经由有线和/或无线通信到一台或多台远程计算机(诸如远程计算机748)的逻辑连接在网络环境中操作。远程计算机748可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他公共网络节点,并且典型地包括相对于计算系统702描述的许多或所有元素,尽管为简洁起见,仅示出了存储器/存储设备750。所描绘的逻辑连接包括到局域网(LAN)752和/或更大的网络(例如,广域网(WAN)754)的有线/无线连接。这样的LAN和WAN联网环境在办公室和公司中是司空见惯的,并且促进企业范围的计算机网络(诸如Intranet),所有这些都可以连接到全球通信网络(例如Internet)。在实施例中,图1的网络130是LAN 752和WAN 754中的一个或多个。

当在LAN联网环境中使用时,计算系统702通过有线和/或无线通信网络接口或适配器756连接到LAN 752。适配器756可以促进到LAN 752的有线和/或无线通信,这还可以包括布置在其上的无线接入点,用于与适配器756的无线功能进行通信。

当在WAN联网环境中使用时,计算系统702可以包括调制解调器758,或者连接到WAN 754上的通信服务器,或者具有用于在WAN 754上建立通信的其他手段,诸如借由互联网。调制解调器758可以是内部或外部的,并且可以是有线和/或无线设备,其经由输入设备接口742连接到系统总线708。在网络环境中,相对于计算系统702描绘的程序模块或其部分可以存储在远程存储器/存储设备750中。应当理解,所示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。

计算系统702可操作以使用IEEE 802系列标准与有线和无线设备或实体进行通信,诸如可操作地布置在无线通信中的无线设备(例如,IEEE 802.16空中调制技术)。这至少包括Wi-Fi(或Wireless Fidelity)、WiMax和Bluetooth

可以使用硬件元件、软件元件或两者的组合来实施各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任意组合。确定是否使用硬件元件和/或软件元件来实施实施例可以根据许多因素而变化,诸如期望的计算速率、功率水平、热容忍度、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能限制。

至少一个实施例的一个或多个方面可以通过存储在表示处理器内的各种逻辑的机器可读介质上的代表性指令来实施,当机器读取该代表性指令时致使机器制造逻辑以执行本文描述的技术。可以将这种表示(称为“IP核”)存储在有形的机器可读介质上,并提供给各种客户或制造设施,以加载到制造逻辑或处理器的制造机器中。例如,一些实施例可以使用机器可读介质或物品来实施,该机器可读介质或物品可以存储指令或指令集,如果该指令或指令集由机器执行,则其可以致使机器执行根据实施例的方法和/或操作。这样的机器可以包括例如任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器或诸如此类,并且可以使用硬件和/或软件的任何合适的组合来实施。机器可读介质或物品可以包括例如任何合适类型的存储器单元、存储器设备、存储器物品、存储器介质、存储设备、存储物品、存储介质和/或存储单元,例如存储器、可移动或不可移动介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、光盘只读存储器(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、磁光介质、可移动存储卡或磁盘、各种类型的数字多功能磁盘(DVD)、磁带、盒式磁带或诸如此类。指令可以包括任何适当类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码和诸如此类,这些代码使用任何适当的高级、低级、面向对象、可视化、编译和/或解释的编程语言实施。

为了说明和描述的目的,已经呈现了示例实施例的前述描述。并不旨在穷举本公开或将本公开限制为所公开的精确形式。根据本公开,许多修改和变化是可能的。意图是,本公开的范围不由该详细描述限制,而是由在此所附权利要求限制。要求本申请的优先权的未来提交的申请可以以不同的方式要求公开的主题,并且通常可以包括如本文以各种方式公开或以其他方式证明的一个或多个限制的任何集合。

相关技术
  • 用按需应用生成虚拟卡的虚拟号码以安全地自动填充表单
  • 虚拟卡系统及自适应虚拟卡方法
技术分类

06120113250046