使用消息和支付队列来促进支付的发送、接收和更新的制作方法

文档序号:13042178阅读:739来源:国知局
使用消息和支付队列来促进支付的发送、接收和更新的制作方法与工艺

本文描述的一个或多个实施方式总体涉及用于交换支付请求的系统和方法。更具体地,一个或多个实施方式涉及用于改进电子支付的系统和方法。



背景技术:

电子支付系统允许用户经由一种或多种类型的设备(例如桌面设备和移动设备)上的软件应用程序与其他人进行支付交易。一些电子支付系统允许用户与金融机构或金融商进行支付交易(即,个人对企业支付交易)。其他电子支付系统允许用户与电子支付系统的其他用户进行支付交易(即,个人对个人支付交易)。

理论上,传统的电子支付系统提供一种方便的用于在用户之间转移货币的方法。然而,传统的电子支付系统具有几个缺点,其通常使用户失败、困惑,并且产生令人不满意的支付过程。传统的电子支付系统的一个这样的缺点是:其通常是发送方和接收方都必须对其签名的独立系统。由于这种系统的数量和有限功能的原因,通常的情况是:发送方和接收方中的一个不是特定电子支付系统的会员。因此,发送方、接收方或二者都可能必须经历建立账户并提供敏感的财务信息以使用系统发送或接收支付的耗时过程。很多时候,用户在初次交易之后可能很少再使用该电子支付系统。

传统的电子支付系统的有限性也增加了不便。具体地,传统的电子支付系统的独立性通常需要用户打开专门只用于支付交易的独立应用程序以发送或接收支付,同时限制该单独应用程序内的用户之间的通信的量/类型。传统的电子支付系统的独立性的不便会阻碍用户使用此系统。

而且,传统的支付系统在用户可获得的信息的量方面通常也是有限的,例如支付状态信息。具体地,当支付交易开始时和当支付交易完成时,传统的系统可对用户提供更新,但是通常不会对用户提供任何其他信息。因此,传统系统的用户可能无权使用所有潜在的与支付交易相关的有用信息。

例如,许多传统的系统将给你发送一封表明你已经发送支付的邮件。然而,为了确认支付的接收,用户通常必须检查其银行账户。人们将理解,如果用户需要多次检查账户,那么检查银行账户的需求是耗时的且令人沮丧的。

其他传统的系统仅在收到支付时提供一封表示支付的邮件。这些类型的系统也提供了多种缺点。例如,在交换商品或服务时,接收方并不知道发送方是否已经发送支付直到接收到该支付为止。

因此,传统的电子支付系统和方法存在许多劣势。



技术实现要素:

本文描述的一个或多个实施方式提供了好处和/或解决了一个或多个现有技术系统和方法中的以上问题或其他问题,并且以其他方式改进了与电子支付相关的用户体验。具体地,一个或多个实施方式提供了与发消息系统集成的支付系统,该消息系统对用户之间的支付交易提供状态更新。例如,该系统和方法可接收支付交易的状态更新,并且将状态更新推送给发送方和接收方。因此,用户可及时接收与支付交易相关的更新信息。

另外,该系统和方法提供队列,以处理用户之间的消息交换和支付交易。具体地,该系统和方法可对每个用户提供消息队列和支付队列,以分别发送和接收与消息和支付交易对应的更新。用于接收并推送与消息和支付交易相关的更新的队列允许更快地储存用户之间的消息和通信。

该系统和方法可允许用户查看用于发消息应用程序的发消息线程内的消息和支付交易的更新信息。例如,当用户开始与另一用户进行支付交易时,该用户可查看与表明用户之间的发消息线程内的支付交易的消息相关的和支付交易有关的信息。因此,每个用户在交换消息的同时,可及时接收并查看用于发消息线程内的支付交易的更新。

将在以下说明书中阐述这些实施方式的额外特征和优点,并且其一部分从说明书中将是显而易见的,或者可通过这种代表性实施方式的实践而习得。可通过在所附权利要求中特别指出的仪器和组合来实现并获得这种实施方式的特征和优点。这些特征及其他特征从以下说明书和所附权利要求中将变得更充分显而易见,或者可通过如在下文中阐述的这种代表性实施方式的实践而习得。

在涉及一种方法、存储介质、系统和计算机程序产品的所附权利要求中特别公开了根据本发明的实施方式,其中,在另一权利要求类别(例如系统)中也可要求在一个权利要求类别(例如方法)中提到的任何特征。仅为了正式的原因而选择所附权利要求中的从属和返指。然而,也可要求从对任何之前的权利要求(特别是多个从属权利要求)的故意返指而产生的任何主题,使得公开权利要求及其特征的任何组合,并且不管在所附权利要求中选择的从属性如何都可要求保护。可要求的主题不仅包括如在所附权利要求中阐述的特征的组合,而且包括权利要求中的特征的任何其他组合,其中,可将权利要求中提到的每个特征与权利要求中的任何其他特征或其他特征的组合进行组合。而且,可在单独的权利要求中要求本文描述或描绘的任何实施方式和特征,和/或与本文描述或描绘的任何实施方式或特征进行任何组合,或者与所附权利要求的任何特征进行组合。

在一个根据本发明的实施方式中,一种方法包括:

在一个或多个服务器从与用户相关的第一客户端设备接收来自用户的请求,以向协作用户发送作为支付交易的部分的支付,该请求包括支付额;

由该一个或多个服务器向支付网络发送针对用户的支付凭证的对支付请求的支付额的收费请求;

在该一个或多个服务器从支付网络接收表明收费请求成功的成功收费响应;

由该一个或多个服务器响应于该成功收费响应而经由一个或多个支付队列向与用户相关的第一客户端设备和与协作用户相关的第二客户端设备推送支付发起消息;

由该一个或多个服务器经由一个或多个消息队列向第二客户端设备发送表示支付的消息用于在第二客户端设备进入用户之间的发消息线程;

在该一个或多个服务器接收支付交易的状态更新;并且

由该一个或多个服务器经由该一个或多个支付队列向第一客户端设备和第二客户端设备推送支付交易的状态更新。

在一个根据本发明的实施方式中,该方法可进一步包括:

生成用于支付交易的交易标识符;并且

使交易标识符与表示支付的消息相关。

接收支付交易的状态更新可包括:

识别与状态更新有关的交易标识符;并且

基于交易标识符确定状态更新与支付交易相关。

使交易标识符与表示支付的消息相关可包括:

生成用于消息的消息标识符;并且

将消息标识符映射至交易标识符。

支付发起消息可包括支付额、发送方id、顺序id、交易id、状态标识符和接收方id;并且

表示支付的消息可包括到支付发起消息中的支付额的链接,使得表示支付的消息显示来自支付发起消息的支付额。

在一个根据本发明的实施方式中,该方法可进一步包括,响应于支付交易的状态更新的接收,增加支付发起消息的顺序id;并且

基于客户端设备的当前顺序id确定哪个客户端设备推送支付交易的消息状态更新。

由该一个或多个服务器推送支付交易的状态更新可包括:基于接收到的支付交易的状态更新而发送对支付发起消息的任何变化。

状态更新可包括交易完成更新。

状态更新可包括交易取消更新。

在另一根据本发明的实施方式中,一种系统包括:

一个或多个服务器,其包括:

支付引擎,其用于:

从与用户相关的第一客户端设备接收来自用户的请求,以向协作用户发送作为支付交易的部分的支付,该请求包括支付额;

向支付网络发送针对用户的支付凭证的对支付额的收费请求;

在该一个或多个服务器从支付网络接收来自支付网络对支付额的成功收费响应;

发送方支付队列,其用于接收支付发起消息和对支付发起消息的更新,并且将支付发起消息和更新推送给发送方客户端设备和接收方支付队列;

发送方消息队列,其用于接收表示支付的消息且包括与支付交易相关的交易标识符,并且将表示支付的消息推送给发送方客户端设备和接收方支付队列;以及

接收方支付队列,其用于接收支付发起消息和对支付发起消息的更新,并且将支付发起消息和更新推送给接收方客户端设备和发送方支付队列;以及

接收方消息队列,其用于接收表示支付的消息且包括与支付交易相关的交易标识符,并且将表示支付的消息推送给接收方客户端设备和发送方支付队列。

支付网络可响应于成功收费通知而生成支付交易的交易标识符。

支付引擎:

可生成用于包括交易标识符的消息的消息标识符;并且

可将交易标识符映射至消息标识符。

支付发起消息可包括支付额、发送方id、顺序id、交易id、状态标识符和接收方id;并且

表示支付的消息可包括到支付发起消息中的支付额的链接,使得表示支付的消息显示来自支付发起消息的支付额。

发送方和接收方支付队列,可响应于支付交易的状态更新的接收,而增加支付发起消息的顺序id;并且

可基于客户端设备的当前顺序id确定哪个客户端设备推送支付交易的状态更新。

支付引擎:

可从支付网络接收表示支付网络已经成功完成支付交易的交易完成响应;并且

可响应于交易完成响应而向接收方支付队列推送支付交易的交易完成状态更新。

在另一也可要求的根据本发明的实施方式中,一种或多种计算机可读非瞬时存储介质包含当执行以实行根据本发明或根据任何上述实施方式的方法时可操作的软件。

在另一也可要求的根据本发明的实施方式中,一种系统包括:一个或多个处理器;以及至少一个耦接到处理器并包括可由处理器执行的指令的存储器,当执行指令以实行根据本发明或根据任何上述实施方式的方法时,处理器可操作。

在另一也可要求的根据本发明的实施方式中,当在数据处理系统上执行以实行根据本发明或根据任何上述实施方式的方法时,计算机程序产品(优选地包括计算机可读非瞬时存储介质)可操作。

附图说明

为了描述可获得本发明的以上所列举的及其它的优点和特征的方式,将参照在所附附图中示出的本发明的具体实施方式呈现以上简要地描述的本发明的更具体的描述。应注意附图不是按比例绘制的,并且贯穿附图出于说明性目的通常通过相同参考数字表示类似的结构或功能的元件。在以下的附图中,在本文中使用了加括号的文本和具有虚线框(例如,大斜线、小斜线、点划线、点)的块以示出增加本发明的实施方式的辅助特征的任选特征或操作。然而,在本发明的某些实施方式中,不应该采用这样的符号意指这些是仅有的选项或可选择的操作,和/或具有实线边框的块不为可选的。理解这些附图仅仅描述本发明的典型实施方式,因此不被视为限制其范围,通过使用附图,额外特别并且详细地描述和解释本发明,其中:

图1举例说明了根据一个或多个实施例的促进发送消息和支付的实例系统的示意图;

图2举例说明了根据一个或多个实施例的图1的系统的详细示意图;

图3a至图3f举例说明了根据一个或多个实施例的顺序流程图,该顺序流程图举例说明了作为用户之间的支付过程的一部分的交互;

图4举例说明了根据一个或多个实施例的促进使用用户特定队列来发送消息和支付的系统的示意图;

图5a至图5o举例说明了根据一个或多个实施例的用于完成支付交易的用户接口;

图6举例说明了根据一个或多个实施例的对客户端设备推送支付交易更新的方法中的一系列行动的流程图;

图7举例说明了根据一个或多个实施例的对客户端设备推送支付交易更新的另一方法中的一系列行动的流程图;

图8举例说明了根据一个或多个实施例的实例计算设备的框图;

图9举例说明了根据一个或多个实施例的社交网络系统的实例网络环境;并且

图10举例说明了根据一个或多个实施例的社交网络系统的实例社交图。

具体实施方式

本发明的实施例提供一种增加发送和接收支付的速度及可靠性的集成消息和支付系统。具体地,一个或多个实施例提供一种集成电子支付系统和电子发消息系统的集成消息和支付系统。集成消息和支付系统可允许两个或更多个用户发送和接收消息及电子支付。例如,集成消息和支付系统可允许用户经由发消息接口对协作用户发送电子支付,发消息接口也允许与协作用户交换电子消息。

通过集成电子支付系统和发消息系统,该系统可对用户提供在会话流内发送和接收电子支付的能力。因此,该系统可允许用户关于支付交易进行通信,并且不用必须打开单独的专门用于电子支付的应用程序而进行交易。该系统的一个或多个实施例所提供的在消息交换过程中无缝发送支付的增加的简易性和效率,可得到更多的使用电子支付及对电子支付的满意度。

集成消息和支付系统可提高支付交易的处理速度。具体地,集成消息和支付系统可处理用户之间的支付交易,并且使用不同队列在同一应用程序内交换消息。例如,该系统可发送和接收支付队列中的支付交易,及表示消息队列中的支付交易的消息。通过提供分开的用于处理支付和消息的队列,该系统可通过并行地处理支付和发消息信息,而在发消息应用程序内快速地处理支付交易和消息。

另外,该系统可对每个用户提供多对分开的支付/消息队列。具体地,该系统使每个用户的分开的支付队列与分开的消息队列相关联,以在发消息应用程序中发送和接收与支付交易相关联的消息。例如,该系统可使用对于特定用户来说对应的队列,来处理支付和/或消息的更新(例如支付发起、取消或修改),使得系统可保持跟踪这些更新并将这些更新以及时的方式推送给用户的设备。用于在每个用户设备更新支付/消息的用户特定队列也可改进发消息应用程序的可靠性,例如,如果用户临时失去对系统的连接。

消息队列和支付队列可各自根据顺序id来储存消息和更新。因此,消息队列和支付队列可各自包括由顺序id排序的交易历史或消息历史的一部分。可选地按近因对消息线程或支付交易进行排序,因此如果线程或交易改变,那么可通过更新顺序id而使该线程或交易移动至相应队列的顶部。因此,当出现线程或交易的变化或更新时,队列可增加更新/变化的顺序id。当客户端设备首次接收消息或支付交易确认时,客户端设备可接收顺序id。然后,在随后的某一时点,当客户端设备连接到队列时,客户端设备可提供顺序id。基于接收到的顺序id,队列可知道客户端设备已经接收到线程/交易的哪个部分。然后,队列可提供所有由于该顺序id而已经发生的变化/更新。因此,如果客户端设备将要断开且然后连接到队列,那么会重复该过程。

在一个或多个实施例中,集成消息和支付系统可识别发消息线程内的相关的支付和消息(例如,表示支付交易的消息)。具体地,系统可对支付和消息分配唯一的标识符,其允许系统映射相关的支付和消息。通过使用对应的唯一标识符来一起映射相关的支付和消息,系统可响应于接收支付的更新信息而对支付和对应消息提供更新。因此,系统可经由消息队列对接收方客户端设备发送消息,该消息通知接收方发送方已经对接收方发送支付。在支付变化的状态时,支付队列可对接收方客户端设备发送更新。接收方客户端设备可更新之前从消息队列接收到的消息。因此,系统可通知接收方何时通过消息发送支付,然后将消息的状态更新为支付变化的状态。

在一个或多个实施例中,系统可对与发消息线程内的消息相关联的支付交易提供推送通知或更新。具体地,系统可经由对应的支付队列对每个用户的客户端设备推送支付状态更新。例如,当系统接收到特殊支付交易的状态更新时(例如,指示资金成功转移的更新),系统可对发送方和接收方的每个客户端设备推送更新,不需要发送方和接收方的客户端设备向系统请求更新。因此,用户可在发消息线程内实时地观察支付状态更新。

如本文使用的,术语“消息”或“消息”指的是两个或更多个计算设备之间的任何形式的电子通信。这些消息可包括文本消息、照片、标签或其他图标、视频、语音录音、音乐、语音邮件,等等。在一个或多个实施例中,消息是实时通信或几乎实时通信的即时消息。然而,在另选实施例中,消息可指的是任何形式的电子通信,例如sms消息、电子邮件,或者社交网络帖子或评论。

另外,术语“支付请求”指的是包括支付消息的消息,其允许系统发起支付交易。例如,支付请求可包括数据包,数据包包括:支付额、发送方、接收方、支付方法、指示系统如何处理该支付方法的格式设置、离线参考,以及诸如用户对消息提供的文本的附加信息。

如本文使用的,术语“支付交易”指的是两个或更多个实体之间的任何类型的电子交易交换货币或信用。例如,支付交易可以是集成消息和支付系统的两个用户之间的金融电子交易。在另一实例中,支付交易可以是用户和金融机构或其他多人实体之间的金融电子交易。另外,支付交易可代表货币礼品、债务的支付、贷款的提供、为购买货物和/或服务而考虑的支付,或者任何其他类型的货币转移。另外,可在一种或多种货币中进行支付交易,并且基于例如汇率而转换成一种或多种额外的货币。

如本文使用的,术语“账户”或“支付凭证”可指的是用户的借记卡账户、银行账户、信用卡账户、发消息账户、礼品卡,或任何其他可从中扣钱或可向其存钱的账户形式。根据以下关于附图的公开内容,以上术语及附加术语的含义将变得更显而易见。

如本文使用的,术语“队列”指的是临时储存发送给发消息应用程序的用户及从该用户接收的数据的通信介质。例如,队列可临时储存从客户端设备接收的数据和/或将要发送给客户端设备的数据。具体地,队列可与数据库隔开并可与其通信,该数据库储存与支付交易和消息相关联的持久性数据。队列可根据支付交易或消息的对应标识符,或根据其他合适类型的储存方法,来按数据到达的顺序(例如,通过顺序id)储存新的消息数据或消息更新数据。

图1是举例说明了根据一个或多个实施例的集成发消息和支付系统100的示意图。相对于图1描述了系统100的概览。然后,相对于剩下的图提供了系统100的部件和过程的更详细的描述。

如通过图1举例说明的,系统100可允许用户102a、用户102b及直到任意数量的用户102n(都叫做“用户”)使用对应数量的客户端设备104a、104b、104n来交互。如在图1中进一步举例说明的,客户端设备可经由网络105与服务器设备108通信。另外,系统100可包括支付网络115,其经由网络105与服务器设备108通信地耦合。虽然图1举例说明了用户、客户端设备、网络105、服务器设备108和支付网络115的特殊布置,但是各种额外的布置也是可能的。例如,客户端设备104a、104b、104b可直接与服务器设备108通信,绕开网络105。

如以上简单地提到的,图1示出,用户102a和用户102b可分别使用客户端设备104a和104b来经由服务器设备108彼此通信。例如,用户102a和用户102b可交换包含文本、数字内容(例如音频、图像、视频)、位置信息和其他形式的数据及信息的电子消息。例如,用户102a可使用客户端设备104a来生成旨在提供给用户102b的消息。在生成消息之后,用户102a可使客户端设备104a将旨在提供给用户102b的消息经由网络105发送给服务器设备108。服务器设备108可将用户102b识别为预期接收方,并将消息转发给与用户102b相关联的客户端设备104b。

另外,允许用户交换电子通信,系统100可允许用户向彼此发送货币支付和从彼此接收货币支付。在一个或多个实施例中,系统100允许用户定义支付请求并将其发送给另一用户。例如,系统100可允许用户102a经由服务器设备108和支付网络115对用户102b发送支付。同样地,用户102b可接收支付通知,并且接受或拒绝支付。如将在下面更详细地说明的,服务器设备108可与支付网络115通信,以使促进用户(即,其账户)之间的支付的交易协调。

虽然系统100可促进用户102a和102b之间的支付,但是系统100也可促进大于两个用户之间的支付,例如一组用户。例如,用户102a可对用户102b、102b发送支付。在一个或多个实施例中,用户102a可在同一支付交易内对多个用户发送支付,如将在下面更详细地讨论的。而且,在一个或多个实施例中,可对一组用户提供通过系统100对其他组用户或个人用户发送支付和/或从其他组用户或个人用户接收支付的能力。

虽然图1将用户举例说明为是人,但是用户可包括其他实体,例如企业、政府,或其他实体。例如,用户102a可为了服务或产品而使用系统100对企业提供支付。例如,用户102a可经由系统100与企业通信,并最终决定从企业购买产品或服务。使用同一系统100,用户102b于是可对企业发送用于产品或服务的支付。类似地,企业可对其他企业或供应商发送支付,不管是个人还是企业实体。

如上所述,并且如图1举例说明,用户102a和102b可分别与客户端设备104a和104b交互。客户端设备的实例包括计算设备,例如移动设备(例如智能手机、平板电脑)、笔记本电脑、台式电脑,或任何其他类型的计算设备。图8和对应的描述提供了与计算设备相关的附加信息。而且,如上所述,客户端设备可通过网络105通信。在一个或多个实施例中,网络105包括互联网或万维网。然而,该网络可包括一个或多个使用各种通信技术和协议的专用网和/或公用网,如下面参考图8进一步描述的。

如以上简单地讨论的,系统100可协调在用户之间发送和接收支付。例如,用户102a可生成支付请求并将其发送给用户102b。例如,用户102a可经由客户端设备104a提供输入,以定义支付方法(例如,发送方用户102a的信用卡、借记卡、账户余额)、支付额、支付货币、支付描述,和/或各种其他支付细节。

从用户102a的角度看,例如,发送方用户102a可以与发送通信消息(例如文本)类似的方式生成并发送支付请求。例如,在一个或多个实施例中,用户102a可生成包括用户102a希望发送给用户102b的支付的支付额的支付请求。在生成支付请求之后,发送方用户102a然后可将支付请求经由服务器设备108发送给用户102b。

在一个或多个实施例中,系统100可经由支付网络115协调发送方用户102a的一个或多个账户和接收方用户102b的一个或多个账户之间的交易。例如,响应于从发送方用户102a接收支付请求,服务器设备108可传递交易信息,以使用支付网络115内的一个或多个部件处理支付。另选地,或另外地,系统100可直接维护一个或多个用户账户,因此,系统100可协调交易或交易的一部分。

如图1中举例说明的,支付网络115可包括支付网关系统118、支付处理系统120、卡网络系统122和发布银行系统124。然而,在另选的实施例中,支付网络115可包括更多或更少的部件,取决于系统100的特殊实施例。

在一个或多个实施例中,例如,系统100可与支付网络115通信,以授权并处理交易。例如,系统100可对支付网关系统118发送交易,如图1所示。一旦支付网关系统118接收交易,支付网关系统118便可将交易发送给由支付接收方用户的收单银行所使用的处理器(例如支付处理系统120)。基于支付的方法(例如发送方用户的账户),支付处理系统120可将交易发送给适当的卡网络系统122。在许多情况中,卡网络系统122然后将交易发送给发布银行系统124。

发布银行系统124批准或拒绝交易,并将决定发送回给卡网络系统122。卡网络122然后将决定发送给支付处理系统120。支付处理系统120然后可将决定转发给支付网关系统118,并且在一个或多个实施例中,支付网关系统118可维护与交易和决定相关的细节。支付处理系统120还将决定发送给系统100。

收单银行然后可根据存款额而将放款请求发送给支付处理系统120,支付处理系统120将放款请求传给适当的卡网络系统122。卡网络系统122然后将放款请求发送给发布银行系统124。发布银行系统124可将交易发布给发送方用户的账户并将资金的释放传给卡网络系统122,然后传给支付处理系统122,然后传给收单银行。

根据一个或多个实施例,在授权和/或接收用户102a和用户102b之间的支付交易中的支付之后,系统100可将资金从用户102a转移到用户102b。具体地,系统100可促进存款以支付到用户102b的支付账户(例如借方)中的交易。例如,系统100可促进转账以将资金存入用户102b的借记账户中(例如,使用自动清算所(ach)、eft或其他借记卡转账方法)。客户端设备104a可根据对应的支付方法来格式化支付请求。

图2举例说明了举例说明系统100的附加细节的示意图。如图所示,系统100可包括客户端设备104a、104b、服务器设备108和支付网络115。通常,系统100可允许客户端设备104a的用户将支付发送给客户端设备104b的接收方或者从该接收方接收支付。另外,系统可允许客户端设备104a的用户与客户端设备104b的用户交换消息。

如图所示,系统100在客户端设备104a、104b和服务器设备108上可包括多种部件。例如,图2举例说明,客户端设备104a、104b可各自包括带有多种部件的客户端应用程序202(例如发消息应用程序),服务器设备108可包括带有多种部件的网络应用程序204、支付引擎206和队列管理器246。客户端应用程序202、网络应用程序204和支付引擎206的部件可一起工作,以允许用户发送支付、接收支付和交换消息,如下面更详细地描述的。

如图所示,客户端应用程序202可包括用户接口管理器208、用户输入检测器210、发消息处理器212、消息分析器214、位置检测器216、支付请求生成器218和数据管理器220。图2举例说明,网络应用程序204可包括通信管理器230、状态管理器232、消息数据库234、档案数据库236和风险计算器238。如下所述,网络应用程序204也可以可选地包括社交图250,其包括节点信息252和边线信息254。图2还举例说明,支付引擎206可包括支付管理器240、交易数据库242和账户管理器244。部件208-220、230-246、252和254均可使用任何合适的通信技术而彼此通信。将认识到,虽然部件208-220、230-246、252和254在图2中示出为是分开的,但是部件208-220、230-246、252和254中的任何部件都可组合成更少的部件,例如组合成单个设备或模块,或者分成更多的部件,像是可用作特殊的实施例。虽然图2描述了作为客户端应用程序202的一部分的某些部件和作为网络应用程序204的一部分的其他部件,但是本发明不限于此。在另选实施例中,一个或多个示出为客户端应用程序202的一部分的部件可以是网络应用程序204的一部分,或者反过来。类似地,一个或多个示出为网络应用程序204的一部分的部件可以是支付引擎206的一部分,或者反过来。

部件208-220、230-246、252和254可包括软件、硬件,或二者都包括。例如,部件208-220、230-246、252和254可包括储存在非瞬时计算机可读存储介质上且可由客户端设备200a、200b或服务器设备108的至少一个处理器执行的计算机指令。当由该至少一个处理器执行时,计算机可执行的指令可使客户端设备104a、104b或服务器设备108执行方法并且如本文描述地进行处理。另选地,部件208-220、230-246、252和254可包括硬件,例如执行某一功能或一组功能的专用处理设备。另外地或另选地,部件208-220、230-246、252和254可包括计算机可执行的指令和硬件的组合。

在一个或多个实施例中,客户端应用程序202可以是安装在客户端设备104a、104b中的一个上的原生应用程序。例如,客户端应用程序202可以是安装并运行在移动设备上的移动应用程序,例如智能手机或平板电脑。另选地,客户端应用程序202可以是桌面应用程序、小工具,或其他形式的原生计算机程序。另选地,客户端应用程序202可以是客户端设备访问的远程应用程序。例如,客户端应用程序202可以是在客户端设备的网页浏览器内执行的网页应用程序。

如上所述,且如图2所示,客户端应用程序202可包括用户接口管理器208。用户接口管理器208可提供、管理和/或控制图形用户接口(或简单地叫做“用户接口”),其允许用户生成、查看和发送消息,以及发送支付。例如,用户接口管理器208可提供促进消息的生成的用户接口,例如即时消息。同样地,用户接口管理器208可提供显示从其他用户接收的消息的用户接口。

更具体地,用户接口管理器208可促进用户接口的显示(例如,通过与客户端设备104a、104b相关联的显示设备)。例如,用户接口可由多个允许用户生成、发送和接收消息或支付的图形部件、对象和/或元件组成。更具体地,用户接口管理器208可指导客户端设备104a、104b显示一组使得用户能够查看发消息线程的图形部件、对象和/或元件。

另外,用户接口管理器208可指导客户端设备104a、104b显示一个或多个促进用户输入以生成并发送消息的图形对象或元件。举例说明,用户接口管理器208可提供允许用户对客户端应用程序202提供用户输入的用户接口。例如,用户接口管理器208可提供一个或多个允许用户将一种或多种类型的内容输入到消息中的用户接口。如本文使用的,“内容”指的是任何将包括为消息的一部分的数据或信息。例如,术语“内容”在本文中将用来通常描述文本、图像、数字媒体、文件、位置信息、支付消息和任何其他可包括为消息的一部分的数据。

如以上讨论的,可包括在消息中的内容的一个实例是从发送方用户到接收方用户的支付。在一个或多个实施例中,用户接口管理器208可提供用户接口,以允许用户简单地且有效地定义支付并将其发送给一个或多个其他用户。例如,用户接口管理器208可提供一个或多个输入字段和/或一个或多个用户可选择的元件,用户可与该输入字段或元件交互以生成并发送支付。

除了以上内容以外,用户接口管理器208可从客户端应用程序202的一个或多个部件接收指令或通信,以显示更新消息信息、支付的更新状态,和/或更新的可用动作。用户接口管理器208可基于特殊选项在交易过程内的特殊时间点是否可用而更新可用选项。用户接口管理器208可增加、移除和/或更新发送方和/或接收方状态消息内的各种其他可选择的动作,如将在下面讨论的。

用户接口管理器208可促进输入将包括在电子通信或消息中的文本或其他数据。例如,用户接口管理器208可提供包括键盘的用户接口。用户可使用一个或多个触摸手势而与键盘交互,以选择将包括在电子通信中的文本。例如,用户可使用键盘来输入消息,以补充和/或描述电子通信中的一个或多个其他内容项目。除了文本以外,用户接口(包括键盘接口)可促进输入各种其他字符、符号、图标,或其他字符信息。

如在图2中进一步举例说明的,客户端应用程序202可包括用户输入检测器210。在一个或多个实施例中,用户输入检测器210可以任何合适的方式检测、接收,和/或促进用户输入。在一些实例中,用户输入检测器210可相对于用户接口检测一个或多个用户交互。如本文提到的,“用户交互”表示通过一个或多个输入设备从用户接收的单次交互,或交互的组合。

例如,用户输入检测器210可检测来自键盘、鼠标、触摸板、触摸屏和/或任何其他输入设备的用户交互。在客户端设备104a、104b包括触摸屏的事件中,用户输入检测器210可检测一个或多个来自用户的、形成用户交互的触摸手势(例如,滑动手势、点击手势、收缩手势,或者反向收缩手势)。在一些实例中,用户可相对于用户接口的一个或多个图形对象或图形元件提供触摸手势,和/或在该图形对象或图形元件处指导触摸手势。

另外地或另选地,用户输入检测器210可接收代表用户交互的数据。例如,用户输入检测器210可从用户接收一个或多个用户可配置的参数、一个或多个来自用户的命令,和/或任何其他合适的用户输入。用户输入检测器210可从客户端应用程序202的一个或多个部件、从客户端设备104a、104b上的存储器,或者从一个或多个远程位置(例如网络应用程序204)接收输入数据。

客户端应用程序202可响应于检测用户输入和/或接收其他数据的用户输入检测器210而执行一个或多个功能。通常,用户可通过提供一个或多个用户输入检测器210可检测的用户输入,来控制客户端应用程序202、在客户端应用程序202内导航,及以其他方式实用客户端应用程序202。例如,响应于检测用户输入的用户输入检测器210,客户端应用程序202的一个或多个部件允许用户选择消息的接收方、生成消息、选择包括在消息中的内容,和/或将消息发送给接收方。另外,响应于检测用户输入的用户输入检测器210,客户端应用程序202的一个或多个部件允许用户通过一个或多个用户接口来导航,以查看接收到的消息、联系人,等等。

在一个或多个实施例中,响应于检测到一个或多个用户输入的用户输入检测器210,客户端应用程序202可允许用户生成支付,以发送给一个或多个其他用户。例如,希望发送支付的用户可与位于用户接口内的菜单上的支付元件交互。在检测到用户与支付元件的交互时,用户输入检测器210可使用户接口管理器208提供用于生成支付的用户接口。因此,响应于检测到一个或多个用户输入的用户输入检测器210,客户端应用程序202可允许用户生成定义将发送给另一用户的支付的定制支付,如将在下面进一步描述的。

如在图2中进一步举例说明的,客户端应用程序202可包括消息处理器210,其管理提供给客户端应用程序202或从客户端应用程序202发送的消息。例如,消息处理器210可与用户接口管理器208和用户输入检测器210交互,以使用客户端应用程序202来协调消息的发送和接收。消息处理器210可在多个参与者中的电子发消息会话的过程内指导对网络应用程序204发送消息和从网络应用程序204接收消息。消息处理器210可组织进入和离开的消息,并指导用户接口管理器208显示消息。

在一个或多个实施例中,消息处理器210可促进经由客户端应用程序202接收和发送数据。具体地,消息处理器210可促进发送和接收消息。例如,消息处理器210可封装将包括在消息中的内容,并使消息格式化成任何必要的能够通过一个或多个通信信道发送且使用适当的通信协议的形式,如本文描述的。同样地,消息处理器210可处理客户端设备204从其他用户接收的消息。

除了对客户端应用程序202提供通信功能以外,消息处理器210可提供对消息数据的访问。例如,消息处理器210可访问代表联系人列表或者一组或多组联系人的数据,以包括消息的接收方。举例说明,消息处理器210可获得代表联系人列表的数据并将其提供给用户接口管理器208,以允许用户搜索并浏览联系人列表,并最终选择个人联系人或联系人组,以包括作为消息的接收方。在一个或多个实施例中,社交网络系统可维护远程联系人列表数据(例如“朋友列表”),并且消息处理器210可访问社交网络系统上的联系人列表数据,以在客户端应用程序202内使用。

消息处理器210还可提供对其他本地或远程数据的访问,客户端应用程序202可使用该本地或远程数据来生成、发送和接收消息。例如,消息处理器210可获得对文件、图像、音频、视频和其他用户可包括在消息中的内容的访问。而且,消息处理器210可提供对发送方客户端设备204的一个或多个功能的访问,以对用户提供捕获或生成包括在消息内的内容的能力。例如,消息处理器210可激活照相机、麦克风,或其他允许用户捕获包括在消息中的内容的功能。

另外,消息处理器210可促进支付的发送。具体地,图2举例说明,客户端应用程序202可包括支付请求生成器218,其可生成消息处理器210可发送给网络应用程序204以发起支付处理/交易的支付请求。例如,在发送方在用户接口上选择支付元件时,支付请求生成器218可生成包括从发送方接收到的支付消息的数据包。支付请求可包括将作为支付交易的一部分而发送的金额的指示,以及任何允许网络应用程序执行支付交易所必需的信息的指示。根据一个或多个实施例,消息处理器210可与网络应用程序204直接通信和/或经由队列管理器246通信,如下面更详细地描述的。

在一个或多个实施例中,支付请求生成器218可生成数据包,其包括支付额、一个或多个发送方标识符、一个或多个接收方标识符、一个或多个支付方法或发送方账户信息、授权信息、货币信息、消息或支付描述,和/或任何其他可能有助于促进从发送方到接收方的支付的数据。另选地,支付请求可识别接收方、支付额,以及允许发送方用户的客户端设备104a解决所发送和接收的数据中的不一致的离线参考。支付请求生成器218可将支付请求(例如,包括支付消息的数据包)传给消息处理器210,以发送给网络应用程序204。

支付请求生成器218还可从多种来源获得支付消息。例如,支付请求生成器218可经由用户输入检测器210而直接从发送方获得支付消息。另外地或另选地,支付请求生成器可获得对由数据管理器220在客户端设备104a、104b上维护的支付消息的访问。例如,客户端应用程序202可允许发送方输入并保存多种支付方法和/或识别默认支付方法、默认货币,并以其他方式指定其他与发送和/或接收支付相关的用户偏好。

支付请求生成器218还可基于经由客户端应用程序202从用户的输入而促进消息的格式化。具体地,支付请求生成器218可促进根据对应的支付方法而格式化支付请求。例如,支付请求生成器218可确定,用户已经输入在借记交易中支付协作用户的请求并相应地对协作用户格式化该支付请求。在一个或多个实例中,支付请求生成器218可确定,应基于与支付交易相关联的支付消息或支付凭证或基于发送方用户具体的选择,而在同日处理中格式化支付请求。

在一个或多个实施例中,支付请求生成器218可访问并提供支付请求内的代币。代币可参照网络应用程序204所储存的支付凭证。例如,支付请求生成器218可取回包括在支付请求中或随着支付请求一起的代币,其核实发送方和/或发送方客户端设备104a是被授权的,以使用由网络应用程序204储存的支付凭证来进行支付。

如上所述,客户端应用程序202可进一步包括消息分析器214。消息分析器214可为了潜在的事件而分析从客户端应用程序202发送和由客户端应用程序202接收的消息。在一个或多个实施例中,消息分析器214可基于用户之间交换的电子消息中的上下文内容,而从所交换的消息中推断该事件。具体地,消息分析器214可识别某些指示社交网络事件或支付机会的短语或字符串。例如,字符串可包括来自两个或更多个用户之间的发消息线程中的电子消息的预定字符串。

客户端应用程序202可进一步包括位置检测器216。位置检测器216可基于来自客户端设备104a、104b的gps信息、手机发射塔三角定位、接收到的wifi信号强度指示、wifi无线指纹、射频识别、近场通信,通过分析消息,或者基于来自其他来源的数据,而访问或识别客户端设备104a、104b的位置。位置检测器216然后可对消息分析器214或网络应用程序204提供客户端设备104a、104b的位置。另外,位置检测器216可从网络应用程序204接收其他客户端设备的位置的指示,以将其提供给消息分析器214。

如以上讨论的,客户端设备104a可包括数据管理器220,如图2中举例说明的。数据管理器220可维护代表与在一个用户和一个或多个其他用户之间生成、发送和接收消息结合使用的数据的消息数据。例如,消息数据可包括消息日志、联系人列表、内容、过往通信,以及其他类似类型的客户端应用程序202可与对用户提供使用客户端应用程序202通信的能力结合使用的数据。

数据管理器220还可维护代表用来生成支付请求的信息的支付数据。例如,支付数据可包括支付方法数据(即,凭证)和/或账户数据(例如,银行卡或信用卡账户数据)。而且,支付数据可包括支付偏好(例如,默认支付方法)。通常,支付数据可包括任何支付请求生成器218可与生成支付结合使用的数据。

如以上简单提到的,除了客户端设备104a、104b以外,系统100可进一步包括整体地或部分地在服务器设备108上执行的网络应用程序204。在本发明的一个或多个实施例中,网络应用程序204包括社交网络系统(例如但不限于facebook(tm)),但是在其他实施例中,网络应用程序204可包括另一类型的应用程序,包括但不限于电子邮件应用程序、搜索引擎应用程序、银行应用程序,或任意数量的其他利用用户账户的应用程序类型。

在一个或多个网络应用程序204包括社交网络系统的实施例中,网络应用程序204可包括用于代表和分析多个用户和概念的社交图250。社交图250的节点存储252可储存节点信息,其包括用户节点、概念节点、交易节点,以及项目节点。社交图250的边线存储254可储存边线信息,其包括节点之间的关系和/或出现在社交网络系统内的动作。下面相对于图10提供进一步的与社交网络系统、社交图、边线和节点相关的细节。

通信管理器230可处理从客户端应用程序202接收到的消息。例如,通信管理器230可与客户端应用程序202的消息处理器206交互。通信管理器230可在电子发消息线程中用作在用户中来回发送消息的目录。通信管理器230可从客户端应用程序202接收消息,检测消息的预期接收方,并将消息发送给与预期接收方相关联的客户端应用程序202(或设备)。将理解,通信管理器230可将用于接收方的消息引导给多个与接收方相关联的客户端设备(即,每个用户已经在其上安装一个版本的客户端应用程序202的设备)。

另外,通信管理器230也可基于由目标通信设备或类型使用的发消息协议,而再次格式化或以其他方式修改消息的内容或格式。同样地,在一个或多个实施例中,系统100可允许使用不同通信平台的参与者交换消息。例如,通信管理器230可接收第一协议(sms、im、xmpp、apns,等等)中的消息,将消息重新格式化成第二协议,并将重新格式化的消息发送给预期接收方。

状态管理器232可跟踪客户端应用程序202和/或客户端设备104a、104b的用户的状态。例如,当用户在客户端应用程序202上活动时,当与用户或用户账户相关联的客户端设备104a、104b在线或活动时,状态管理器232可识别何时将用户登记到客户端应用程序202中。状态管理器232可将指示(例如推送通知)发送给客户端应用程序202,以对客户端应用程序202通知用户、设备、消息或支付的状态。用户接口管理器208可基于从状态管理器232接收的指示,而增加、修改或以其他方式改变或更新状态通知。例如,状态管理器232可对客户端应用程序202发送这样的指示,其表明另一用户已经访问消息、接收支付、发送支付,表明另一用户是活动的,表明协作用户的设备或设备类型在(例如移动网)上是活动的等等。用户接口管理器208接着更新用户接口以对用户通知状态。

网络应用程序204还可包括消息数据库234。消息数据库234可维护代表来自多个参与者中的电子发消息会话的消息的内容的消息数据。消息数据库234可维护代表状态管理器232跟踪的以上提到的信息的状态数据。因此,消息数据库234可提供发消息线程的过档,网络应用程序204可将其按需提供给用户,或者一旦用户使用新的计算设备录入客户端应用程序202中而提供给用户。

如之前提到的,服务器设备108可包括具有支付管理器240的支付引擎206。图2的支付管理器240可集成支付请求的发送和接收并发起支付交易,并且可使用一个或多个应用程序编程接口(api)。例如,在通信管理器230接收到支付请求时,通信管理器230可将任何支付细节发送给支付管理器240。支付管理器240然后可使用从支付请求取回的支付细节,以使用支付网络115发起支付交易。

根据一个或多个实施例,系统100可维护与网络应用程序204分开的支付引擎206。例如,系统100可执行与支付引擎206相关联的支付处理,与网络应用程序204的至少一部分功能分开(例如,使用发消息数据库来恢复)。举例说明,系统100可在第一组一个或多个服务器上执行支付引擎206的功能,并在第二组一个或多个服务器上执行网络应用程序204的功能。在分开的服务器上执行支付引擎206和网络应用程序的功能可允许系统100确保与网络应用程序204隔开地维护与用户相关联的至少一部分金融信息,以遵从支付卡行业(pci)标准。除了本文描述的那些以外的服务器和/或软件的另选配置也可允许系统100遵从pci标准。

支付管理器240可协调对应于在支付请求中定义的支付的交易。如以上大致说明的,支付管理器240可经由支付网络115而协调对应于支付请求的交易,监测交易的状态,并且提供与交易相关的状态信息。更具体地,支付网络115可授权交易、为交易提供资金,和/或安排个人交易或批量交易,如以上参考图1描述的。在一个或多个实施例中,支付管理器240可使用一个或多个应用程序编程接口(api)来与支付网络115通信相关信息。

在另外的或另选的实施例中,客户端设备104a上的客户端应用程序202可使客户端设备104a将支付请求和/或与支付请求相关联的消息并行地发送给网络应用程序204和支付引擎206。具体地,当客户端应用程序202接收用户对协作用户支付一定金额的选择时,客户端应用程序202可使客户端设备104a对第一网络应用程序204和对支付引擎206发送支付请求。因此,在支付引擎206也处理与支付请求相关联的支付交易的同时,网络应用程序204可处理支付请求。在另选的实施例中,客户端设备104a可对一个或多个与网络应用程序204相关联的服务器发送消息,然后该服务器可将消息转发给支付引擎206,或者反过来。

为了完成交易,支付管理器240可访问或获得接收方的支付凭证(例如,存款账户信息、借记卡、信用卡、礼品卡、电子钱包)。支付管理器240可使用多种方法来获得接收方的支付凭证(例如,用于接收基本上即时的付款的借记卡)。在一个实例实施例中,接收方可通过网络应用程序204来登记一个或多个存款账户或其他支付凭证。在用户登记存款账户或其他支付凭证时,用户档案数据库236可维护支付凭证。

在支付管理器240接收到支付消息之后,支付管理器240可识别接收方。支付管理器240可查找用户档案数据库236中的接收方,以判断接收方是否已经登记支付凭证。此时,支付管理器240可发起交易。

在接收方的用户档案不包括支付凭证的事件中,或者如果接收方的用户档案不包括支持同日支付的支付凭证,那么支付管理器240可指导通信管理器230对接收方发送促使接收方提供支付凭证的消息。该消息可通过提供一个或多个允许接收方提供支付凭证细节的交互字段,而促使接收方登记支付凭证。另外地,或另选地,在确定接收方没有所登记的支付凭证时,支付管理器240可生成临时存款账户。具体地,支付管理器240可生成账号并使账号与接收方的用户档案相关联。在一个或多个实施例中,接收方可能已经具有临时账户,因此,支付管理器240可使用之前生成的临时账户来完成交易。具体地,临时账户允许支付管理器240立即继续,以从发送方或接收方的角度来说不延迟支付过程地处理交易。

账户管理器244可与网络应用程序结合地管理一个或多个临时账户。例如,在支付完成时,支付管理器240可将支付额存入临时账户。在一个或多个实施例中,支付管理器240可使通信管理器230对接收方发送这样的消息,其表示支付管理器240已经将钱转移到接收方的支付凭证。例如,如果接收方已经登记借记账户,那么支付管理器240可在基本上即时的支付交易中将钱转移到所登记的借记账户。另选地,如果接收方不希望登记借记账户,那么消息系统可对接收方提供从临时账户收回钱的指令。

除了经由支付网络115协调交易以外,支付管理器240还可协调关于一个或多个系统用户账户的交易。在一个或多个实施例中,网络应用程序204可支持用户现金账户,例如礼品卡账户、现金卡账户,或类似类型的用户账户。发送方可将发送方的用户现金账户规定为支付方法,同样地,接收方可将接收方的用户现金账户设置为所登记的存款账户。因此,在至少一个或多个实施例中,可在网络应用程序204内处理整个交易,或基本上整个交易。

在一个或多个实施例中,系统100还可允许接收方将借记卡账户登记为支付凭证以接收资金。为了将资金发送给用户的借记卡,支付管理器240可发送将支付额记入接收方的借记卡账户的请求。在一个或多个实施例中,该请求可包括无参照的退款请求。无参照的退款请求是不附于之前的与用户的借记卡账户的放款交易的退款请求。处理无参照的退款请求会导致对接收方借记卡账户应用退款请求的量的信用。例如,在接收方在借记卡账户上具有负平衡的事件中,可将该请求额应用于负平衡。同样地,在接收方在借记卡账户上具有零平衡的事件中,请求额将导致接收方可花费的借记卡账户正平衡。另选地,该请求可包括对应于特殊卡服务的收费请求,其允许系统100经由用于处理同日支付的专有路由方法来转账。

图2的支付管理器240可关于协调从通信管理器230接收的信息而执行多种功能,以请求并接受支付请求,并协调支付处理。例如,支付管理器240可生成并储存支付凭证。更具体地,用户(例如发送方和接收方)可能已经具有带有网络应用程序的账户,从而已经是登记过的用户,或者仍可建立账户。在一个实施例中,至少一部分用户也可以是社交网络系统的会员,并且已经具有标识符(id)和与社交网络账户相关联的用户档案,当使用系统100发消息时,也使用该社交网络账户。另选地,其他用户可能不是社交网络系统的会员,并且可生成账户以变成系统100的登记会员。在此实例中,支付管理器240可从这些用户(经由客户端应用程序202)接收数据并生成账户,然后生成在后面的支付处理过程中将提到的唯一id和用于这些用户的用户支付档案。在一些情况中,支付管理器240也可增加之前的社交网络用户的用户档案,以包括可能尚无的支付档案特征。

在建立或增加账户中,用户可提交一个或多个支付凭证,例如信用卡、借记卡、存款账户或其他银行账户、礼品卡账户、商店信用账户,等等。当增加支付方法时,系统100可请求用户提交卡号和/或账号、失效日、安全码、转账号或路由识别号,以及用于转账的银行信息。用户还可生成授权码,例如个人识别号(pin),或者使用信用卡的安全码,例如,当仅提供一种支付方法时,或者提供一些其他授权码。用户也可选择默认支付方法。

因此,用户档案数据库236所储存的用户支付档案,可包括对每个登记用户(作为社交网络用户和/或作为发消息用户)唯一生成的用户(或组)id。用户档案数据库236可对网络应用程序204的用户的支付凭证提供存储。例如,用户可通过网络应用程序204生成“账户”,其允许用户对网络应用程序204提供支付消息。网络应用程序204然后可将该支付消息保存在用户档案数据库236中。在一个或多个实施例中,用户档案数据库236可储存一个或多个与用户相关的信息:名字、中间名、姓氏、支付卡号(例如,信用卡、借记卡)、支付卡的失效日(年和/或月)、支付卡的卡安全码(例如,卡验证值(cvv或cvv2))、与支付卡相关联的账单地址(包括街名、门牌号、城市、州或省、邮政编码、国家,等等)、与支付卡相关联的电话号码、一个或多个收货地址(包括与账单地址类似的字段)。当支付卡包括借记卡时,档案储存模块也可储存借记卡的个人识别号(pin)。在网络应用程序204包括社交网络系统的实施例中,储存在用户档案数据库236中的支付消息可与节点存储252的代表用户的节点相关联。

在一个或多个附加实施例中,支付管理器240可与风险计算器238通信,以确定与发送方、接收方和/或特殊支付交易相关联的风险。具体地,风险计算器238可基于与发送方/接收方相关联的信息来判断发送方/接收方是否是行骗者,以防止欺诈性支付交易。例如,风险计算器238可连同网络应用程序基于与发送方/接收方相关联的活动或信息,来确定欺诈活动的可能性。当处理按揭交易时,判断包含在支付交易中的与用户相关联的风险会特别有用。

例如,在一个或多个实施例中,网络应用程序204可判断与发送方或接收方相关联的风险是否满足预定阈值。具体地,网络应用程序204可基于“真实性”来源而判断发送方或接收方是否是行骗者(例如,诈骗账户或假充真人的软件)。例如,如果与发送方相关联的风险低于预定阈值(即,高风险水平),那么网络应用程序204可确定发送方可能是行骗者并且通知支付引擎206发送方是行骗者。如果发送方具有高风险水平,那么支付引擎206可停止发送方和接收方之间的支付交易。类似地,如果与接收方相关联的风险低于预定阈值,那么网络应用程序204可确定接收方可能是行骗者并且通知支付引擎206接收方是行骗者。

举例说明,网络应用程序204可基于以下信息来确定用户的真实性来源:用户是否已经由一个或多个协作用户在发布到社交网络系统的媒体中加标签;用户的协作用户是否识别用户之前的一个或多个生日(即,祝愿用户“生日快乐”)、经由网络应用程序204在用户和用户的协作用户之间交换的消息的数量或体积;用户的协作用户是否已经表明同意或巩固(即,“喜欢”)用户进行的发布;和/或用户的协作用户是否已经对用户的发布进行评论。附加地或另选地,网络应用程序204可判断用户在预定量的时间内是否已经是社交网络系统的会员,是否在预先核准的原始位置中生活,和目标位置是否具有预定水平的社交网络活动,是否具有阈值真实性分值,等等。在另一实例中,网络应用程序204可基于用户和协作用户之间的关系来确定用户的风险,包括用户和协作用户是否是社交网络系统上的朋友,是否在一定数量的分离度内,等等。另外,网络应用程序204可使用与支付交易相关的信息来判断支付交易是否是欺诈性的或错误的,例如基于支付额(例如,支付额包括不切实际的量)。

在附加的实施例中,在确定与发送方和/或接收方相关联的风险之后,网络应用程序204可执行一个或多个与该风险相关联的动作。具体地,网络应用程序204可执行允许网络应用程序204验证用户的身份的动作。例如,网络应用程序204可从用户请求表明用户是用户意图将是的人的信息。举例说明,网络应用程序204可请求密码输入、用户的登记支付凭证的数字号码、个人安全问题、视觉识别(例如照片)的上传,或者其他基于风险水平或用户的真实性分值的识别机制。

在另外的或另选的实施例中,网络应用程序204可响应于确定用户的风险水平,相对于支付请求或支付交易自动地执行一个或多个动作。具体地,网络应用程序204可执行影响支付请求或发送方和接收方之间的对应支付交易的动作,不用从用户请求附加信息。例如,网络应用程序204可允许支付交易、保持等待(例如,由用户的支付凭证的银行)查看的支付交易、阻止支付交易、停用用户账户,或者不使用中间账户而处理交易(例如,直接从发送方的账户到接收方的账户)。

在任何情况下,在从发送方接收支付请求时,支付管理器240可检测发送方的用户(或组)id,并取回用户(或实体)的支付档案。支付管理器240然后可生成交易包(例如,支付无人机),其包括与支付额、发送方和接收方相关联的交易id。交易id可帮助系统100跟踪在临时或中间账户中的系统内的从发送方的账户到接收方的账户的钱。在一些情况中,系统100可提供对交易id的用户访问,以跟踪钱在对应支付交易过程中的移动。

交易包还可包括默认支付方法和相关信息,除非发送方选择通过另选的支付方法对接收方发送支付,在该情况中,交易包可包括用于另选支付方法的支付消息。支付管理器240然后可将交易包发送给支付网络115,以发起支付授权过程。

支付管理器240可执行各种其他附加步骤和方法,以有效地管理支付过程。在一个或多个实施例中,例如,在接收支付请求时,支付管理器240可生成交易标识符(或简单地叫做“交易id”),并且使交易标识符与支付请求和/或支付请求内的支付消息相关联。例如,在生成交易id时,支付管理器240可将交易id和支付消息发送给交易数据库242。交易数据库242可包括数据表或类似的数据矩阵,其根据交易id来储存交易信息。

图2的交易数据库242可对以下信息提供存储:每个交易(例如是图形对象的形式)、未遂或完成状态、交易id、日期、交易量、所使用的支付方法、在发送方和接收方之间交换的与交易相关的关联消息,以及任何其他在交易上收集的信息。通过此信息,支付管理器240可在请求时对用户提供一个或多个交易的总结,作为所请求的支付、所拒绝的支付和所完成的支付的历史。

在一个或多个实施例中,在使交易id与特殊支付请求相关联之后,可在系统100内的基本上所有的通信内包括或嵌入与特殊支付相关的交易id。同样地,交易id允许支付管理器240以有组织的方式管理并处理大量支付。例如,支付管理器240可包括将交易id包含在任何发送给客户端设备104a、104b的信息中的指令。作为回报,发消息处理器210在任何从客户端设备104a、104b发送的信息中也可包括交易id,以允许支付管理器240有效地且可靠地识别该信息所对应的特殊交易。

在一个或多个实施例中,可使交易id与一个或多个发送方标识符、接收方标识符、线程标识符(例如,识别发送方和接收方之间的发信息线程)、支付额、支付方法(例如发送方账户)、存款方法(例如接收方账户)、交易历史、当前交易状态以及其他交易信息相关联。在一个或多个实施例中,交易数据库242将交易信息保持在一个或多个图形对象的形式,通过任何关于交易的更新或动作来更新该图形对象。

而且,如之前提到的,支付引擎206的账户管理器244可维护一个或多个中间账户或临时账户。临时账户可用作一种类型的“热账户”,其在从发送方的账户清算或实际提供支付之前,提供存入接收方账户。例如,通过一些支付方法,支付的提供可花费几小时或甚至几天以将钱从发送方的账户记入借方。然而,支付授权请求可验证并储备资金以满足支付。因此,在从支付授权请求接收成功响应时,支付管理器240可从临时账户提供支付额,以使支付更短时间地到达接收方的账户中。一旦从发送方的账户提供支付,便更新临时账户的支付额。

如之前提到的,服务器设备108可包括管理用户102a、102b、102n的队列的队列管理器246。具体地,队列管理器246可管理用户102a、102b、102n各自的支付队列和消息队列,以促进用户102a、102b、102n之间的通信及与网络应用程序204和支付引擎206的通信。队列管理器246可包括指令和/或硬件的逻辑或组,其控制队列如何接收和处理消息并进行更新,如下所述。具体地,队列管理器246可操作以确定队列的输入序号。可通过增加队列的最高当前序号来确定输入序号。队列管理器246可将输入序号分配给输入更新。队列管理器246可对队列增加该输入更新。而且,队列管理器246可对客户端设备的与输入更新相关联的当前更新状态确定当前序号。然后,队列管理器246可确定,输入的接收方序号大于客户端设备的当前更新状态的当前序号。作为响应,队列管理器246可将客户端设备的当前更新状态的当前序号更新为至少是输入的接收方序号。队列管理器246可基于输入序号大于客户端设备处的当前序号的判断,而将输入更新发送给客户端设备。

队列管理器246可进一步操作以对队列增加输入更新,并确定发消息终点以接收输入更新。队列管理器246可取回一个或多个与发消息终点相关联的发消息终点参数,并且根据该一个或多个发消息终点参数,从输入更新中生成定制输入更新。队列管理器246可将定制输入更新发送给接收方发消息。这些参数可包括客户端设备的当前顺序id、语言,以及由客户端设备的用户设置的偏好。

是网络应用程序204、支付引擎206还是队列管理器246首先从客户端设备接收数据,可取决于数据的类型。对于一些类型的数据,客户端设备102a、102b、102n可与网络应用程序204或支付引擎206直接通信,但是对于其他类型的数据,可能首先与队列管理器246通信。队列管理器246允许系统100以不同的方式处理不同类型的数据,以允许用户102a、102b、102n更快地在其相应的设备查看更新最及时的信息。队列管理器246可包括支付队列和消息队列。图3a至图3f和图4更详细地举例说明了队列管理器246的操作,如下所述。

如所讨论的,以上参考图1至图2讨论的系统和部件可允许发消息系统的用户简单地、有效地且安全地经由集成发消息和支付系统100发送和接收支付。图3a至图3f举例说明了由以上讨论的系统100执行的过程的一个或多个实例实施例的实例流程图。与图1和图2中举例说明的系统100一致,图3a至图3f(根据操作的顺序流)举例说明了带有客户端应用程序202的发送方客户端设备300a、带有客户端应用程序202的接收方客户端设备300b、支持网络应用程序204和支付引擎206的服务器设备108、支付网络115、发送方支付队列302、发送方消息队列304、接收方支付队列306和接收方消息队列308。

在一个或多个实施例中,用户经由系统100对另一用户发送支付的过程可这样开始:与发送方客户端设备300a相关联的发送方用户(或简单地叫做“发送方”)对客户端应用程序202提供用户输入,以生成执行支付交易的请求。例如,发送方可访问一个或多个用户接口(例如,图5a的联系人ui504),其允许发送方选择或以其他方式定义一个或多个接收方用户(或简单地叫做“接收方”)。发送方然后可选择将钱发送给接收方的选项(例如,支付控制524b)。发送方然后可选择支付额。用户然后可以可选地增加支付凭证、选择之前增加的支付凭证,或者使用默认的支付凭证。如下面关于图5g描述的,发送方客户端设备300a可对发送方和接收方之间的发消息线程增加支付额。

响应于对支付交易的请求,发送方客户端设备300a可对支付引擎206发送支付发起请求312。具体地,支付发起请求可请求支付引擎206,以发起发送方和接收方之间的支付交易。发送方客户端设备300a可提供在发消息线程中的支付额边上表示支付状态(即,已经从发送方客户端设备300a发送支付发起请求)的图形元件。

在接收支付发起请求时,服务器设备108可以可选地执行风险检查314,以确定发送方和/或接收方的风险。例如,网络应用程序204可使用与发送方、接收方,和/或发送方与接收方之间的关系相关联的信息,以判断支付引擎206是否处理支付交易以防止欺诈。具体地,网络应用程序204可确定与发送方相关联的风险,并且通知支付引擎206该风险,以允许支付引擎206判断是否处理发送方和接收方之间的支付交易。虽然图3a举例说明了支付交易处理过程中的特殊时间点的风险检查,但是该风险检查可出现在将钱转移到接收方账户之前的支付交易过程中的任意时间或多个时间,例如在钱处于中间账户或临时账户中的同时。在另一实例中,服务器设备108可执行风险检查以判断是否对发送方提供支付选项,或者是否对与潜在接收方相关联的发送方提供支付选项。

支付引擎206也可以通过支付网络115可选地授权发送方的支付凭证。具体地,支付引擎206可对支付网络115发送支付授权请求,该支付授权请求是为了该支付额或另一额度(例如$0.01或$100.00)而对发送方的支付凭证(例如,发送方的借记卡)的支付授权请求,其可批准或拒绝支付授权。支付网络115然后可将支付凭证授权响应318发送给支付引擎206。将理解,可选的授权请求可出现在时间轴上的更早或更晚的时候。在另选的实施方式中,支付引擎206可发送作为支付交易的一部分的授权请求,该授权请求是为了支付额而对发送方的支付凭证的授权请求。

支付引擎206可以可选地对发送方客户端设备300a发送支付发起响应320,以通知发送方客户端设备300a支付凭证授权或风险检查失败。如果发送方进行风险检查314失败或者支付授权失败,那么支付指示响应320可向客户端设备300a表明无法发起交易。

在一个或多个实施例中,支付引擎206可将至少一部分来自支付发起请求的信息传达给网络应用程序204。另外地或另选地,网络应用程序204可连同支付发起请求从发送方客户端设备300a获得信息。例如,网络应用程序204在风险检查的过程中可连同发送方的用户账户而获得与发送方客户端设备300a相关的信息。

在授权发送方的支付凭证之前或当时,支付引擎206可生成交易id324。如上所述,支付引擎206可使唯一的交易id324与每个接收到的支付请求相关联。支付引擎206和网络应用程序204可通信以在各种文件、对象、消息和其他信息内使用交易id,以允许网络应用程序240有效地识别和处理消息、状态更新,以及其他关于每次经由网络应用程序204进行的支付的信息。例如,如上所述,支付引擎206可使交易id324与维护对应于处理支付请求的信息的图形对象相关联。

另外,支付引擎206可以可选地验证发送方是否具有通过支付引擎206登记的支付凭证326。在一个或多个情况中,如果支付引擎206之前尚未授权支付交易(例如,通过从支付网络115接收积极授权响应),那么支付引擎206可判断发送方是否具有任何与发送方的用户账户相关联的登记过的支付凭证。支付引擎206还可验证任何所登记的支付凭证是否是有效的。如果发送方没有任何登记过的支付凭证,那么支付引擎206可通知发送方客户端设备300a促使发送方输入有效的支付凭证。

在一个或多个实施例中,支付引擎206可对支付网络115发送支付收费请求328,其请求针对发送方的支付凭证收费322支付额。响应于支付收费请求,支付网络115可针对330发送方的支付凭证收费,并通过将钱从发送方的账户电子转移到支付引擎206(例如临时账户)而从发送方提供支付332。

如图3b所示,支付引擎206可在网络应用程序204生成消息id之后、之前或同时,将该支付应用于临时账户338。例如,支付引擎206可将该支付应用于中间账户,支付引擎206使用该中间账户将资金转移到接收方的支付凭证。在一个或多个实施例中,支付引擎206可生成新的账户,将把该支付应用于该新账户。另选地,支付引擎206可将该支付应用于主临时账户,其包括各种其他由与每个支付相关联的唯一交易id组织和识别的支付。

在成功提供支付请求之后,支付引擎206可确定收费是成功的且支付交易是有效交易。具体地,支付引擎206可通知网络应用程序204连同一个或多个表明对发送方和/或接收方的支付交易在发消息线程内的消息,来生成消息id334。在各种实施方式中,网络应用程序204可生成消息id,以为了与发送方和接收方之间的发消息线程相关联的支付交易而发送给客户端设备302a、302b。根据一个或多个实施例,标识符可允许客户端设备302a、302b适当地显示与支付相关的消息,以及发送和接收状态更新和消息的更新信息。

此时,支付引擎206可生成支付发起消息。例如,支付发起消息可包括,但不限于,离线线程id、线程密钥、交易id、时间戳,以及支付交易的发送方。离线线程id可允许客户端设备302a、302b解决发消息线程内的不一致并与支付交易结合(例如,在处理交易的同时失去连接的情况中)。举例说明,如果发送方发送消息、失去与服务器设备108的连接,然后重新连接到服务器设备108,那么离线线程id允许客户端设备302a确定成功地发送并处理消息,而不是将消息标记为失败。线程密钥可识别发消息线程,以及发消息线程中的参与者的数量和身份,以确定有多少参与者与支付交易相关联。交易id识别支付交易,如之前描述的。时间戳可指示与支付交易的发起相关联的时间,或者其他用于表示支付交易的消息的定时信息。

如所提到的,线程密钥可识别是否有多个参与者包含在组线程或组支付交易中。如果不止一个用户在支付交易中对一个或多个用户发送钱,那么线程密钥可识别每个用户之间的关系及每个用户是发送方还是接收方。另外,客户端应用程序202可使用与支付交易和线程密钥相关联的信息,以确定包括多少人及支付交易的总支付额。客户端应用程序202可以允许参与者在发消息线程内简单地查看支付交易的状态和支付额的方式,来提出支付额。例如,客户端应用程序202为了简单而可对发消息线程内的交易提出总支付额,并且如果必要的话,可基于对支付交易的更新而更新支付额。

在一个或多个实施例中,网络应用程序可通过将消息id映射至交易id并将所映射的id储存在数据库中,而使消息id与交易id相关联。通过使消息id与交易id相关联,服务器设备108可识别对支付交易的更新并使其与对应的指示交易的消息相关联。虽然图3a示出了在接收成功收费响应之后生成消息id并将交易id和消息id发送给发送方客户端设备300a的网络应用程序204,但是网络应用程序204可在支付交易处理过程中的另一时间(例如,在发送收费请求之前)生成消息id。

在生成消息id时或者响应于在临时账户中存入支付,支付引擎206可将支付发起消息340发送给发送方支付队列302,如图3c所示。发送方支付队列302临时储存对发送方的支付交易的更新。例如,发送方支付队列302临时储存从支付引擎206接收到的支付发起消息。如上所述,支付发起消息可包括,但不限于,交易id、支付额、发送方、接收方、状态、指示支付交易何时发起的时间戳、交易的货币、更新的顺序id,以及用于格式化支付额的抵消金额。

该状态可包括带有数字(例如1-10)的字段。每个数字可对应于支付交易的一个状态。因此,数字1可表示支付交易的发起(即,发送方已经为支付付款)。如下所述,一旦与支付交易相关联的状态改变,便可将更新发送给支付队列。该更新可包括交易id和新的状态号。新的状态号可表示新的状态或状态变化。例如,状态可表示:收据增加了接收支付的支付凭证、收据接受了支付、收据拒绝了支付、支付成功地转移给收据,等等。一旦客户端设备已经接收支付发起消息,支付队列便可只将变化(即,状态更新)发送给客户端设备。新的状态更新可向客户端设备表示支付交易的状态中的变化。

与支付引擎204发送支付发起消息并行或在此之后,网络应用程序204可向发送方消息队列304发送表示支付交易342的消息,发送方消息队列302与发送方支付队列302隔开。具体地,网络应用程序204可生成指示与消息id相关联的支付交易的消息,并将指示该交易的消息发送给发送方消息队列304。发送方消息队列304临时储存消息和对来自发送方及提供给发送方的消息的更新。

在从支付引擎206接收支付发起消息之后,发送方支付队列302可将支付发起消息344推送给发送方客户端设备300a。发送方支付队列302可在从支付引擎206接收更新之后的任意时间,并且在发送方支付队列302与发送方客户端设备300a通信的同时,推送支付发起消息。例如,发送方支付队列302可检测发送方客户端设备300a何时与发送方支付队列302建立连接,并将任何由于发送方客户端设备300a与发送方支付队列302最后一次通信而接收到的更新推送给发送方客户端设备300a。例如,发送方支付队列302可维护发送给客户端设备的最后的顺序id(即,最后的更新/变化),然后将由于客户端设备接收到的最后的更新/变化而生成的任何变化/更新推送给客户端设备。另选地,客户端设备可将最后的顺序id发送给支付队列。作为响应,支付队列可发送并推送任何由于客户端设备接收到的最后的更新/变化而生成的变化/更新,如由顺序id所指示的。

发送方消息队列304可将表示支付交易的消息推送346给发送方客户端设备300a。在一个或多个实施例中,在发送方支付队列302已经推送支付发起消息之后,发送方消息队列304仅推送表示支付交易的消息。因此,发送方客户端设备300a可首先接收支付发起消息,然后接收表示支付交易的消息。

发送方支付队列302和发送方消息队列304可分别使用交易id和消息id来推送支付发起消息和指示交易的消息。具体地,因为发送方客户端设备300a具有交易id和消息id,所以发送方客户端设备300a可从队列接收更新,不管消息或支付交易何时更新。例如,队列可通过包括交易/消息id和更新信息来推送更新。在其他实施例中(例如用于支付发起消息),更新信息可包括更多描述不止一个状态变化的信息(例如,时间戳信息),或者描述更复杂的状态变化的信息。

在另选实施例中,发送方客户端设备300a可生成当发送方客户端设备300a生成支付请求时指示发消息线程内的支付交易的消息的本地副本,而不是生成支付请求的服务器设备108。在针对发送方的支付凭证收费之后,网络应用程序204可将状态更新经由发送方支付队列302发送给发送方客户端设备300a,以更新发送方客户端设备300a上已有的消息。例如,状态更新可包括发消息线程内的表明成功对支付收费的视觉线索。

在一个或多个实施例中,在将支付发起消息推送给发送方客户端设备300a之后或同时,发送方支付队列302也可将支付发起消息348发送给接收方支付队列306。例如,发送方支付队列302可与将更新推送给发送方客户端设备300a并行地,将支付发起消息发送给接收方支付队列306。因此,发送方可能能够在接收方接收任何与支付交易相关的信息之后,查看支付引擎206成功地针对发送方的支付凭证收费。类似地,发送方消息队列304可将指示支付交易350的消息发送给接收方消息队列308。另选地,发送方支付/消息队列可在服务器设备108执行一个或多个与接收方相关的附加操作之后,将支付发起消息/表示支付交易的消息发送给接收方支付/消息队列。

一旦接收方支付队列306已经接收支付发起消息,接收方支付队列306便可将支付发起消息352推送给接收方客户端设备300b。接收方消息队列308然后可将指示支付交易354的消息推送给接收方客户端设备300b。因此,接收方客户端设备300b在接收表示支付交易的消息并将表示支付交易的消息放在发送方和接收方之间的发消息线程内之前,接收支付发起消息。

在一个或多个实施例中,因为接收方客户端设备300b之前尚无接收到任何与支付交易相关的信息,所以服务器设备108可对接收方客户端设备300a提供交易id和消息id。例如,服务器客户端设备108可与接收方客户端设备300b直接通信,以发送交易id和消息id。因此,接收方客户端设备300b然后可通过接收方支付队列306和接收方消息队列308,开始接收所推送的对支付交易的更新信息和发消息线程中的对应消息。另选地,服务器设备108可通过支付发起消息经由接收方队列发送交易id和消息id。

接收方客户端设备300b可对接收方和发送方之间的发消息线程增加表示支付交易的消息。指示支付交易的信息可包括支付交易的额度。具体地,表示支付交易的消息可包括到支付发起消息中的支付额的链接。因此,在经由支付队列302、306发送对来自支付发起消息的支付额的更新时,消息线程中的消息的量可改变以反映该更新。

沿着类似的线路,在从支付队列302、306接收更新时,客户端设备300a、300b可更新指示发消息线程中的支付交易的消息。例如,如下所述,在经由支付队列302、306从支付引擎206接收与支付交易的状态相关的支付更新时,,客户端设备可更新发消息线程中的消息。

在支付引擎206成功地对支付交易付款之后,在接收方客户端设备300b已经接收支付发起消息和对应消息之后,或者在接收方表明接受支付交易之后,支付引擎206可验证356接收方是否具有支付凭证,如用图3d举例说明的。例如,如之前描述的,支付引擎206可判断接收方是否具有任何通过支付引擎206登记的支付凭证,并且与支付网络115通信以判断所登记的凭证是否有效。如果接收方没有任何有效凭证,那么服务器设备可以可选地对接收方客户端设备300b发送增加凭证359的选项。

当接收方客户端设备300b从接收方支付队列306接收该选项时,接收方客户端设备300b可允许接收方输入支付凭证信息。例如,该选项可以是使接收方客户端设备300b处的客户端应用程序202提供支付凭证接口的通知。用户可对用于从支付交易存款的存款账户(例如,借记卡账户)增加360凭证。接收方客户端设备然后可将凭证信息发送360给支付引擎206。

此时,或者甚至在此之前,接收方可接受支付361。作为支付接受过程的一部分,接收方可如以上说明的选择或增加支付凭证。在接收方接受支付时,接收方客户端设备300b可更新指示发消息线程中的支付交易的消息。接收方客户端设备300b还可生成支付接受更新。支付接受更新可包括交易id、消息id,以及表明接受支付的更新号。接收方客户端设备300b可将支付接受更新发送362给接收方支付队列306。接收方支付队列306可更新支付发起消息的顺序id,使得支付发起消息到达队列的顶部。接收方支付队列306还更新支付发起消息的状态号。接收方支付队列306然后可将支付接受更新推送362给发送方支付队列302和支付引擎206。

发送方支付队列302可更新支付发起消息的顺序id,使得支付发起消息到达队列的顶部。发送方支付队列302还更新支付发起消息的状态号。发送方支付队列302然后将支付接受更新推送给发送方客户端设备300a。基于支付接受更新,发送方客户端设备300a可在发送方的发消息应用程序的发消息线程中更新表示支付交易的消息。这允许发送方查看指示发消息线程中的支付交易的消息,并且看到接收方已经接受支付。

如图3d所示,接收方支付队列306可将支付接受更新同时推送362给发送方支付队列302和支付引擎206。这可允许发送方与支付引擎206同时接收支付接受更新。将理解,通过不用必须将支付接受更新首先发送给服务器设备(在那里将支付接受更新读取到数据库,然后将其发出),支付/消息队列的过程可增加消息和更新的速度和效率。剩下的图举例说明了以非同时方式发送或推送更新或消息的支付和发消息队列,以易于举例说明。将理解,根据本文的公开内容,队列可同时或在不同时间发送/推送消息/更新。

如图3e举例说明的,在接收方接受支付之后,支付引擎206可从临时账户借记368用于支付交易的资金。支付引擎206将支付信用请求370发送给支付网络115,以将资金存入接收方的支付凭证。在接收支付信用请求时,支付网络115可通过对应于支付交易的支付额而信任接收方的支付凭证372。支付网络115将支付信用响应374发送给支付引擎206,其表示支付网络115成功地信任(credit)接收方的支付凭证。

在支付引擎206从支付网络115接收成功支付信用响应之后,支付引擎206可将成功转账更新376发送给接收方支付队列306,如图3f所示。成功转账更新可包括交易id和支付交易的更新状态。例如,成功转账更新可包括新的状态号,其向客户端设备表明,对接收方的支付凭证的资金转移是成功的。另选地,如果支付交易失败,那么支付引擎206可使用对应于失败交易的不同的状态号,来发送表明转账失败的状态更新。

在接收方队列接收成功转账更新之后,接收方支付队列306可将成功转账更新378发送给发送方支付队列302。接收方支付队列306也可与将更新发送给发送方支付队列302并行地,将成功支付更新380推送给接收方客户端设备300b。另选地,接收方支付队列306可在将更新发送给发送方支付队列302之前,将更新推送给接收方客户端设备300b。当发送方支付队列302接收成功支付更新时,发送方支付队列302可将成功支付更新推送382给发送方客户端设备300a。

在一个或多个实施例中,当客户端设备302a、302b从对应的支付队列接收对支付交易的状态更新时,客户端应用程序202可检测更新并执行一个或多个与发消息线程相关联的动作。例如,如在图5n至图5o中更详细地描述的,客户端应用程序202可识别更新并在发消息线程内显示对应的消息状态更新。举例说明,客户端应用程序202可在发消息线程内显示支付交易具有新状态的图标或视觉指示。另选地,支付引擎206可与网络应用程序204通信,以经由对应的消息队列对客户端设备302a、302b发送更新。

如之前描述的,网络应用程序204和支付网络206与用于系统100中的每个用户的队列通信。图4举例说明了系统100的一个实施例,其使用多个专门用于每个用户的队列来促进支付和消息的发送。根据一个或多个实施例,服务器设备108可包括网络应用程序204、支付网络206、发送方队列400(即,发送方支付队列302和发送方消息队列304)和接收方队列402(即,接收方支付队列306和接收方消息队列308)。另选地,发送方队列400和接收方队列402可位于不同的服务器设备上,或位于用于发送方和接收方各自的专用服务器设备上。

如图所示,服务器设备与发送方客户端设备300a和接收方客户端设备300b通信。在一个或多个实施例中,服务器设备108的每个部件可彼此通信。例如,发送方队列400和接收方队列402可与网络应用程序204通信,以对发送方和接收方之间的发消息线程内的消息发送和接收更新。同样地,发送方队列400和接收方队列402可与支付引擎206通信,以对相应设备上的客户端应用程序202内的支付交易发送和接收更新。

服务器设备108的至少一部分部件也可与发送方客户端设备300a和/或接收方客户端设备300b通信。例如,发送方队列400可与发送方客户端设备300a通信,接收方队列402可与接收方客户端设备300b通信。对于一些类型的通信,支付引擎206也可直接与发送方客户端设备300a和接收方客户端设备300b通信。举例说明,当客户端设备或支付引擎206在安全连接上转移数据时(例如,包括个人信息的数据,例如凭证信息),支付引擎206可直接与客户端设备通信。虽然未示出,但是在一个或多个实施例中,网络应用程序204可与客户端设备通信,以发送或接收敏感的用户信息,例如用户账户信息(例如,登录用户名/密码)。

在一个或多个实施例中,与如果客户端设备302a、302b总是直接与网络应用程序204和支付引擎206通信相比,发送方队列400和接收方队列402允许系统100更快地处理并交换用户之间的消息。例如,队列允许系统将至少一部分消息或变化发送给从发送方到接收方的消息,不用首先将消息或更新写到数据库中以永久储存。具体地,系统100可使用队列来与将消息发送给接收方并行地,将消息发送给网络应用程序204和/或支付引擎206。

举例说明,当发送方客户端设备300a将消息发送给发送方队列400时,发送方队列400可将该消息转发给网络应用程序204和/或支付引擎206,并转发给接收方队列402。接收方队列402然后可基本上在与网络应用程序204或支付引擎206处理消息(例如,通过将消息写入到数据库中或者执行另一与消息相关联的操作)的同时,将消息推送给接收方客户端设备300b。通过作为将消息从发送方传递至接收方的过程中的直接中间步骤的移除网络应用程序204和/或支付引擎206,系统100提高交换速度,反之亦然。

当判断是否将特殊更新传递至客户端设备时(例如,在失去连接之后),队列可基于与更新相关联的顺序id和从客户端设备获得的顺序id,来判断客户端设备是否已经接收到更新。如果该顺序id与更新的顺序id不匹配,那么队列可将该更新和任何介入更新推送给客户端设备,以使客户端设备与队列同步。一旦使客户端设备同步且客户端设备建立连接,队列便可将任何新的更新推送给客户端设备,不用从客户端设备请求顺序id,当对支付交易的状态更新发生时,允许客户端设备的用户查看该状态更新,而不是要求客户端设备请求更新。

另外,在一个或多个实施例中,队列可临时储存预定的量以推送给客户端设备。具体地,当,客户端设备与服务器设备108建立连接时,队列储存更新以推送给客户端设备。例如,在系统100尚未将下降推送给客户端设备或从队列移除的老更新之前,每个队列可储存1000条消息或变化以推送给对应的客户端设备。在另选的实例中,队列可基于与每个更新相关联的时间戳信息,或根据其他标准及附加标准,而储存动态数量的消息。

如将在下面更详细地描述的,如关于图1至图2和图4描述的系统100的部件,可与其他部件一起和/或与其他部件组合地,提供一个或多个图形用户接口。具体地,这些部件可允许用户为了多种目的而与一组显示元件交互。具体地,图5a至图5o及以下描述举例说明了允许发送方用户将支付发送给接收方的用户接口和特征的多种实例实施例。

例如,图5a至图5o举例说明了由客户端应用程序202提供以促进电子发消息及发送和接收支付的gui的多种视图。在一些实例中,客户端设备(即,客户端设备300a、300b)可实现系统100的一部分或全部。例如,图5a举例说明了客户端设备500,其是手持设备,例如移动电话设备(例如智能手机)。如本文使用的,术语“手持设备”指的是尺寸和结构构造为在用户的一只手中保持/操作的设备。然而,在另外的或另选的实例中,任何其他合适的计算设备(例如但不限于,平板电脑设备、手持设备、更大的无线设备、笔记本电脑或台式电脑、个人数字助理设备,和/或任何其他合适的计算设备)可执行一个或多个本文描述的处理和/或操作。

客户端设备500可包括任何以下参考图8的计算设备800描述的特征和部件。如图5a中举例说明的,客户端设备500包括触摸屏502,其可显示或提供用户接口,并且可通过触摸屏502接收和/或检测用户输入。如本文使用的,“触摸屏显示”指的是触摸屏设备的显示。在一个或多个实施例中,触摸屏设备可以是带有至少一个表面的客户端设备,用户可在该表面上执行触摸手势(例如,笔记本电脑、平板电脑、个人数字助理、媒体播放器、移动电话)。另外地或另选地,客户端设备500可包括任何其他合适的输入设备,例如触摸板或下面参考图8描述的那些。

如之前指出的,系统100可集成电子发消息系统(例如,诸如facebookmessenger的发消息应用程序)和电子支付系统。图5a举例说明了由用户接口管理器208在触摸屏502上提供的人或联系人用户接口504。联系人用户接口504可提供客户端设备500的用户(donald)的联系人列表。具体地,联系人用户接口504可列出“朋友”或联系人506,用户可通过其而在系统100内连接或关联。

联系人用户接口504可进一步提供每个联系人506的一个或多个状态。例如,联系人用户接口504可经由第一状态指示器508而指示设定联系人或协作用户是否是活动的(例如,装入客户端应用程序202、连接到互联网、最近使用客户端应用程序202执行动作)。第一状态指示器508可包括图形用户接口对象,例如图标。在一个实施例中,第一状态指示器508在每个活动的协作用户的名字边上包括第一颜色(例如绿色)的点。沿着相关线路,第一状态指示器508在不活动的用户边上还可包括第二颜色(例如灰色)的点。

联系人用户接口504可经由设备指示器510表明联系人或协作用户目前使用的是哪个设定类型的设备。设备指示器510可包括图形用户接口对象,例如图标。例如,如图所示,设备指示器510可包括词语“网”,其表明协作用户是活动的或者使用个人电脑装入到客户端应用程序202中。沿着类似的线路,设备指示器510可包括词语“移动”,以表明设定联系人是活动的或者使用移动设备装入到客户端应用程序202中,例如移动电话。另外地或另选地,设备指示器510可指示设定协作用户的客户端设备的商标或模型。

根据设定协作用户的隐私设置的不同,联系人用户接口504可进一步包括支付状态指示器511。支付状态指示器511可表明设定协作用户是否登记或者能够使用系统100接收或发送电子支付。例如,在设定协作用户的名字边上存在支付状态指示器511可表明,设定协作用户通过系统100或网络应用程序204而具有与其账户或档案相关联的支付凭证。支付状态指示器511可包括图形用户接口对象,例如图标。例如,如图5a所示,支付状态指示器511可包括美元符号或其他通常与支付交易相关联的标志。

客户端应用程序202可从网络应用程序204的状态管理器232接收与客户端设备500的用户相关联的联系人的状态的通知或指示。例如,客户端应用程序202可将通知或状态更新发送给网络应用程序204,以指示客户端应用程序202何时是活动的或在线的。状态管理器232然后可将与设定用户相关联的联系人的状态发送给与设定用户相关联的客户端设备104a。沿着相关线路,状态管理器232可判断设定用户是否具有与其档案相关联的支付凭证,并且可对具有发送和接收支付的能力的用户的联系人的客户端设备500提供指示。

将理解,根据本文的公开内容,电子发消息系统和电子支付系统的集成可提供明显超过传统的支付应用程序的优点。具体地,用户可访问联系人用户接口504并判断哪些协作用户是活动的,从而可参加与支付交易相关的聊天,或甚至通知支付的接收。而且,联系人用户接口504可以可选地允许用户知道哪些协作用户具有支付凭证。因此,联系人用户接口504可通知用户哪个协作用户将能够接收支付,或者是否可询问用户邀请协作用户加入。

如上所述,系统100可促进接收和发送数据。在一个或多个实施例中,通信管理器230便于在计算设备104a、104b、500之间接收和发送电子通信。而且在一个或多个实施例中,用户接口管理器208显示经由通信管理器230发送和接收的电子通信。在一个或多个实施例中,用户接口管理器208可在发消息图形用户接口内的发消息线程中显示经由通信管理器230发送和接收的电子通信。例如,用户可与联系人用户接口504的联系人列表中的联系人列表交互,以打开促进与联系人交换消息的发消息图形用户接口。例如,图5b举例说明了在用户从联系人用户接口504选择联系人“joe”时由用户接口管理器208提供的发消息图形用户接口512。

如图所示,发消息图形用户接口512可包括发消息线程514,其包括从客户端设备500的用户的账户发送的电子消息516a。类似地,发消息线程514可包括由协作用户(即,“joe”)的账户接收的电子消息516b。在一个或多个实施例中,用户接口管理器208组织发消息线程514,使得将新的消息增加到发消息线程514的底部,使得在发消息线程514的顶部显示更老的消息。在另选的实施例中,用户接口管理器208可以任何可能对用户表明消息516a、516b之间的时间先后关系或其他关系的方式,组织消息516a、516b。

用户接口管理器208提供多种电子通信特征,以帮助用户在发消息线程514中的电子通信之间进行区分。例如,如图5b中举例说明的,用户接口管理器208显示指向发消息图形用户接口512的一侧(即,右侧)的、从客户端设备500的用户的账户发送的电子消息516a。另一方面,用户接口管理器208显示指向发消息图形用户接口512的相对侧(即,左侧)的、由发消息处理器212接收的电子消息516b。在一个或多个实施例中,电子消息516a、516b的定位和定向对客户端设备500的用户提供更清楚的显示在发消息图形用户接口512内的各种电子通信的起点的指示器。

由用户接口管理器208提供的、帮助用户区分电子通信的另一特征,可以是电子通信的颜色。例如,如图5b所示,用户接口管理器208用第一种颜色显示所发送的电子消息516a,并用第二种颜色显示所接收的电子消息516b。在一个或多个实施例中,第一种颜色和第二种颜色可以分别是黑色和白色,具有反向字体颜色。在一个另选实施例中,用户接口管理器208可显示具有白色背景和不同颜色轮廓的电子消息516a、516b。

在又一另选实施例中,用户接口管理器208可显示具有不同图案、不同字体、不同尺寸或以任何其他可将所发送的电子消息516a与所接收的电子消息516b区分开的方式的背景的电子消息516a、516b。例如,在一个或多个实施例中,用户接口管理器208在蓝色背景上显示具有白色字体的所发送的电子消息516a。同样地,在一个或多个实施例中,用户接口管理器208在灰色背景上显示具有黑色字体的所接收的电子消息516b。

如以上所提到的,用户接口管理器208也可提供消息输入控制调色板或工具栏522。如在图4b中举例说明的,用户接口管理器208将消息输入控制调色板或工具栏522显示为发消息图形用户接口512的一部分。在一个或多个实施例中,消息输入控制调色板或工具栏522包括多种可选择的消息输入控制,其对用户提供多种消息输入选择或其他选择。例如,在图5b中,消息输入控制调色板或工具栏522抱看文本输入控制524a、支付控制524b、照相机取景器输入控制524c、多媒体输入控制524d、符号输入控制524e,以及类似的指示器控制524f。在一个或多个另选的实施例中,消息输入控制调色板或工具栏522可以不同的顺序提供输入控制524a至524e,可提供其他未在图4b中显示的输入控制,或者可省略一个或多个图4b所示的输入控制524a-524e。

如将在下面更详细地描述的,用户可与任意输入控制524a-524e交互,以生成并发送不同类型的电子通信。例如,如果用户与文本输入控制524a交互,那么用户接口管理器208可在发消息图形用户接口512的一部分中提供触摸屏显示键盘518,用户可利用其来生成文本消息520。类似地,如果用户与多媒体输入控制524d交互,那么用户接口管理器208可在发消息图形用户接口512的一部分内提供多媒体内容项目显示区域(例如,用于显示数字照片、数字视频,等等)。同样地,如果用户与照相机取景器输入控制524c交互,那么用户接口管理器208可在发消息图形用户接口512的一部分内提供数字照相机接口,用户可利用其来对发消息线程514捕获、发送和增加数字照片或数字视频。

用户可与任意消息输入控制524a-524e交互,以生成消息或支付并经由系统100将其发送给一个或多个协作用户。例如,在图5b中,示出用户的手指与支付控制524b交互。在一个或多个实施例中,用户输入检测器210可检测用户的手指或其他输入设备与支付控制524b的交互(例如,点击触摸手势)。在用户输入检测器210检测到支付控制524b上的点击触摸手势时,用户接口管理器208可在发消息用户接口512的一部分内显示支付用户接口515,如图5c所示。

具体地,如由图5c举例说明的,用户接口管理器208可在发消息用户接口512的第一部分(即,上部)中提供发消息线程514。用户接口管理器208可在发消息用户接口512的第二部分(即,下部)中提供支付用户接口515。因此,用户接口管理器208可允许用户查看发消息线程514和任何新的消息,同时也能够发起支付交易。在另选的实施例中,用户接口管理器102可将发消息线程514和支付用户接口515水平地布置或以除了垂直布置以外的另一种方式布置。在另一些实施例中,支付用户接口515可包括在与发消息用户接口512的重叠或分开的用户接口。

如从本文的描述中将显而易见的,支付用户接口515可允许用户发起支付交易(发送支付、请求支付,等等),同时与一个或多个支付交易的协作用户群体查看消息。例如,图5b和图5c举例说明,设备500(在下文中叫做发送方)的发送方用户(“brad”)已经从参与发消息线程514中的会话的接收方协作用户(“joe”)接收消息:“你可以给我$25作为另一晚的费用吗?”。作为响应,brad已经回复:“没问题”。响应于此会话或发信息会话,发送方可希望对接收方发送支付。发消息用户接口512可允许发送方这样做,不用必须离开发消息线程514或发消息用户接口512。另选地,发消息用户接口512可导航到分开的支付用户接口515。

如图所示,支付接口515a可包括数字键盘538,其可通过按顺序输入预期数字(即,通过在数字键盘538内点击“2”,然后点击“5”,以达成$25)而允许用户选择支付额532。支付接口可显示所选择的数字,以允许用户验证所选择的数字对应于预期的支付额,并且允许用户相应地修改所选择的数字。将理解,根据本文的公开内容,图5c的支付接口515是支付接口的一种实施方式。在一个或多个实施例中,用户可从多个不同的支付接口中选择支付接口515。

在一个或多个实施例中,响应于发送方选择支付元件537或以其他方式使得发送支付请求,客户端应用程序202可对支付引擎206发送请求,以判断发送方是否具有登记过的支付凭证和/或对用户的登记过的支付凭证授权。具体地,客户端应用程序202可生成支付请求,并将支付发起请求发送给支付引擎206,如在图3a中举例说明的。在发送方与登记过的支付账户不相关的事件中,用户接口管理器208可对凭证用户接口534提供允许发送方登记支付凭证,如图5d所示。另选地,或另外地,图形接口可提供一次性支付选择,其允许用户输入支付消息以促进一次性支付(例如,输入借记卡号或信用卡号),不需要发送方建立账户。

将理解,凭证用户接口534可根据发送方选择输入的支付凭证的类型而变化。在一个或多个实施例中,用户接口管理器208可提供可接受的支付凭证的列表(例如,信用卡、借记卡、礼品卡、银行账户),以将资金发送给接收方。在用户选择支付凭证的类型时,用户接口管理器208可提供适用的凭证用户接口534。例如,图5d举例说明了用于输入借记卡的凭证用户接口534。如图所示,用户可经由数字键盘538输入借记卡号、失效日、安全码,以及与借记卡相关联的账单邮政编码。在输入支付消息时,发消息处理器212可将支付凭证信息发送给支付引擎206,以储存支付凭证。

在发送方已经输入支付凭证细节之后(通过自动提醒、来自接收方的手动提醒,或者通过发送方自己的选择),系统100可继续处理支付交易。在一个或多个实施例中,客户端应用程序202可对发送方提供使用pin或其他捷径来处理未来支付交易的选择。例如,客户端应用程序202可在发消息接口512中对发送方提供弹出窗口540或其他通知,询问发送方其是否希望建立piin以增加发送钱的安全性,如图5e所示。

如果发送方选择输入pin来处理未来的支付交易,那么客户端应用程序202可提供pin建立接口542来建立pin,如图5f所示。具体地,pin建立接口可允许发送方建立与发送方的所储存的凭证相关联的唯一的pin。例如,pin可以是4位数字(或任意长度的串),发送方可在能够处理未来的支付交易之前,经由数字键盘538来输入该pin。在一些情况中,系统100也可通过重新输入pin以建立pin并使pin与所储存的凭证相关联,来请求发送方确认pin。

对于未来的支付交易,系统100可提供pin输入接口,发送方可通过其来输入pin。输入pin可允许系统100使用为用户储存的与pin相关联的凭证来处理支付交易。因此,输入pin将允许发送方发起并完成支付交易,不用每当发送方希望将钱经由系统100发送给另一用户时都记住凭证。

在一个或多个实施例中,在验证用户的支付凭证的同时或在验证之后,发送方客户端设备500可将支付请求发送给支付引擎206,以处理并传递至接收方客户端设备。如之前描述的,在支付引擎206从发送方客户端设备500接收支付请求并成功地针对发送方的支付凭证收费之后,支付引擎206将支付发起消息发送给发送方客户端设备500,从而发送给发送方支付队列302。发送方支付队列302可将更新推送给发送方客户端设备500,并且还将该更新发送至接收方支付队列306。

连同支付发起消息,网络应用程序204可生成表示支付请求的消息,该支付请求用于对会话中包含的发送方和接收方提供发消息线程内的支付额532。具体地,网络应用程序204可将消息发送给发送方消息队列304。发送方消息队列304然后将消息推送给发送方客户端设备500,还将消息转发给接收方消息队列308。

当发送方客户端设备500接收消息和支付发起消息时,发送方客户端设备500可在发消息线程514内显示消息。如之前提到的,可使消息通过交易id和消息id与支付交易相联系,使得消息可展示与支付交易相关联的信息。例如,图5g示出了用于发送方和接收方之间的发消息线程514中的支付请求的支付额532。举例说明,系统100可将支付额532提供为发消息线程514的会话的与时间相关的流内的消息。

图5h至图5m举例说明了用于接收方客户端设备500a的图形用户接口。图5h举例说明了发送方已经发起支付交易以将支付额发送给接收方之后的接收方客户端设备500a处的发消息接口512a。在一个或多个实施例中,系统100可通知接收方发送方已经经由支付发起消息和表示支付交易的消息而发起支付交易。具体地,当接收方支付队列306接收支付发起消息时,接收方支付队列306可将更新推送给接收方客户端设备500a。

另外,接收方消息队列308可将对应的消息推送给接收方客户端设备500a。例如,用户接口管理器208可在发消息接口512a的发消息线程514a中显示与发送方的身份相关联的支付额,以及支付请求中的带有支付额532a的文本内容(例如,“从messenger发送”)。举例说明,用户接口管理器208可将支付额532a插入发消息线程514a,在发送方和接收方之间交换其他消息。另外地或另选地,用户接口管理器208可以另一种方式提供支付额532a(例如,通过在接收方客户端设备500a的通知区域中或在发消息接口512a的重叠部分中提供通知)。

在一个或多个实施例中,用户接口管理器208可对接收方提供确认请求,以允许接收方接受支付交易(即,通过选择发消息接口中的元件,例如接受元件552)。在接收方接受支付交易之后,支付引擎206可完成支付交易并开始将资金从发送方转移到接收方的过程。在一个另选实施例中,在系统100自动处理并完成支付交易的同时,支付请求可仅提醒接收方注意支付交易。

在一个或多个实施例中,当接收方选择接受支付时或者在接收方接收支付请求之后,客户端应用程序202可对支付引擎206发送请求,以判断接收方是否具有登记过的支持合格支付方法的支付凭证。在接收方与登记过的支付额不相关的事件中,支付引擎206可通知接收方客户端设备500a显示凭证用户接口534,其允许接收方建立账户并登记用于支付交易的支付凭证(例如,借记卡账户或信用卡账户),如图5i所示。另外地,或另选地,图形接口可提供一次性支付选择,其允许接收方输入支付消息以促进一次性支付,不需要发送方建立账户。

在接收方输入支付凭证之后,接收方客户端设备500a将接收方的支付凭证发送给支付引擎206以进行授权/验证。系统100然后可完成支付交易。具体地,系统100可通过将资金从发送方转移到接收方,来完成支付交易。在一些情况中,将资金从发送方转移到接收方可包括,将资金转移到与接收方相关联的临时账户或中间账户中,直到对应的金融机构批准交易为止,如之前相对于图3a至图3f描述的。在另选的情况中,完成支付交易可包括,将资金直接转移到接收方输入的目标存款账户中。

如图5j所示,在完成支付交易之后(或者在接收方选择完成支付交易之后),系统100可显示支付完成消息558,其通知接收方支付交易完成且接收方应在一定的时间段内接收支付。例如,支付完成消息558可通知接收方其应在一定的时间周期内接收支付。在一个或多个实施例中,在从接收方支付队列306接收表示支付交易完成的支付状态更新之后,接收方客户端设备500a可显示完成消息558。

在另外的实施例中,系统100可从接收方的多个支付凭证中选择支付凭证。具体地,系统100可识别接收方已经通过支付引擎206登记过的多个支付凭证,并选择适当的支付凭证。例如,系统100可识别多个存款账户,并允许用户经由支付接口515a而从该多个存款账户中选择。在选择适当的支付凭证之后,系统可完成支付交易(即,将支付额推送给接收方的所选择的支付凭证),并对接收方提供支付完成消息558。

在一个或多个实施例中,在关闭支付完成消息558或以其他方式完成支付交易之后,系统100可更新发送方客户端设备500上的发消息线程514和/或接收方客户端设备500a的发消息线程514a中的支付额532(及支付请求的任何其他文本),以反映出系统100已经完成处理支付交易。例如,用户接口管理器208可改变发消息线程514a中的支付请求的某些特性(在此情况中,其仅包括支付额532)。举例说明,在图5k中,用户接口管理器208通过支付请求中的支付额532a而改变支付图标560的颜色或阴影,从如图5g所示的浅色变成如图5k所示的深色。另外地,或另选地,用户接口管理器208可改变发消息线程514a中的支付请求的位置、支付请求的边框宽度、支付请求的背景颜色、支付请求的大小和字体,或者适合于此目的的支付请求的任何其他特性。

在一个实例中,当最后确定支付额时,用户接口管理器208可使支付额动起来,例如,通过使得支付额在发消息接口512内“上下跳动”。当使支付额动起来时,用户接口管理器208可使支付额中的字符和/或图像单独地或共同地动起来。

另外地或另选地,用户接口管理器208可修改外观(例如,使支付额动起来),直到完成一个或多个与支付交易相关联的操作为止。例如,用户接口管理器208可使支付额动起来,直到接收方接受支付额、发送方和/或接收方输入凭证,或者系统100完成支付交易并将资金从发送方转移到接收方为止。在另外的或另选的实施例中,一旦支付额确定,用户接口管理器208便可在一定量的时间内将该修改应用于支付额的外观。另外地或另选地,用户接口管理器208可基于其他标准而将修改应用于支付额的外观,例如当支付交易完成时,当资金可用于发送方时,或者如果支付交易失败。

根据一个或多个实施例,用户可查看发消息线程内的与支付交易有关的附加信息。例如,如图5l所示,如果接收方选择消息(例如,通过在消息上点击),那么发消息用户接口512a可在第二消息550、弹出窗口或者其他与发消息线程514a内的支付请求相关联的状态指示器中显示当前支付状态。举例说明,如果支付引擎206已经发起支付交易,但是尚未完成支付交易,那么第二消息550可取回对交易id接收到的信息,并将当前状态显示为“已发起”。另外地,第二消息550可显示对支付交易的状态更新的时间戳。

当支付交易的状态更新时,接收方客户端设备500a可从接收方支付队列接收推送通知中的更新,甚至是在接收方正在看支付交易的状态的同时(例如,第二消息550实时更新)。如图5m所示,第二消息550可将状态更新指示为“完成”,以表示支付交易已经完成。第二消息550还可显示与最新的状态更新相关联的时间戳。在一个或多个情况中,第二消息550还可与对应的时间戳一起显示之前的状态更新。例如,第二消息550可响应于附加的用户输入而显示附加信息(例如,在消息上长按)。虽然图5l和图5m所示的状态显示从支付队列接收的用于支付发起和完成的状态更新,但是支付引擎206可发送另外的或另选的更新,包括但不限于,支付接受、已输入支付凭证、支付取消,和/或其他更新。

另外地,或另选地,在一个或多个实施例中,表示支付交易的消息中显示的支付额可由于对支付交易的更新而改变。例如,如之前提到的,如果发送方用户(或组支付交易中的多个发送方用户)通过增加或减小对接收方的支付额来修改支付额、取消支付,或者附加发送方对支付交易增加支付额,那么支付额可实时更新。举例说明,如果组支付中的用户取消用户对接收方的支付,那么支付额可通过从之前的支付额中减去所取消的支付额而更新,以反映所取消的支付。类似地,如果新用户加入该组并增加支付,那么支付额可通过对之前的支付额增加新的支付额而更新,以反映来自新用户的支付。

类似地,支付额可基于汇率而变化。例如,如果支付交易包括多种货币,那么当货币的汇率变化时,支付额可能改变。举例说明,如果接收方的货币的汇率变化(例如,接收方的货币值减小),那么支付额会增加以实时地反映所修改的汇率。

更具体地,如以上提到的,在消息线程514a中的消息532a中显示的支付额包括与支付发起消息的关系。在支付队列(从客户端设备或支付引擎206)接收改变支付额的支付更新时,支付队列可将支付更新推送给支付队列,使得其更新支付发起消息中的支付额。在支付发起消息中的支付额改变时,在发消息线程514a中的消息532a中显示的支付额可更新,因为消息包括到支付发起消息的链接。

在一个或多个实施例中,客户端应用程序202可对指示与支付状态更新相关联的支付交易的消息提供状态更新。图5n和图5o基于对发送方和接收方之间的支付交易的状态更新,和/或基于消息传递/读取更新,举例说明了消息状态更新。例如,发送方客户端设备500处的发消息线程514可包括视觉指示器(由发消息线程514中的消息边上的圆圈代表),支付状态已经改变和/或基于接收方所采取的动作。举例说明,图5n显示消息状态指示器552,其对发送方表示支付引擎206已经成功地针对发送方的支付凭证收费支付额,尽管状态指示器可指示其他支付状态更新或消息状态更新(例如,当接收方接收或读取消息时),或者具有不同的外观。

根据一个或多个实施例,发送方客户端设备500上的客户端应用程序202可检测到,发送方客户端设备已经从发送方支付队列302接收支付更新,并从该更新中确定状态标识符。基于用于对支付交易的更新的状态标识符,客户端应用程序202可识别对应于支付更新的消息状态,并修改发消息线程514内的消息状态。例如,客户端应用程序202可基于支付更新对消息更新的映射而发现对应的消息更新。另选地,支付引擎206可向网络应用程序204通知支付状态更新,并且网络应用程序204可将消息状态更新经由发送方消息队列304发送给发送方客户端设备500。

当支付状态更新时,消息状态可相应地更新。例如,图5o举例说明,消息状态指示器552响应于新的支付状态更新或消息传递/读取更新而更新。举例说明,消息状态指示器552当更新时可表明,接收方已经接受支付交易且支付已经处理。另外地,或另选地,发消息线程可指示更多的或不同的与支付交易或发消息线程内的消息相关联的状态更新。例如,消息状态指示器552可表明,接收方已经接收表示支付交易的消息、接收方已经读取消息、接收方已经通过选择消息来查看支付状态信息,或者其他接收方动作。

虽然图5a至图5o举例说明了支付交易的一个实施例,其中,发送方发起支付交易,但是系统100可允许用户经由发消息应用程序来请求支付。例如,当用户请求支付时,用户的设备可经由用户的支付队列而对一个或多个其他用户、对服务器设备108及对其他用户的支付队列发送请求。其他用户可批准支付并经由相应的支付队列发送该批准。

图1至图5o,对应的文本及实例,提供了许多不同的用于使用集成电子支付和发消息系统来发送和接收支付的系统和设备。除了以上内容以外,可描述流程图方面的实施例,该流程图包括用于完成特殊结果的方法中的动作和步骤。例如,图6和图7举例说明了根据一个或多个实施例的代表性方法的流程图。

图6举例说明了将支付交易更新推送给客户端设备的方法600的流程图。方法600包括接收请求以进行支付交易的动作602。例如,动作602包括从与用户相关联的第一客户端设备104a接收来自用户的对协作用户发送支付的请求,该请求包括支付额。举例说明,动作602可包括接收支付请求,其包括支付额、发送方标识符,以及与用户和协作用户之间的支付交易相关联的离线参考。另外地,或另选地,支付交易可包括包含一组用户的交易。

方法600还包括对用户的支付凭证发送收费请求的动作604。例如,动作604包括,对支付网络115发送对用户的支付凭证的收费请求,以获得支付请求的支付额。举例说明,动作604可包括使用来自支付请求的发送方标识符从包括登记过的支付凭证的数据库中确定用户的支付凭证。

另外,方法600包括接收成功收费响应的动作606。例如,动作606包括,从支付网络115接收成功收费响应,其表明收费请求是成功的。举例说明,动作606可包括接收成功收费响应,其表示支付网络成功地针对用户的支付凭证收费,以获得支付交易的支付额。

而且,方法600包括将支付发起消息推送给第一客户端设备104a和第二客户端设备104b的动作608。例如,动作608包括,响应于成功收费响应而将支付发起消息推送给与用户相关联的第一客户端设备104a和与协作用户相关联的第二客户端设备104b。另外,动作608可包括,响应于成功收费响应而生成支付发起消息。支付发起消息可包括交易标识符、支付额、发送方标识符、接收方标识符,以及表明发起支付交易的状态。支付发起消息还可包括表明何时发起支付交易的时间戳。

方法600还包括发送表示支付的消息用于进入用户和协作用户之间的发消息线程514、514a中的动作610。例如,动作610包括对第一客户端设备104a和第二客户端设备104b发送表示支付的消息用于进入用户和协作用户之间的发消息线程514、514a中且包括与支付相关联的支付额。举例说明,表示支付的消息可显示发消息线程514、514a内的支付额。另外,方法600可包括并行地推送支付发起消息和发送表示支付的消息。例如,方法600可包括,经由第一队列推送支付发起消息并经由与第一队列隔开的第二队列发送表示支付的消息。

作为动作610的一部分,或者作为附加动作,方法600可包括,生成用于支付交易的交易标识符,并使交易标识符与对应于发消息线程514、514a的消息相关联。举例说明,使交易标识符与消息相关联可包括,生成用于消息的消息标识符,并将消息标识符映射至交易标识符。

方法600进一步包括接收用于支付交易的状态更新的动作612。例如,动作612可包括,识别与状态更新结合的交易标识符,并确定状态更新与支付交易相关联。举例说明,状态更新可包括交易完成更新。另选地,状态更新可包括交易取消更新。在另一实例中,状态更新可包括由接收方接受支付交易。

另外,对应于发消息线程514、514a的消息可包括基于交易标识符而到支付额的链接。举例说明,消息可包括基于支付交易的支付状态而获得支付额的链接,并显示来自消息内的支付交易的支付额。

方法600还包括将状态更新推送给客户端设备的动作614。例如,动作614包括,将用于支付交易的状态更新推送给第一客户端设备104a和第二客户端设备104b。举例说明,动作614可包括,检测与第一客户端设备104a的通信连接,并响应于检测到的与第一客户端设备104a的通信连接而将用于支付交易的状态更新推送给第一客户端设备104a。类似地,动作614可包括,检测与第二客户端设备104b的通信连接,并响应于检测到的与第二客户端设备104b的通信连接而将用于支付交易的状态更新推送给第二客户端设备104b。动作614还可包括,将状态更新在不同时间推送给第一客户端设备104a和第二客户端设备104b。

作为动作614的一部分,或者作为附加动作,方法600可进一步包括,基于用于支付交易的状态更新,将与对应于发消息线程514、514a的消息相关联的消息状态更新推送给第一客户端设备104a和第二客户端设备104b。举例说明,方法600可包括,推送消息状态更新以在第一客户端设备104a和第二客户端设备104b显示消息状态更新指示器,消息状态更新指示器指示用于发消息线程514、514a内的支付交易的状态更新。

图7举例说明了将支付交易更新推送给客户端设备的另一方法的流程图。方法700包括接收请求以进行支付交易的动作702。例如,动作702包括接收,与用户相关联的第一客户端设备,从用户指向协作用户的支付请求,该支付请求包括与用户和协作用户之间的支付交易相关联的支付额。举例说明,动作702可包括接收支付请求,其包括支付额、发送方标识符,以及与用户和协作用户之间的支付交易相关联的离线参考。另外地,或另选地,支付交易可包括涉及一组用户的交易。

方法700还包括发送对用户的支付凭证的收费请求的动作704。例如,动作704包括,对支付网络115发送针对用户的支付凭证的收费请求,以获得支付请求的支付额。举例说明,动作704可包括使用来自支付请求的发送方标识符,从包括登记过的支付凭证的数据库中确定用户的支付凭证。

方法700进一步包括接收成功收费响应的动作706。例如,动作706包括,从支付网络115接收来自支付网络115的对支付额的成功收费响应。举例说明,动作706可包括接收成功收费响应,其表示支付网络成功地针对用户的支付凭证收费,以获得支付交易的支付额。

另外,方法700包括对发送方支付队列302增加支付发起消息的动作708。例如,动作708包括,响应于成功收费通知增加支付发起消息到与用户相关联的发送方支付队列302。举例说明,动作708可包括,更新用于支付发起消息的顺序标识符,并将支付发起消息发送给发送方支付队列302。

方法700还包括对发送方消息队列304增加消息的动作710。例如,动作710包括,响应于成功收费通知增加表示支付的消息到与用户相关联的发送方消息队列304。动作710也可包括,响应于成功收费通知而生成用于支付交易的交易标识符,并生成表示支付的消息。

作为动作710的一部分,或者作为附加动作,方法700可包括,响应于接收成功收费响应而生成用于支付交易的交易标识符。另外,方法700可包括,生成用于包括交易标识符的消息的消息标识符,并将交易标识符映射至消息标识符。方法700还可包括,在对发送方支付队列302增加支付发起状态更新之前,将消息标识符和交易标识符发送给用户的客户端设备。

另外,方法700包括更新用户的客户端设备、接收方支付队列306和接收方消息队列308的动作712。例如,动作712包括,通过将支付发起消息从发送方支付队列302推送给客户端设备和接收方支付队列306,并将表示支付的消息从发送方消息队列304推送给客户端设备104a及接收方消息队列308,来更新用户的客户端设备、接收方支付队列306和接收方消息队列308。举例说明,动作712可包括,检测发送方支付队列302和客户端设备104a之间的通信连接,并响应于检测到通信连接而将支付发起消息从发送方支付队列302推送给客户端设备104a。动作712还可包括,响应于对发送方支付队列302增加的支付发起状态更新,而将支付发起消息从发送方支付队列302推送给接收方支付队列306。另外,动作712可包括,并行地推送支付发起消息和表示支付交易的消息。

方法700可进一步包括,通过将支付发起消息从接收方支付队列306推送给协作用户的客户端设备104b,来更新协作用户的客户端设备104b,并将表示支付的消息从接收方消息队列308推送给协作用户的客户端设备104b。另外,方法700可进一步包括,并行地将支付发起消息和表示支付的消息推送给协作用户的客户端设备104b。

作为附加动作,方法700可包括,从支付网络接收交易完成响应,其表示支付网络已经成功地完成支付交易。方法700还可包括,响应于交易完成响应而将用于支付交易的交易完成状态更新推送给与交易标识符相关联的接收方支付队列306。方法700可进一步包括,基于交易完成状态更新,将与包括交易标识符的消息相关联的消息状态更新推送给接收方消息队列308。

本发明的实施例可包括或利用专用或通用计算机,其包括计算机硬件,例如,一个或多个处理器和系统存储器,如下面更详细地讨论的。本发明的范围内的实施例还包括用于执行或储存计算机可执行的指令和/或数据结构的物理介质及气体计算机可读的介质。具体地,可将一个或多个本文描述的处理至少部分地实现为体现在非瞬时计算机可读介质中的且可由一个或多个计算设备(例如,任何本文描述的媒体内容访问设备)执行的指令。通常,处理器(例如微处理器)从非瞬时计算机可读介质(例如存储器等)接收指令,并执行那些指令,从而执行一个或多个处理,包括一个或多个本文描述的处理。

计算机可读介质可以是任何可由通用或专用计算机系统访问的可用介质。储存计算机可执行的指令的计算机可读介质是非瞬时计算机可读存储介质(设备)。携带计算机可执行的指令的计算机可读介质是传输介质。因此,通过实例且非限制性地,本发明的实施例可包括至少两种明显不同的类型的计算机可读介质:非瞬时计算机可读存储介质(设备)和传输介质。

非瞬时计算机可读存储介质(设备)包括ram、rom、eeprom、cd-rom、固态驱动器(ssd)(例如,基于ram)、闪存、相变存储器(pcm)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁性存储设备,或者任何其他可用来储存计算机可执行的指令或数据结构的形式的预期程序代码方法且可由通用或专用计算机访问的介质。

将“网络”定义为一个或多个使得能够在计算机系统和/或模块和/或其他电子设备之间传输电子数据的数据链路。当在网络或另一通信连接(硬连线的、无线的,或者硬连线或无线的组合)上对计算机转移或提供信息时,计算机将该连接适当地作为传输介质来查看。传输介质可包括网络和/或数据链路,其可用来携带计算机可执行的指令或数据结构的形式的预期程序代码方法,并且可由通用或专用计算机访问。以上的组合也应包含在计算机可读介质的范围内。

进一步,在到达各种计算机系统部件时,可将计算机可执行的指令或数据结构的形式的程序代码方法从传输介质自动地转移到非瞬时计算机可读存储介质(设备)(或者反过来)。例如,可在网络接口模块(例如,“nic”)内的ram中缓存在网络或数据链路上接收的计算机可执行的指令或数据结构,然后将其最终转移到计算机系统ram和/或计算机系统处的易失性较小的计算机存储介质(设备)。因此,应理解,在也利用(或甚至主要利用)传输介质的计算机系统部件中可包括非易失性计算机可读存储介质(设备)。

计算机可执行的指令包括,例如,当在处理器执行时,使通用计算机、专用计算机或专用处理设备执行某一功能或一组功能的指令和数据。在一个或多个实施例中,在通用计算机上执行计算机可执行的指令,以将通用计算机变成实现本发明的元素的专用计算机。计算机可执行的指令可以是,例如,二进制的中间格式指令,例如汇编语言,或甚至是源代码。虽然已经用专用于结构特征和/或方法动作的语言描述了主题,但是应理解,在所附权利要求中定义的主题并非必须限于所述特征或上述动作。相反,将所述特征和动作公开为实现权利要求的实例形式。

本领域技术人员将理解,可在带有许多类型的计算机系统配置的网络计算环境中实践本发明,包括,个人电脑、台式电脑、笔记本电脑、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络pc、小型计算机、大型计算机、移动电话、pda、平板电脑、寻呼机、路由器、开关,等等。也可在分布式系统环境中实践本发明,其中,通过网络连接的(例如通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)本地和远程计算机系统都执行任务。在分布式系统环境中,程序模块可位于本地和远程存储器储存设备中。

还可在云计算环境中实现本发明的实施例。在本说明书中,将“云计算”定义为用于使得能够按需网络访问可配置计算资源的共享池的模型。例如,可在市场中使用云计算来提供无所不在的且方便的对可配置计算资源的共享池的按需访问。可经由虚拟化来快速地提供可配置计算资源的共享池,并且用较小的管理努力或服务提供商交互来释放,然后相应地按比例提供。

云计算模型可具有多种特性,例如,按需自服务、宽网络访问、资源池、快速弹性、可计量服务,等等。云计算模型也可显露多种服务模型,例如,软件即服务(“saas”)、平台即服务(“paas”),以及基础设施即服务(“iaas”)。还可使用不同的部署模型来部署云计算模型,例如私有云、社区云、公有云、混合云,等等。在本说明书中和权利要求书中,“云计算环境”是在其中使用云计算的环境。

图8举例说明了可配置为执行一个或多个上述处理的代表性的计算设备800的框图。将理解,一个或多个计算设备(例如计算设备800)可实现支付系统100。如图7所示,计算设备800可包括处理器802、存储器804、储存设备806、i/o接口808,以及通信接口810,其可通过通信基础设施812而通信地耦合。虽然代表性的计算设备800如图所示,但是图8中举例说明的部件并非旨在是限制性的。在其他实施例中可使用另外的或另选的部件。而且,在某些实施例中,计算设备800可包括比图8所示的那些更少的部件。现在将更详细地描述图8所示的计算设备800的部件。

在一个或多个实施例中,处理器802包括用于执行指令的硬件,例如构成计算机程序的那些指令。作为一个实例且非限制性地,为了执行指令,处理器802可从内部寄存器、内部缓存、存储器804或储存设备806中取回(或取来)指令,并且解码并执行该指令。在一个或多个实施例中,处理器802可包括一个或多个用于数据、指令或地址的内部缓存。作为一个实例且非限制性地,处理器802可包括一个或多个指令缓存、一个或多个数据缓存,以及一个或多个转换备用缓冲区(tlb)。指令缓存中的指令可以是存储器804或储存设备706中的指令的副本。

存储器804可用于储存数据、元数据,以及用于由处理器执行的程序。存储器804可包括一个或多个易失性和非易失性存储器,例如,随机存取存储器(“ram”)、只读存储器(“rom”)、固态硬盘(“ssd”)、闪存、相变存储器(“pcm”),或者其他类型的数据储存设备。存储器804可以是内部存储器或分布式存储器。

储存设备806包括用于储存数据或指令的储存设备。作为一个实例且非限制性地,储存设备806可包括上述非易失性存储介质。储存设备806可包括硬盘驱动器(hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带,或通用串行总线(usb)驱动器,或者这些设备中的两个或更多个的组合。在适当的地方,储存设备806可包括可移除的或不可移除的(或者固定的)介质。储存设备806可位于计算设备800的内部或外部。在一个或多个实施例中,储存设备806是非易失性固态存储器。在其他实施例中,储存设备806包括只读存储器(rom)。在适当的地方,此rom可以是掩模编程的rom、可编程rom(prom)、可擦写的prom(eprom)、可电擦写的prom(eeprom)、可电改写的rom(earom),或闪存,或者这些设备中的两个或多个的组合。

i/o接口808允许用户对计算设备800提供输入、从计算设备800接收输出,及以其他方式将数据转移到计算设备800和从计算设备800接收数据。i/o接口808可包括鼠标、小键盘或键盘、触摸屏、照相机、光学扫描器、网络接口、调制解调器、其他已知的i/o设备或者这种i/o接口的组合。i/o接口808可包括一个或多个用于对用户提供输出的设备,包括但不限于,图形引擎、显示器(例如显示屏)、一个或多个输出设备(例如显示驱动器)、一个或多个音频扬声器,以及一个或多个音频驱动器。在某些实施例中,i/o接口808配置为对显示器提供图形数据以提供给用户。图形数据可代表一个或多个图形用户接口和/或任何其他可用作特殊实现的图形内容。

通信接口810可包括硬件、软件,或二者都包括。在任何情况下,通信接口810可提供一个或多个用于在计算设备800和一个或多个其他计算设备或网络之间通信(例如,基于包的通信)的接口。作为一个实例且非限制性地,通信接口810可包括网络接口控制器(nic),或者用于与以太网或其他有线网络或无线nic(wnic)通信的网络适配器,或者用于与无线网络通信的无线适配器,例如wi-fi。

另外地或另选地,通信接口810可促进与以下网络的通信:自组网络、个人局域网(pan)、局域网(lan)、广域网(wan)、城域网(man),或者互联网的一个或多个部分,或者这些网络中的两个或更多个的组合。这些网络中的一个或多个的一个或多个部分可以是有线的或无线的。作为一个实例,通信接口810可促进与以下网络的通信:无线pan(wpan)(例如,蓝牙wpan)、wi-fi网络、wi-max网络、蜂窝电话网络(例如,全球移动通信系统(gsm)网络),或者其他合适的无线网络,或者其组合。

另外,通信接口810可促进与各种通信协议的通信。可使用的通信协议的实例包括,但不限于,数据传输介质、通信设备、传输控制协议(“tcp”)、互联网协议(“ip”)、文件传送协议(“ftp”)、远程登录、超文本传送协议(“http”)、安全超文本传送协议(“https”)、会话发起协议(“sip”)、简单对象访问协议(“soap”)、可扩展标记语言(“xml”)及其变型、简单邮件传送协议(“smtp”)、实时传送协议(“rtp”)、用户数据报协议(“udp”)、全球移动通信系统(“gsm”)技术、码分多址(“cdma”)技术、时分多址(“tdma”)技术、短消息服务(“sms”)、多媒体消息服务(“mms”)、射频(“rf”)信号技术、长期演进(“lte”)技术、无线通信技术、带内和带外信号技术,以及其他合适的通信网络和技术。

通信基础设施812可包括硬件、软件,或二者都包括,其使计算设备800的部件彼此耦接。作为一个实例且非限制性地,通信基础设施812可包括图形加速接口(agp)或其他图形总线、增强工业标准体系结构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准体系结构(isa)总线、infiniband互连、低引脚数(lpc)总线、存储总线、微通道体系结构(mca)总线、互连外围设备(pci)总线、pci快速(pcie)总线、串行高级技术附件(sata)总线、视频电子标准协会本地(vlb)总线,或者其他合适的总线,或者其组合。

如以上提到的,系统100可包括社交网络系统。社交网络系统可使得其用户(例如个人或组织)能够与系统互连及彼此互连。如以上提到的,系统100可包括社交网络系统。社交网络系统可使得其用户(例如个人或组织)能够与系统互连及彼此互连。通过从用户输入,社交网络系统可生成与用户相关联的用户档案,并将其储存在社交网络系统中。用户档案可包括人口统计信息、通信信道信息,以及与用户的个人兴趣相关的信息。通过从用户输入,社交网络系统还可生成并储存用户与社交网络系统的其他用户的关系的记录,以及提供服务(例如,墙贴、图片分享、在线日历和事件安排、发消息、游戏或广告),以促进用户之间或用户中的社交互动。而且,社交网络系统可允许用户将照片及其他多媒体内容发布到用户的档案页面(通常叫做“墙贴”或“时间线贴”)或者发布在相册中,二者都可被社交网络系统的其他用户访问,取决于用户配置的隐私设置。

图9举例说明了社交网络系统的实例网络环境900。网络环境900包括客户端系统906、社交网络系统902,以及通过网络904彼此连接的第三方系统908。虽然图9举例说明了客户端系统906、社交网络系统902、第三方系统908和网络904的特殊布置,但是本发明考虑了客户端系统906、社交网络系统902、第三方系统908和网络904的任何合适的布置。作为一个实例且非限制性地,客户端系统906、社交网络系统902和第三方系统908中的两个或更多个可彼此直接连接,绕过网络904。作为另一实例,客户端系统906、社交网络系统902和第三方系统908中的两个或更多个可整体地或部分地彼此物理地或逻辑地共同定位。而且,虽然图9举例说明了特殊数量的客户端系统906、社交网络系统902、第三方系统908和网络904,但是本发明考虑了任意合适数量的客户端系统906、社交网络系统902、第三方系统908和网络904。作为一个实例且非限制性地,网络环境900可包括多个客户端系统906、社交网络系统902、第三方系统908和网络904。

本发明考虑了任意合适的网络904。作为一个实例且非限制性地,网络904的一个或多个部分可包括:自组网络、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网的一部分、公用电话交换网络(pstn)、蜂窝电话网络,或者这些网络中的两个或更多个的组合。网络904可包括一个或多个网络904。

链路(link)可使客户端系统906、社交网络系统902和第三方系统908与通信网络904连接,或彼此连接。本发明考虑了任何合适的链路。在具体的实施例中,一条或多条链路包括一条或多条有线链路(例如,数字用户线路(dsl)或电缆业务接口规范数据(docsis))、无线链路(例如,wi-fi或全球互通微波存取(wimax)),或者光学链路(例如,同步光学网络(sonet)或同步数字系列(sdh))。在具体的实施例中,一条或多条链路均包括:自组网络、内联网、外联网、vpn、lan、wlan、wan、wwan、man、互联网的一部分、pstn的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路,或者这种链路中的两个或更多个的组合。这些链路在网络环境900中并非必须需要是相同的。一条或多条第一链路在一个或多个方面中可能与一条或多条第二链路不同。

在具体的实施例中,客户端系统906可以是电子设备,其包括硬件、软件、或嵌入式逻辑部件,或者两个或更多个这种部件的组合,并且其能够执行合适的由客户端系统906实现或支撑的功能。作为一个实例且非选择性地,客户端系统906可包括任何以上相对于图8讨论的计算设备。客户端系统906可使得客户端系统906处的网络用户能够访问网络904。客户端系统906可使得其用户能够与其他客户端系统906处的其他用户通信。

在具体的实施例中,客户端系统906可包括网页浏览器932,例如microsoftinternetexplorer、googlechrome或mozillafirefox,并可具有一个或多个外挂、插件,或其他扩展功能,例如工具栏或雅虎工具栏。客户端系统906处的用户可输入统一资源定位符(url)或其他使网页浏览器指向特殊服务器(例如服务器,或者与第三方系统908相关联的服务器)的地址,并且网页浏览器可生成超文本传送协议(http)请求并将http请求传递给服务器。服务器可接受http请求,并且响应于http请求而将一个或多个超文本标记语言(html)文件传递给客户端系统906。客户端系统906可将基于来自服务器的html文件的网页提交给用户。本发明考虑了任何合适的网页文件。作为一个实例且非限制性地,根据特殊的需求,网页可来自html文件、可扩展超文本标记语言(xhtml)文件,或者可扩展标记语言(xml)文件。这种网页也可执行脚本,例如且非限制性地,以javascript、java、microsoftsilverlight、标记语言和脚本的组合(例如ajax(异步javascript和xml))等书写的那些。在本文中,在合适的地方,对网页的参考包含一个或多个对应的网页文件(浏览器可使用其来提交网页),反之亦然。

在具体的实施例中,社交网络系统902可以是可作为在线社交网络的主机的网络可寻址计算系统。社交网络系统902可生成、储存、接收和发送社交网络数据,例如,用户档案数据、概念档案数据、社交图信息,或者其他合适的与在线社交网络相关的数据。网络环境900的其他部件可直接访问或经由网络904访问社交网络系统902。在具体的实施例中,社交网络系统902可包括一个或多个服务器。每个服务器可以是单一服务器或者横跨多个计算机或多个数据中心的分布式服务器。服务器可以是各种类型的,例如且非限制性地,网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器,另一适合于执行本文描述的功能或处理的服务器,或者其任何组合。在具体的实施例中,每个服务器可包括硬件、软件,或者嵌入式逻辑部件,或者两个或更多个这种用于执行由服务器实现或支持的适当的功能的部件的组合。在具体的实施例中,社交网络系统902可包括一个或多个数据存储。数据存储可用来储存各种类型的信息。在具体的实施例中,可根据具体的数据结构来组织储存在数据存储中的信息。在具体的实施例中,每个数据存储可以是关系型数据库、柱状数据库、相关数据库,或者其他合适的数据库。虽然本发明描述或举例说明了特殊类型的数据库,但是本发明考虑了任何合适类型的数据库。这些特殊的实施例可提供使得客户端系统906、社交网络系统902或第三方系统908能够管理、检索、修改、增加或删除储存在数据存储中的信息的接口。

在具体的实施例中,社交网络系统902可将一个或多个社交图储存在一个或多个数据存储中。在具体的实施例中,社交图可包括多个节点——其可包括多个用户节点(每个用户节点对应于一个特殊用户)或多个概念节点(每个概念节点对应于一个特殊概念)——以及多个连接节点的边线。社交网络系统902可对在线社交网络的用户提供与其他用户通信和交互的能力。在具体的实施例中,用户可经由社交网络系统902加入在线社交网络,然后对社交网络系统902的许多他们希望连接的其他用户增加连接(例如关系)。在本文中,术语“朋友”可指的是社交网络系统902的用户已经由社交网络系统902与其形成连接、关联或关系的任何其他用户。

在具体的实施例中,社交网络系统902可对用户提供在多种类型的物品或对象上采取社交网络系统902所支持的作用的能力。作为一个实例且非限制性地,该物品和对象可包括社交网络系统902的用户可属于的组或社交网络、用户可能感兴趣的事件或日历项目、用户可使用的基于计算机的应用程序、允许用户经由服务购买或销售物品的交易、与用户可执行的广告的交互,或者其他合适的物品或对象。用户可与任何能够在社交网络系统902中被代表或者由第三方系统908的外部系统代表的东西交互,其与社交网络系统902隔开并且经由网络904耦接到社交网络系统902。

在具体的实施例中,社交网络系统902能够连接多种实体。作为一个实例且非限制性地,社交网络系统902可能使得用户能够彼此交互及从第三方系统908或其他实体接收内容,或者允许用户通过应用程序编程接口(api)或其他通信信道而与这些实体交互。

在具体的实施例中,第三方系统908可包括一个或多个类型的服务器、一个或多个数据存储、一个或多个接口(包括但不限于api)、一个或多个网络服务、一个或多个内容源、一个或多个网络,或者任何其他合适的部件,例如,服务器可与其通信的部件。第三方系统908可由与操作社交网络系统902的实体不同的实体来操作。然而,在具体的实施例中,社交网络系统902和第三方系统908可彼此结合地操作,以对社交网络系统902或第三方系统908的用户提供社交网络服务。在这个意义上,社交网络系统902可提供平台,或支柱,其他系统(例如第三方系统908)可使用其来对互联网上的用户提供社交网络服务和功能。

在具体的实施例中,第三方系统908可包括第三方内容对象提供商。第三方内容对象提供商可包括一个或多个内容对象的来源,可将其传递给客户端系统906。作为一个实例且非限制性地,内容对象可包括与用户感兴趣的事件或活动相关的信息,例如,电影放映时间、电影评论、饭店评论、饭店菜单、产品信息及评论,或者其他合适的信息。作为另一实例且非限制性地,内容对象可包括激励内容对象,例如,优惠券、折扣票、礼券,或者其他合适的激励对象。

在具体的实施例中,社交网络系统902还包括用户生成的内容对象,其可增强用户与社交网络系统902的交互。用户生成的内容可包括任何用户可对社交网络系统902增加、上传、发送或“发布”的东西。作为一个实例且非限制性地,用户将邮件从客户端系统906传递到社交网络系统902。邮件可包括:诸如状态更新或其他文本数据的数据、位置信息、照片、视频、链接、音乐或其他类似的数据或介质。还可由第三方通过“通信信道”来对社交网络系统902增加内容,例如新闻推送或流媒体。

在具体的实施例中,社交网络系统902可包括多种服务器、子系统、程序、模块、日志,以及数据存储。在具体的实施例中,社交网络系统902可包括以下设备中的一个或多个:网络服务器、动作记录器、api请求服务器、相关性与排序引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象记录日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块、用户接口模块、用户档案存储、连接存储、第三方内容存储,或者位置存储。社交网络系统902还可包括合适的部件,例如,网络接口、安全机构、负载均衡器、故障转移服务器、管理和网络操作控制台、其他合适的部件,或者其任何合适的组合。在具体的实施例中,社交网络系统902可包括一个或多个用于储存用户档案的用户档案存储。用户档案可包括,例如,传记信息、人口统计信息、行为信息、社会信息,或者其他类型的描述性信息,例如,工作经验、教育历史、爱好或偏好、兴趣、亲密关系,或者位置。兴趣信息可包括与一个或多个类别相关的兴趣。这些类别可以是通用的或具体的。作为一个实例且非限制性地,如果用户“喜欢”关于鞋的品牌的物品,那么该类别可以是品牌,或者“鞋”或“衣服”的通用类别。连接存储可用于储存与用户相关的连接信息。连接信息可表明具有类似或通用工作经验、组成员、爱好、教育历史的用户,或者以任何方式相关或共享常见属性的用户。连接信息还可包括不同用户和内容(内部和外部)之间的用户定义的连接。网络服务器可用于使社交网络系统902经由网络904与一个或多个客户端系统906或一个或多个第三方系统908连接。网络服务器可包括邮件服务器或其他用于在社交网络系统902和一个或多个客户端系统906之间接收并发送消息的发消息功能。api请求服务器可允许第三方系统908通过呼叫一个或多个api而从社交网络系统902访问信息。动作记录器可用来从网络服务器接收与用户接通或断开社交网络系统902的动作相关的通信。与动作日志结合,用户可保持记录第三方内容对象的第三方内容对象日志。通知控制器可将与内容对象相关的信息提供给客户端系统906。可将信息作为通知推送给客户端系统906,或者可响应于从客户端系统906接收的请求而从客户端系统906获得信息。授权服务器可用来实施社交网络系统902的用户的一个或多个隐私设置。用户的隐私设置决定可共享多特殊的与用户相关联的信息。授权服务器可允许用户选择加入或选择退出由社交网络系统902记录其动作或者与其他系统(例如,第三方系统908)共享其动作,例如,通过设置适当的隐私设置。第三方内容对象存储可用来储存从第三方接收的内容对象,例如第三方系统908。位置存储可用于储存从与用户相关联的客户端系统906接收的位置信息。广告定价模块可组合社会信息、当前时间、位置信息,或者其他合适的信息,以通过通知的形式对用户提供相关广告。

图10举例说明了实例社交图1000。在具体的实施例中,社交网络系统902可将一个或多个社交图1000储存在一个或多个数据存储中。在具体的实施例中,社交图1000可包括多个节点——其可包括多个用户节点1002或多个概念节点1004——以及多个连接这些节点的边线1006。为了教导的目的,将图10中举例说明的实例社交图1000示出为是二维视觉地图表示。在具体的实施例中,社交网络系统902、客户端系统906或第三方系统908可访问社交图1000及相关的用于合适应用的社交图信息。可将社交图1000的节点和边线作为数据对象储存,例如,储存在数据存储中(例如社交图数据库)。这种数据存储可包括一个或多个社交图1000的节点或边线的可搜索的或可查询的索引。

在具体的实施例中,用户节点1002可对应于社交网络系统902的用户。作为一个实例且非限制性地,用户可以是个人(人用户)、实体(例如,企事业单位、企业,或第三方应用),或者与社交网络系统902交互或通信或位于社交网络系统902上的组(例如,个人或实体的组)。在具体的实施例中,当用户向社交网络系统902登记账户时,社交网络系统902可生成对应于用户的用户节点1002,并将用户节点1002储存在一个或多个数据存储中。在适当的地方,本文描述的用户和用户节点1002可指的是登记过的用户和与登记过的用户相关联的用户节点1002。另外地或另选地,在适当的地方,本文描述的用户和用户节点1002可指的是尚未向社交网络系统902登记的用户。在具体的实施例中,可使用户节点1002与由用户提供的信息或者由各种系统收集的信息相关联,包括社交网络系统902。作为一个实例且非限制性地,用户可提供他或她的名字、档案照片、内容信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、偏好、兴趣,或者其他人口统计信息。社交图的每个用户节点可具有对应的网页(通常叫做档案页面)。响应于包括用户名字的请求,社交网络系统可访问对应于用户名字的用户节点,并构造包括名字、档案照片及其他与用户相关联的信息的档案页面。第一用户的档案页面可全部显示给第二用户,或者基于第一用户设置的一个或多个隐私设置及第一用户和第二用户之间的关系而将第一用户的信息的一部分显示给第二用户。

在具体的实施例中,概念节点1004可对应于概念。作为一个实例且非限制性地,概念可对应于位置(例如,电影院、饭店、地标,或者城市);网站(例如,与社交网络系统902相关联的网站,或者与网络应用服务器相关联的第三方网站);可位于社交网络系统902内或外部服务器(例如,网络应用服务器)上的实体(例如,人、企业、组、运动队,或者名人);资源(例如,音频文件、视频文件、数码照片、文本文件、结构化文档,或者应用程序);不动产或知识产权(例如,雕塑、绘画、电影、游戏、歌曲、想法、照片,或者书面作品);游戏;活动;想法或理论;另一合适的概念;或者两个或更多个这种概念。可使概念节点1004与由用户提供的概念的信息或者由各种系统收集的信息相关联,包括社交网络系统902。作为一个实例且非限制性地,概念的信息可包括名字或头衔;一个或多个图像(例如,书的封面的图像);位置(例如,地址或地理位置);网站(其可与url相关联);联系人信息(例如,电话号码或邮件地址);其他合适的概念信息;或者这种信息的任何合适组合。在具体的实施例中,可使概念节点1004与一个或多个对应于与概念节点1004相关联的信息的数据对象相关联。在具体的实施例中,概念节点1004可对应于一个或多个网页。

在具体的实施例中,社交图1000中的节点可代表网页或由网页代表(该网页可叫做“档案页面”)。社交网络系统902可作为档案页面的主机或访问档案页面。与第三方服务器908相关联的第三方网站也可作为档案页面的主机。作为一个实例且非限制性地,对应于特殊外部网页的档案页面可以是特殊的外部网页,并且档案页面可对应于特殊的概念节点1004。所有的其他用户或者所选择的其他用户的子集可能可以查看档案页面。作为一个实例且非限制性地,用户节点1002可具有对应的用户档案页面,其中,对应用户可增加内容、进行声明,或者以其他方式表达他自己或她自己。作为另一实例且非限制性地,概念节点1004可具有对应的概念档案页面,其中,一个或多个用户可增加内容、进行声明,或者表达他们自己,特别是与对应于概念节点1004的概念相关。

在具体的实施例中,概念节点1004可代表由第三方系统908作为主机的第三方网页或资源。其中,第三方网页或资源可包括元件、内容、可选择的图标或其他图标,或者其他代表动作或活动的可交互对象(例如,其可在javascript、ajax或php代码中实现)。作为一个实例且非限制性地,第三方网页可包括可选择的图标,例如“喜欢”、“登记”、“吃”、“建议”,或者另一合适的动作或活动。查看第三方网页的用户可通过选择一个图标(例如“吃”)来执行动作,使得客户端系统906对社交网络系统902发送表明用户的动作的消息。响应于该消息,社交网络系统902可在对应于用户的用户节点1002和对应于第三方网页或资源的概念节点1004与一个或多个数据存储中的存储边线1006之间生成边线(例如“吃”边线)。

在具体的实施例中,可使社交图1000中的一对节点通过一个或多个边线1006而彼此连接。连接一对节点的边线1006可代表这对节点之间的关系。在具体的实施例中,边线1006可包括或代表一个或多个对应于一对节点之间的关系的数据对象或属性。作为一个实例且非限制性地,第一用户可表明,第二用户是第一用户的“朋友”。响应于此指示,社交网络系统902可对第二用户发送“朋友请求”。如果第二用户确认“朋友请求”,那么社交网络系统902可生成使第一用户的用户节点1002连接到社交图1000中的第二用户的用户节点1002的边线1006,并将边线1006作为社交图信息储存在一个或多个数据存储中。在图10的实例中,设计图1000包括指示用户“a”和用户“b”的用户节点1002之间的朋友关系的边线1006及指示用户“c”和用户“b”的用户节点1002之间的朋友关系的边线。虽然本发明描述或举例说明了带有特殊属性的连接特殊用户节点1002的特殊边线1006,但是本发明考虑了任何合适的带有任何合适的属性的连接用户节点1002的边线1006。作为一个实例且非限制性地,边线1006可代表友情、家庭关系、企业或雇佣关系、粉丝关系、追随者关系、访客关系、用户关系、上级/下级关系、相互关系、非相互关系、另一合适类型的关系,或者两个或更多个这种关系。而且,虽然本发明通常将节点描述为是连接的,但是本发明也描述了连接的用户或概念。在本文中,在适当的地方,对连接的用户或概念的参考可指的是对应于那些在社交图1000中由一个或多个边线1006连接的用户或概念的节点。

在具体的实施例中,用户节点1002和概念节点1004之间的边线1006可代表由与用户节点1002相关联的用户对于与概念节点1004相关联的概念执行的特殊动作或活动。作为一个实例且非限制性地,如在图10中举例说明的,用户可能“喜欢”、“参加”、“播放”、“聆听”、“烹调”、“致力于”或者“注视”一个概念,每个动作可对应于一种边线类型或子类型。对应于概念节点1004的概念档案页面可包括,例如,可选择的“登记”图标(例如,可点击的“登记”图标)或者可选择的“添到收藏夹”图标。类似地,在用户点击这些图标之后,社交网络系统902可响应于用户的对应于相应动作的动作而生成“收藏夹”边线或“登记”边线。作为一个实例且非限制性地,用户(用户“c”)可使用特殊的应用程序(spotify,其是在线音乐应用程序)听一首特殊的歌曲(“漫步”)。在此情况中,社交网络系统902可在对应于用户的用户节点1002和对应于歌曲和应用程序的概念节点1004之间生成“听过的”边线1006和“使用过的”边线(如在图10中举例说明的),以表明用户听了该歌曲并使用了该应用程序。而且,社交网络系统902可在对应于歌曲和应用程序的概念节点1004之间生成“播放过的”边线1006(如在图10中举例说明的),以表明特殊的应用程序播放了特殊的歌曲。在此情况中,“播放过的”边线1006对应于由外部应用程序(spotify)在外部音频文件(歌曲“想象”)上执行的动作。虽然本发明描述了带有特殊属性的连接用户节点1002和概念节点1004的特殊边线1006,但是本发明考虑了任何合适的带有任何合适的属性的连接用户节点1002和概念节点1004的边线1006。而且,虽然本发明描述了用户节点1002和概念节点1004之间的代表单一关系的边线,但是本发明考虑了用户节点1002和概念节点1004之间的代表一个或多个关系的边线。作为一个实例且非限制性地,边线1006可代表用户喜欢一个特殊概念和已经使用一个特殊概念。另选地,另一边线1006可代表用户节点1002和概念节点1004之间的(如在图10中举例说明的,用户“e”的用户节点1002和“spotify”的概念节点1004之间的)每种类型的关系(或多个单一关系)。

在具体的实施例中,社交网络系统902可在社交图1000中的用户节点1002和概念节点1004之间生成边线1006。作为一个实例且非限制性地,查看概念档案页面的用户(例如,通过使用网页浏览器或由用户的客户端系统906控制的专用应用程序)通过点击或选择“喜欢”图标可表明,他或她喜欢由概念节点1004代表的概念,这可使得用户的客户端系统906对社交网络系统902发送表明用户喜欢与概念档案页面相关联的概念的消息。响应于该消息,社交网络系统902可在与用户相关联的用户节点1002和概念节点1004之间生成边线1006,如由用户和概念节点1004之间的“喜欢”边线1006举例说明的。在具体的实施例中,社交网络系统902可将边线1006储存在一个或多个数据存储中。在具体的实施例中,边线1006可由社交网络系统902响应于特殊的用户动作而自动形成。作为一个实例且非限制性地,如果第一用户上传图片、观看电影,或者听歌,那么可在对应于第一用户的用户节点102和对应于那些概念的概念节点1004之间形成边线1006。虽然本发明描述了以特殊的方式形成特殊的边线1006,但是本发明考虑了以任何合适的方式形成任何合适的边线1006。

在具体的实施例中,广告可以是文本(其可以是html链接的)、一个或多个图像(其可以是html链接的)、一个或多个视频、音频、一个或多个adobeflash文件、这些的合适的组合,或者在一个或多个网页上提供的、在一个或多个电子邮件中提供的,或与用户请求的搜索结果结合提供的任何合适的数字格式的任何其他合适的广告。另外地或另选地,广告可以是一个或多个赞助商广告(例如,社交网络系统902上的新闻推送或报价单)。赞助商广告可以是用户进行的广告商所推广的社会行动(例如,“喜欢”网页、“喜欢”或开始在网页上发帖、对与网页相关联的事件留言、对网页上发布的问题投票、点击进入网页、使用应用程序或玩游戏,或者“喜欢”或分享网站),例如,通过在用户的档案页面或其他页面的预定区域内进行该社会行动、通过与广告商相关联的附加信息进行该社会行动、在其他用户的新闻推送或报价单内突然增加或以其他方式突出该社会行动,或者以其他方式推广该社会行动。广告商可能支付以推广该社会行动。作为一个实例且非限制性地,广告可包括在搜索结果页面的搜索结果中,其中,在非赞助内容上推广赞助内容。

在具体的实施例中,可请求在社交网络系统网页、第三方网页或其他网页内显示广告。可在页面的专用部分中显示广告,例如在页面的顶部处的横幅区域中、在页面侧面的纵列中、在页面的gui中、在弹出窗口中、在下拉菜单中、在页面的输入字段中、在页面的内容的顶部上,或者在相对于页面的别的地方。另外地或另选地,可在应用程序内显示广告。可在专门的页面内显示广告,需要用户在用户可访问页面或使用应用程序之前与广告交互或观看广告。例如,用户可通过网页浏览器来查看广告。

用户可以任何合适的方式与广告交互。用户可点击或以其他方式选择广告。通过选择广告,可将用户指向(或者浏览器或用户使用的其他应用程序)与广告相关联的页面。在与广告相关联的页面处,用户可进行附加的动作,例如,购买与广告相关联的产品或服务、接收与广告相关联的信息,或者订阅与广告相关联的新闻推送。可通过选择广告的部件(例如“播放按钮”)来播放带有音频或视频的广告。另选地,通过选择广告,社交网络系统902可执行或修改用户的特殊动作。

广告还可包括用户可与其交互的社交网络系统功能。作为一个实例且非限制性地,广告可使得用户能够通过选择与支持相关联的图标等,来“喜欢”或以其他方式支持广告。作为一个实例且非限制性地,广告可使得用户能够搜索(例如,通过执行查询)与广告商相关的内容。类似地,用户可与另一用户分享广告(例如,通过社交网络系统902),或与rsvp分享广告(例如,通过社交网络系统902)至与广告相关联的事件。另外地或另选地,广告可包括指向用户的社交网络系统内容。作为一个实例且非限制性地,广告可显示与社交网络系统902内的用户的已经采取与广告的主题相关联的动作的朋友相关的信息。

在具体的实施例中,社交网络系统902可确定各种社交图实体彼此的社交图亲密关系(其在本文中可叫做“亲密关系”)。亲密关系可代表关系的强度或者与在线社交网络的特殊对象之间的感兴趣的水平,例如,用户、概念、内容、动作、广告、其他与在线社交网络相关联的对象,或者其任何合适的组合。也可相对于与第三方系统908或其他合适系统相关联的对象来确定亲密关系。可对每个用户、主题或内容的类型建立社交图实体的整体亲密关系。整体亲密关系可基于与社交图实体相关联的动作或关系的持续监测而改变。虽然本发明描述了以特殊的方式确定特殊的亲密关系,但是本发明考虑了以任何合适的方式确定任何合适的亲密关系。

在具体的实施例中,社交网络系统902可使用亲密系数(其在本文中可叫做“系数”)来测量或量化社交图亲密关系。该系数可代表或量化与在线社交网络相关联的特殊对象之间的关系的强度。该系数还可代表测量用户将基于用户对动作的兴趣而执行特殊动作的预测可能性的可能性或功能。这样,可基于用户之前的动作来预测用户的未来动作,其中,可至少部分地基于用户动作的历史来计算该系数。可使用系数来预测任意数量的动作,这些动作可在在线社交网络之内或之外。作为一个实例且非限制性地,这些动作可包括:各种类型的通信,例如发送消息、发布内容,或者开始评论;各种类型的观察动作,例如访问或查看档案页面、介质,或其他合适的内容;各种类型的与两个或更多个社交图实体相关的一致信息,例如在同一组中、在同一照片中打标签、在同一位置登录,或者参加同一事件;或者其他合适的动作。虽然本发明描述了以特殊的方式测量亲密关系,但是本发明考虑了以任何合适的方式测量亲密关系。

在具体的实施例中,社交网络系统902可使用多种因素来计算系数。这些因素可包括,例如,用户动作、对象之间的关系的类型、位置信息、其他合适的因素,或者其任何组合。在具体的实施例中,当计算系数时,可对不同的因素应用不同的权重。每个因素的权重可以是静态的,或者权重可根据例如用户、关系的类型、动作的类型、用户的位置等而改变。可根据其权重而组合因素的评级,以确定用户的整体系数。作为一个实例且非限制性地,在对与特殊的用户动作相关联的关系分配评级和相关权重(例如,因此总权重是100%)的同时,可对特殊的用户权重分配评级和权重。为了计算用户对特殊对象的系数,分配给用户动作的评级可包括,例如,总系数的60%,而用户和对象之间的关系可包括总系数的40%。在具体的实施例中,当对各种用来计算系数的因素确定权重时,社交网络系统902可考虑多种变量,例如,从访问信息开始的时间、衰减因素、访问频率、与信息的关系,或者与所访问信息相关的对象相关的关系、与连接到对象的社交图实体的关系、用户动作的短期或长期平均值、用户反馈、其他合适的变量,或者其任何组合。作为一个实例且非限制性地,系数可包括使得由特殊动作提供的信号的强度随着时间而衰减的衰减因素,使得当计算系数时,更近的动作更相关。可基于系数所基于的动作的连续跟踪,来连续地更新评级和权重。可使用任何类型的方法或算法对每个因素的评级和分配给因素的权重进行分配、组合、平均等操作。在具体的实施例中,社交网络系统902可使用在历史动作和过往用户响应上训练的机器学习算法,或者通过将用户暴露于各种选择和测量响应中而从用户获得的数据,来确定系数。虽然本发明描述了以特殊的方式计算系数,但是本发明考虑了以任何合适的方式计算系数。

在具体的实施例中,社交网络系统902可基于用户的动作来计算系数。社交网络系统902可监测在线社交网络上的这种动作、第三方系统908上的这种动作、其他合适的系统上的这种动作,或者其任何组合上的这种动作。可跟踪或监测任何合适的类型的用户动作。典型的用户动作包括,查看档案页面、生成或发布内容、与内容交互、加入组、列举并确认事件的出席者、在位置登录、喜欢特殊页面、生成页面,以及执行其他促进社会行动的任务。在具体的实施例中,社交网络系统902可通过特殊类型的内容基于用户的动作来计算系数。该内容可与在线社交网络、第三方系统908或另一合适的系统相关联。该内容可包括用户、档案页面、发帖、新闻故事、头条新闻、即时消息、聊天室会话、电子邮件、广告、图片、视频、音乐、其他合适的对象,或者其任何组合。社交网络系统902可分析用户的动作,以判断一个或多个动作是否表明主题、内容、其他用户等的亲密关系。作为一个实例且非限制性地,如果用户可频繁地发布与“咖啡”或其变化相关的内容,那么社交网络系统902可确定该用户相对于概念“咖啡”具有高系数。可对特殊的动作或特殊类型的动作分配比其他动作更高的权重和/或评级,这可能影响所计算的总系数。作为一个实例且非限制性地,如果第一用户给第二用户发电子邮件,那么该动作的权重或评级可能比如果第一用户简单地查看第二用户的用户档案页面更高。

在具体的实施例中,社交网络系统902可基于特殊对象之间的关系的类型来计算系数。参考社交图1000,当计算系数时,社交网络系统902可分析连接特殊用户节点1002和概念节点1004的边线1006的数量和/或类型。作为一个实例且非限制性地,可对由配偶型边线(代表两个用户结婚了)连接的用户节点1002分配比由朋友型边线连接的用户节点1002更高的系数。换句话说,根据分配给特殊用户的动作和关系的权重不同,可确定对于与用户的配偶相关的内容的总亲密关系比与用户的朋友相关的内容的总亲密关系更高。在具体的实施例中,用户与另一对象的关系可能影响用户的动作关于计算对该对象的系数时的权重和/或评级。作为一个实例且非限制性地,如果将用户在第一张照片中打标签,但是只不过是像第二张照片,那么社交网络系统902可确定该用户相对于第一张照片比第二张照片具有更高的系数,因为与和内容具有相似关系相比,可能对与内容具有标记类型关系分配更高的权重和/或评级。在具体的实施例中,社交网络系统902可基于一个或多个第二用户与特殊对象的关系,来计算对第一用户的系数。换句话说,其他用户与对象的连接和系数可能影响第一用户对该对象的系数。作为一个实例且非限制性地,如果第一用户连接到一个或多个第二用户或者对其具有高系数,且那些第二用户连接到特殊对象或者对其具有高系数,那么社交网络系统902可确定,第一用户也将对该特殊对象具有相对高的系数。在具体的实施例中,该系数可以特殊对象之间的分离度为基础。将任意两个节点之间的分离度定义为从一个节点到另一个节点穿过社交图所需的跃迁的最小数量。可将两个节点之间的分离度认为是由社交图中的两个节点代表的用户或概念之间的相关性的测量结果。例如,可将两个具有由边线直接连接的用户节点(即,是第一度节点)的用户描述为“连接的用户”或“朋友”。类似地,可将两个具有仅通过另一用户节点连接的用户节点(即,是第二度节点)的用户描述为“朋友的朋友”。更低的系数可代表第一用户将与在社交图1000中间接地连接到第一用户的用户分享对内容对象的兴趣的减小的可能性。作为一个实例且非限制性地,在社交图1000中更近的社交图实体(即,更少的分离度)可具有比社交图中更远的实体更高的系数。

在具体的实施例中,社交网络系统902可基于位置信息来计算系数。可将在地理上更靠近彼此的对象认为是比更远的对象彼此更相关的,或者是彼此更感兴趣的。在具体的实施例中,用户对特殊对象的系数可以对象位置与和用户相关联的当前位置(或用户的客户端系统906的位置)的接近度为基础。第一用户可能对更靠近第一用户的其他用户或概念更感兴趣。作为一个实例且非限制性地,如果用户离机场一英里且离加油站两英里,那么社交网络系统902可基于机场对用户的接近度而确定用户对机场比对加油站具有更高的系数。

在具体的实施例中,社交网络系统902可基于系数信息而相对于用户执行特殊动作。可使用系数来预测用户是否将基于用户对动作的兴趣而执行特殊动作。当对用户生成或提供任何类型的对象(例如广告、搜索结果、新闻故事、媒体、消息、通知,或其他合适的对象)时,可使用系数。还可使用该系数对这种对象进行适当地评级和排序。这样,社交网络系统902可提供与用户的兴趣和当前环境相关的信息,增加其将找到这种感兴趣的信息的可能性。在具体的实施例中,社交网络系统902可基于系数信息而生成内容。可基于对用户而言的具体系数来提供或选择内容对象。作为一个实例且非限制性地,可使用系数来对用户生成媒体,其中,可对用户提供用户相对于媒体对象具有高总系数的媒体。作为一个实例且非限制性地,可使用该系数对用户生成广告,其中,可对用户提供用户相对于做广告的对象具有高总系数的广告。在具体的实施例中,社交网络系统902可基于系数信息而生成搜索结果。可基于与关于询问用户的搜索结果相关联的系数,而对用于特殊用户的搜索结果进行打分或评级。作为一个实例且非限制性地,对应于具有更高系数的对象的搜索结果在搜索结果页面上可具有比对应于具有更低系数的对象的结果更高的评级。

在具体的实施例中,社交网络系统902可响应于对来自特殊系统或处理的系数的请求而计算系数。为了预测用户在设定情况中可采取的可能的动作(或者可以是其主题),任何处理可能对用户请求所计算的系数。该请求还可包括一组用于各种用来计算系数的因素的权重。此请求可来自在在线社交网络上运行的处理,来自第三方系统908(例如,经由api或其他通信信道),或者来自另一合适的系统。响应于该请求,社交网络系统902可计算系数(或者访问系数信息,如果其之前已经计算并储存)。在具体的实施例中,社交网络系统902可测量相对于特殊处理的亲密关系。(在线社交网络的内部和外部的)不同的处理可能请求用于特殊对象或一组对象的系数。社交网络系统902可提供与请求亲密关系测量结果的特殊处理相关的亲密关系的测量结果。这样,每个处理接收为了不同的上下文而调整的亲密关系的测量结果,在该上下文中,该处理将使用亲密关系的测量结果。

结合社交图亲密关系和亲密关系系数,特殊的实施例可使用一个或多个在2006年8月11日提交的美国专利申请no.11/503093、2010年12月22日提交的美国专利申请no.12/979027、2010年12月23日提交的美国专利申请no.12/978265和2012年10月1日提交的美国专利申请no.13/642869中公开的系统、部件、元件、功能、方法、操作或步骤,其中每个专利通过引用的方式结合于此。

在具体的实施例中,可使在线社交网络的一个或多个内容对象与隐私设置相关联。可将用于对象的隐私设置(或“访问设置”)以任何合适的方式(例如,与对象相关联)储存在授权服务器上的索引中,以另一合适的方式储存,或者以其任何组合方式储存。对象的隐私设置可规定可如何使用在线社交网络来访问(例如查看或分享)对象(或与对象相关联的特殊信息)。在用于对象的隐私设置允许特殊用户访问该对象时,可将该对象描述为相对于该用户是“可见的”。作为一个实例且非限制性地,在线社交网络的用户可规定用于用户档案页面的隐私设置,其识别一组可访问用户档案页面上的工作经验信息的用户,从而排除其他用户访问该信息。在具体的实施例中,隐私设置可规定将不允许访问某些与对象相关联的信息的用户的“黑名单”。换句话说,黑名单可规定一个或多个对象对其不可见的用户或实体。作为一个实例且非限制性地,用户可规定一组不可访问与用户相关联的相册的用户,从而排除那些用户访问相册(同时还可能允许某些不在该组用户内的用户访问相册)。在具体的实施例中,可使隐私设置与特殊的社交图元件相关联。社交图元件的隐私设置,例如节点或边线,可规定如何使用在线社交网络来访问社交图元件、与社交图元件相关联的信息,或者与社交图元件相关联的内容对象。作为一个实例且非限制性地,对应于特殊照片的特殊概念节点1004可具有规定该照片仅可由在照片中标记的用户及其朋友访问的隐私设置。在具体的实施例中,隐私设置可允许用户选择加入或选择退出使其动作由社交网络系统902记录或者与其他系统(例如第三方系统908)分享。在具体的实施例中,与对象相关联的隐私设置可规定任何合适粒度的允许访问或拒绝访问。作为一个实例且非限制性地,可对以下用户来规定允许访问或拒绝访问:特殊用户(例如,仅是我、我的室友及我的老板)、特殊分离度内的用户(例如,朋友,或者朋友的朋友)、用户组(例如,游戏俱乐部、我的家庭)、用户网络(例如,特殊雇主的雇员、特殊大学的学生或校友)、所有用户(“公开的”)、无用户(“私人的”)、第三方系统908的用户、特殊应用程序(例如,第三方应用程序、外部网站)、其他合适的用户或实体,或者其任何组合。虽然本发明描述了以特殊的方式使用特殊的隐私设置,但是本发明考虑了以任何合适的方式使用任何合适的隐私设置。

在具体的实施例中,一个或多个服务器可以是用于实施隐私设置的授权/隐私服务器。响应于来自用户(或其他实体)的对储存在数据存储中的特殊对象的请求,社交网络系统902可对数据存储发送对于该对象的请求。该请求可识别与请求相关联的用户,并且如果授权服务器基于与对象相关联的隐私设置而确定授权该用户访问对象,则可仅将其发送给该用户(或者该用户的客户端系统906)。如果对请求的用户未授权访问对象,那么授权服务器可防止从数据存储取回所请求的对象,或者可防止将所请求的对象发送给用户。在搜索表达式上下文中,如果授权查询用户访问对象,那么可仅将该对象作为搜索结果而生成。换句话说,对象必须具有对于查询用户来说可见的可见性。如果对象具有对用户不可见的可见性,那么可将该对象排除在搜索结果之外。虽然本发明描述了以特殊方式实施隐私设置,但是本发明考虑了以任何合适的方式实施隐私设置。

参考其具体代表性实施例描述了以上说明书。参考本文中讨论的细节描述了本发明的各种实施例及方面,并且附图举例说明了该各种实施例。以上描述和附图是说明性的,不应解释为是限制性的。描述了许多具体细节以提供各种实施例的充分理解。

在不脱离其实质或本质特征的情况下,可以其他具体形式体现另外的或另选的实施例。在所有方面中,将把所述实施例认为仅是说明性的且非限制性的。因此,本发明的范围由所附权利要求书指出,而不是由以上说明书指出。所有在权利要求书的等价含义及范围内的变化将包含在其范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1