CN112988171A - 用于动态确保sdk完整性的方法、系统和计算机程序产品 - Google Patents

用于动态确保sdk完整性的方法、系统和计算机程序产品 Download PDF

Info

Publication number
CN112988171A
CN112988171A CN202011470063.5A CN202011470063A CN112988171A CN 112988171 A CN112988171 A CN 112988171A CN 202011470063 A CN202011470063 A CN 202011470063A CN 112988171 A CN112988171 A CN 112988171A
Authority
CN
China
Prior art keywords
sdk
wrapper
core
merchant
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011470063.5A
Other languages
English (en)
Inventor
肖布·阿格拉瓦尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Visa International Service Association
Original Assignee
Visa International Service Association
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Visa International Service Association filed Critical Visa International Service Association
Publication of CN112988171A publication Critical patent/CN112988171A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • G06Q20/027Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP] involving a payment switch or gateway
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/385Payment protocols; Details thereof using an alias or single-use codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token

Abstract

一种用于动态地确保SDK完整性的系统、方法和计算机程序产品:在商家系统上通过与所述商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;执行所述SDK包装器,所述SDK包装器在执行时加载SDK核心;确定所述SDK核心的完整性;响应于确定所述SDK核心的所述完整性而在所述SDK包装器与所述SDK核心之间执行握手,并使由所述SDK包装器导出的实函数过载;并且通过所述SDK核心从所述商家系统向支付网关系统提供安全支付容器请求。

Description

用于动态确保SDK完整性的方法、系统和计算机程序产品
技术领域
本公开大体上涉及用于软件开发工具包(SDK)的系统、装置、产品、设备和方法,并且在一些实施例或方面,涉及用于动态地确保SDK完整性的方法、系统和产品。
背景技术
Accept.js是用于将安全支付数据直接发送到支付网关系统(例如,Authorize.Net等)的JavaScript库。Accept.js捕获支付数据并将其直接提交给支付网关系统,以换取一次性使用令牌或支付随机数。此支付随机数可在后续createTransactionRequest API调用中用于代替支付数据。AcceptCore.js验证从商家网页传递到支付网关系统的信息,并且响应于信息被验证而调用安全支付容器请求。Accept.js和AcceptCore.js库由发布在https://developer.authorize.net/api/reference/上的Authorize.Net API参考描述,所述参考的全部内容以全文引用的方式并入本文中。
当商家网页通过将Accept.js和AcceptCore.js库作为脚本标签添加到商家网页来加载客户端侧软件开发工具包(SDK),例如Authorize.Net提供的客户端侧SDK,则中间人攻击可能会更改SDK。因此,需要验证SDK的完整性。商家网站可包括W3C子资源完整性校验,其由2016年6月23日发布在https://www.w3.org/TR/SRI/上的W3C推荐标准定义,所述推荐标准的全部内容以全文引用的方式并入本文中,并且所述W3C推荐标准是一种机制,用户代理可通过这种机制来验证获取的资源是否在无意外操纵的情况下被交付。例如,来自W3C子资源完整性机制的完整性校验散列可作为脚本标签与AcceptCore.js库一起添加到商家网页,以校验AcceptCore.js库的完整性。但是,如果发布了新版本的AcceptCore.js库和/或更改了AcceptCore.js库,则散列也会发生更改,因此必须更新商家网页以反映所述更改,从而使AcceptCore.js库通过或满足完整性校验。因此,商家可从商家网页中完全除去完整性校验散列,以避免必须反复地更新商家网页而可能使商家网页上进行的交易遭受中间人攻击和/或类似情况。因此,本领域需要改进SDK完整性校验。
发明内容
因此,提供了用于动态地确保SDK完整性的改进系统、装置、产品、设备和/或方法。
根据一些非限制性实施例或方面,提供了一种计算机实施的方法,包括:用至少一个处理器在商家系统上通过与所述商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;用至少一个处理器来执行所述SDK包装器,其中所述SDK包装器在执行时加载SDK核心;用至少一个处理器来确定所述SDK核心的完整性;响应于确定所述SDK核心的所述完整性而用至少一个处理器在所述SDK包装器与所述SDK核心之间执行握手,并使由所述SDK包装器导出的实函数过载;并且用至少一个处理器通过所述SDK核心从所述商家系统向支付网关系统提供安全支付容器请求。
在一些非限制性实施例或方面,所述方法进一步包括:用至少一个处理器在所述商家系统上通过所述商家网页接收与用户的账户相关联的账户数据,其中响应于通过所述商家网页接收所述账户数据而加载所述SDK包装器,并且其中所述安全支付容器请求包括所述账户数据。
在一些非限制性实施例或方面,所述方法进一步包括:响应于提供所述安全支付容器请求而用至少一个处理器从所述支付网关系统接收与所述账户数据相关联的令牌。
在一些非限制性实施例或方面,确定所述SDK核心的所述完整性包括对所述SDK核心执行W3C子资源完整性校验散列。
在一些非限制性实施例或方面,响应于所述SDK包装器与所述SDK核心之间的成功握手而提供所述安全支付容器请求。
在一些非限制性实施例或方面,执行所述SDK包装器会将所述实函数公开为公用方法,并且其中所述实函数响应于被所述商家系统调用而抛出错误。
在一些非限制性实施例或方面,所述SDK包装器包括Accept.js库,并且所述SDK核心包括AcceptCore.js库。
根据一些非限制性实施例或方面,提供一种计算系统,包括:一个或多个处理器,其被编程和/或配置成:在商家系统上通过与所述商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;执行所述SDK包装器,其中所述SDK包装器在执行时加载SDK核心;确定所述SDK核心的完整性;响应于确定所述SDK核心的所述完整性而在所述SDK包装器与所述SDK核心之间执行握手,并使由所述SDK包装器导出的实函数过载;并且通过所述SDK核心从所述商家系统向支付网关系统提供安全支付容器请求。
在一些非限制性实施例或方面,所述一个或多个处理器进一步被编程和/或配置成:在所述商家系统上通过所述商家网页接收与用户的账户相关联的账户数据,其中响应于通过所述商家网页接收所述账户数据而加载所述SDK包装器,并且其中所述安全支付容器请求包括所述账户数据。
在一些非限制性实施例或方面,所述一个或多个处理器进一步被编程和/或配置成:响应于提供所述安全支付容器请求而从所述支付网关系统接收与所述账户数据相关联的令牌。
在一些非限制性实施例或方面,确定所述SDK核心的所述完整性包括对所述SDK核心执行W3C子资源完整性校验散列。
在一些非限制性实施例或方面,响应于所述SDK包装器与所述SDK核心之间的成功握手而提供所述安全支付容器请求。
在一些非限制性实施例或方面,执行所述SDK包装器会将所述实函数公开为公用方法,并且其中所述实函数响应于被所述商家系统调用而抛出错误。
在一些非限制性实施例或方面,所述SDK包装器包括Accept.js库,并且所述SDK核心包括AcceptCore.js库。
根据一些非限制性实施例或方面,提供了一种包括至少一个非瞬态计算机可读介质的计算机程序产品,所述至少一个非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:在商家系统上通过与所述商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;执行所述SDK包装器,其中所述SDK包装器在执行时加载SDK核心;确定所述SDK核心的完整性;响应于确定所述SDK核心的所述完整性而在所述SDK包装器与所述SDK核心之间执行握手,并使由所述SDK包装器导出的实函数过载;并且通过所述SDK核心从所述商家系统向支付网关系统提供安全支付容器请求。
在一些非限制性实施例或方面,所述指令进一步使所述至少一个处理器:在所述商家系统上通过所述商家网页接收与用户的账户相关联的账户数据,其中响应于通过所述商家网页接收所述账户数据而加载所述SDK包装器,并且其中所述安全支付容器请求包括所述账户数据。
在一些非限制性实施例或方面,所述指令进一步使所述至少一个处理器:响应于提供所述安全支付容器请求而从所述支付网关系统接收与所述账户数据相关联的令牌。
在一些非限制性实施例或方面,确定所述SDK核心的所述完整性包括对所述SDK核心执行W3C子资源完整性校验散列。
在一些非限制性实施例或方面,响应于所述SDK包装器与所述SDK核心之间的成功握手而提供所述安全支付容器请求。
在一些非限制性实施例或方面,执行所述SDK包装器会将所述实函数公开为公用方法,并且其中所述实函数响应于被所述商家系统调用而抛出错误。
在一些非限制性实施例或方面,所述SDK包装器包括Accept.js库,并且所述SDK核心包括AcceptCore.js库。
在以下编号条款中阐述其它实施例或方面。
条款1.一种计算机实施的方法,包括:用至少一个处理器在商家系统上通过与所述商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;用至少一个处理器来执行所述SDK包装器,其中所述SDK包装器在执行时加载SDK核心;用至少一个处理器来确定所述SDK核心的完整性;响应于确定所述SDK核心的所述完整性而用至少一个处理器在所述SDK包装器与所述SDK核心之间执行握手,并使由所述SDK包装器导出的实函数过载;并且用至少一个处理器通过所述SDK核心从所述商家系统向支付网关系统提供安全支付容器请求。
条款2.根据条款1所述的计算机实施的方法,进一步包括:用至少一个处理器在所述商家系统上通过所述商家网页接收与用户的账户相关联的账户数据,其中响应于通过所述商家网页接收所述账户数据而加载所述SDK包装器,并且其中所述安全支付容器请求包括所述账户数据。
条款3.根据条款1或2所述的计算机实施的方法,进一步包括:响应于提供所述安全支付容器请求而用至少一个处理器从所述支付网关系统接收与所述账户数据相关联的令牌。
条款4.根据条款1至3中任一项所述的计算机实施的方法,其中确定所述SDK核心的所述完整性包括对所述SDK核心执行W3C子资源完整性校验散列。
条款5.根据条款1至4中任一项所述的计算机实施的方法,其中响应于所述SDK包装器与所述SDK核心之间的成功握手而提供所述安全支付容器请求。
条款6.根据条款1至5中任一项所述的计算机实施的方法,其中执行所述SDK包装器会将所述实函数公开为公用方法,并且其中所述实函数响应于被所述商家系统调用而抛出错误。
条款7.根据条款1至6中任一项所述的计算机实施的方法,其中所述SDK包装器包括Accept.js库,并且其中所述SDK核心包括AcceptCore.js库。
条款8.一种计算系统,包括:一个或多个处理器,其被编程和/或配置成:在商家系统上通过与所述商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;执行所述SDK包装器,其中所述SDK包装器在执行时加载SDK核心;确定所述SDK核心的完整性;响应于确定所述SDK核心的所述完整性而在所述SDK包装器与所述SDK核心之间执行握手,并使由所述SDK包装器导出的实函数过载;并且通过所述SDK核心从所述商家系统向支付网关系统提供安全支付容器请求。
条款9.根据条款8所述的计算系统,其中所述一个或多个处理器进一步被编程和/或配置成:在所述商家系统上通过所述商家网页接收与用户的账户相关联的账户数据,其中响应于通过所述商家网页接收所述账户数据而加载所述SDK包装器,并且其中所述安全支付容器请求包括所述账户数据。
条款10.根据条款8或9所述的计算系统,其中所述一个或多个处理器进一步被编程和/或配置成:响应于提供所述安全支付容器请求而从所述支付网关系统接收与所述账户数据相关联的令牌。
条款11.根据条款8至10中任一项所述的计算系统,其中确定所述SDK核心的所述完整性包括对所述SDK核心执行W3C子资源完整性校验散列。
条款12.根据条款8至11中任一项所述的计算系统,其中响应于所述SDK包装器与所述SDK核心之间的成功握手而提供所述安全支付容器请求。
条款13.根据条款8至12中任一项所述的计算系统,其中执行所述SDK包装器会将所述实函数公开为公用方法,并且其中所述实函数响应于被所述商家系统调用而抛出错误。
条款14.根据条款8至13中任一项所述的计算系统,其中所述SDK包装器包括Accept.js库,并且其中所述SDK核心包括AcceptCore.js库。
条款15.一种包括至少一个非瞬态计算机可读介质的计算机程序产品,所述至少一个非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:在商家系统上通过与所述商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;执行所述SDK包装器,其中所述SDK包装器在执行时加载SDK核心;确定所述SDK核心的完整性;响应于确定所述SDK核心的所述完整性而在所述SDK包装器与所述SDK核心之间执行握手,并使由所述SDK包装器导出的实函数过载;并且通过所述SDK核心从所述商家系统向支付网关系统提供安全支付容器请求。
条款16.根据条款15所述的计算机程序产品,其中所述指令进一步使所述至少一个处理器:在所述商家系统上通过所述商家网页接收与用户的账户相关联的账户数据,其中响应于通过所述商家网页接收所述账户数据而加载所述SDK包装器,并且其中所述安全支付容器请求包括所述账户数据。
条款17.根据条款15或16所述的计算机程序产品,其中所述指令进一步使所述至少一个处理器:响应于提供所述安全支付容器请求而从所述支付网关系统接收与所述账户数据相关联的令牌。
条款18.根据条款15至17中任一项所述的计算机程序产品,其中确定所述SDK核心的所述完整性包括对所述SDK核心执行W3C子资源完整性校验散列。
条款19.根据条款15至18中任一项所述的计算机程序产品,其中响应于所述SDK包装器与所述SDK核心之间的成功握手而提供所述安全支付容器请求。
条款20.根据条款15至19中任一项所述的计算机程序产品,其中执行所述SDK包装器会将所述实函数公开为公用方法,并且其中所述实函数响应于被所述商家系统调用而抛出错误。
条款21.根据条款15至20中任一项所述的计算机程序产品,其中所述SDK包装器包括Accept.js库,并且其中所述SDK核心包括AcceptCore.js库。
在参考附图考虑以下描述和所附权利要求书之后,本公开的这些和其它特征和特性以及相关结构元件和各部分的组合的操作方法和功能以及制造经济性将变得更加显而易见,所有附图形成本说明书的部分,其中相似附图标号在各图中标示对应部分。然而,应明确地理解,各图式仅用于说明和描述目的,并非旨在作为对限制的定义。除非上下文另外明确规定,否则在本说明书和权利要求书中所用时,单数形式“一”及“所述”包括多个指示物。
附图说明
下文参考示意性附图中示出的示范性实施例或方面更详细地解释额外优点和细节,在附图中:
图1是其中可实施本文所描述的系统、装置、产品、设备和/或方法的环境的非限制性实施例或方面的图;
图2是图1的一个或多个装置和/或一个或多个系统的组件的非限制性实施例或方面的图;
图3是用于动态地确保软件开发工具包(SDK)完整性的流程的非限制性实施例或方面的流程图;以及
图4是用于动态地确保SDK完整性的流程的非限制性实施例或方面的实施方案的信号流程图。
具体实施方式
应理解,除了明确指定为相反的情况之外,本公开可采用各种替代变化和步骤顺序。还应理解,附图中所示的以及在以下说明书中描述的特定装置和过程仅仅是示范性和非限制性实施例或方面。因此,与本文公开的实施例或方面有关的特定尺寸和其它物理特性不应被视为限制。
本文所使用的方面、组件、元件、结构、动作、步骤、功能、指令等都不应当被理解为关键的或必要的,除非明确地如此描述。并且,如本文所使用,冠词“一”希望包括一个或多个项目,并且可与“一个或多个”和“至少一个”互换使用。此外,如本文所使用,术语“集合”希望包括一个或多个项目(例如,相关项目、不相关项目、相关项目与不相关项目的组合等),并且可与“一个或多个”或“至少一个”互换使用。在希望仅有一个项目的情况下,使用术语“一个”或类似语言。并且,如本文所使用,术语“具有”等希望是开放式术语。另外,除非另外明确陈述,否则短语“基于”希望意味着“至少部分地基于”。
如本文所使用,术语“通信(communication/communicate)”是指接收或传达一个或多个信号、消息、命令或其它类型的数据。对于要与另一单元通信的一个单元(例如,任何装置、系统或其组件)意味着所述一个单元能够直接或间接从另一单元接收数据和/或将数据传输到另一单元。这可指本质上有线和/或无线的直接或间接连接。另外,尽管所传输的数据可在第一单元与第二单元之间被修改、处理、中继和/或路由,但这两个单元也可彼此通信。例如,尽管第一单元被动地接收数据且不会主动地将数据传输到第二单元,但第一单元也可与第二单元通信。作为另一实例,如果中间单元处理来自一个单元的数据且将经处理数据传输到第二单元,则第一单元可与第二单元通信。应当理解,可能有许多其它布置。
显然,本文所描述的系统和/或方法可以不同形式的硬件、软件或硬件和软件的组合实施。用于实施这些系统和/或方法的实际专用控制硬件或软件代码并不限制实施方案。因此,本文在不参考特定软件代码的情况下描述了系统和/或方法的操作和行为,应理解,软件和硬件可以设计成基于本文的描述来实施系统和/或方法。
本文中结合阈值描述一些非限制性实施例或方面。如本文所使用,满足阈值可指大于阈值、多于阈值、高于阈值、大于或等于阈值、小于阈值、少于阈值、低于阈值、小于或等于阈值、等于阈值等的值。
如本文所使用,术语“交易服务提供商”可指接收来自商家或其它实体的交易授权请求且在一些情况下通过交易服务提供商与发行方机构之间的协议来提供支付保证的实体。术语“交易服务提供商”和“交易服务提供商系统”还可指由交易服务提供商或代表交易服务提供商操作的一个或多个计算机系统,例如执行一个或多个软件应用程序的交易处理系统。交易处理系统可包括具有一个或多个处理器的服务器计算机,并且在一些非限制性实施例或方面,可由交易服务提供商或代表交易服务提供商操作。
如本文所使用,术语“账户标识符”可包括一个或多个主账号(PAN)、令牌或与用户(例如,客户、消费者等)的客户账户相关联的其它标识符(例如,全局唯一标识符(GUID)、通用唯一标识符(UUID)等)。术语“令牌”可指用作PAN等原始账户标识符的替代或替换标识符的标识符。账户标识符可是文字数字的,或是字符和/或符号的任何组合。令牌可与PAN或一个或多个数据库中的其它原始账户标识符相关联,使得可在不直接使用原始账户标识符的情况下使用令牌进行交易。在一些实例中,例如PAN的原始账户标识符可与用于不同个人或目的的多个令牌相关联。
如本文所使用,术语“发行方机构”、“便携式金融装置发行方”、“发行方”或“发行方银行”可指一个或多个实体,所述一个或多个实体向用户(例如,客户、消费者、组织等)提供一个或多个账户以进行交易(例如,支付交易),例如发起信用卡支付交易和/或借记卡支付交易。例如,发行方机构可向用户提供例如个人账号(PAN)等账户标识符,所述账户标识符唯一地标识与所述用户相关联的一个或多个账户。账户标识符可在例如实体金融工具(例如,支付卡)等便携式金融装置上实施,和/或可是电子的并且用于电子支付。在一些非限制性实施例或方面,发行方机构可与唯一地标识发行方机构的银行标识号码(BIN)相关联。如本文所使用,“发行方机构系统”可指由发行方机构或代表发行方机构操作的一个或多个计算机系统,例如执行一个或多个软件应用程序的服务器计算机。例如,发行方机构系统可包括用于授权支付交易的一个或多个授权服务器。
如本文所使用,术语“商家”可指基于例如支付交易的交易向客户提供产品和/或服务或者对产品和/或服务的使用权的个人或实体。术语“商家”或“商家系统”还可指由商家或代表商家操作的一个或多个计算机系统,例如执行一个或多个软件应用程序的服务器计算机。如本文所使用,“销售点(POS)系统”可指由商家用来与客户进行支付交易的一个或多个计算机和/或外围装置,包括一个或多个读卡器、近场通信(NFC)接收器、射频标识(RFID)接收器和/或其它非接触收发器或接收器、基于接触的接收器、支付终端、计算机、服务器、输入装置和/或可用于发起支付交易的其它类似装置。
如本文所使用,术语“移动装置”可指被配置成与一个或多个网络通信的一个或多个便携式电子装置。举例来说,移动装置可包括蜂窝电话(例如,智能电话或标准蜂窝电话)、便携式计算机(例如,平板计算机、膝上型计算机等)、可穿戴装置(例如,手表、眼镜、镜片、衣服等)、个人数字助理(PDA)和/或其它类似装置。如本文所使用,术语“客户端装置”和“用户装置”是指被配置成与一个或多个服务器或远程装置和/或系统通信的任何电子装置。客户端装置或用户装置可包括移动装置、支持网络的设备(例如,支持网络的电视、冰箱、恒温器等)、计算机、POS系统和/或能够与网络通信的任何其它装置或系统。
如本文所使用,术语“计算装置”或“计算机装置”可指被配置成直接或间接地与一个或多个网络通信或在一个或多个网络上进行通信的一个或多个电子装置。计算装置可是移动装置、台式计算机等。此外,术语“计算机”可指包括用于接收、处理和输出数据的必要组件且通常包括显示器、处理器、存储器、输入装置和网络接口的任何计算装置。“应用程序”或“应用程序编程接口”(API)是指计算机代码或在计算机可读介质上排序的其它数据,其可由处理器执行以促进软件组件之间的交互,例如客户端侧前端和/或服务器端侧后端的交互以用于从客户端接收数据。“接口”是指生成的显示器,例如用户可直接或间接(例如,通过键盘、鼠标、触摸屏等)与其交互的一个或多个图形用户接口(GUI)。
如本文所使用,术语“电子钱包”和“电子钱包应用程序”是指被配置成发起和/或进行支付交易的一个或多个电子装置和/或软件应用程序。例如,电子钱包可包括执行电子钱包应用程序的移动装置,并且还可包括用于维护交易数据并将交易数据提供给移动装置的服务器端侧软件和/或数据库。“电子钱包提供商”可包括为客户提供和/或维护电子钱包的实体,例如Google WalletTM、Android
Figure BDA0002833363770000101
Apple
Figure BDA0002833363770000102
Samsung
Figure BDA0002833363770000103
和/或其它类似的电子支付系统。在一些非限制性实例中,发行方银行可是电子钱包提供商。
如本文所使用,举例来说,术语“便携式金融装置”或“支付装置”可指例如支付卡(例如,信用卡或借记卡)、礼品卡、智能卡、智能介质、工资卡、医疗保健卡、腕带、包含账户信息的机器可读介质、钥匙链装置或吊坠、RFID应答器、零售商折扣或会员卡、执行电子钱包应用程序的移动装置、个人数字助理(PDA)、安全卡、访问卡、无线终端和/或应答器。便携式金融装置可包括易失性或非易失性存储器,用于存储例如账户标识符和/或账户持有人姓名的信息。
如本文所使用,术语“服务器”可指或包括一个或多个处理器或计算机、存储装置,或由例如因特网的网络环境中的多方操作或促进多方进行通信和处理的类似计算机布置,但应了解,可通过一个或多个公共或专用网络环境促进通信,并且各种其它布置是可能的。此外,在网络环境中直接或间接通信的多个计算机,例如服务器,或其它计算机化装置,例如POS装置可构成例如商家的POS系统的“系统”。
如本文所使用,术语“收单方”可指由交易服务提供商许可和/或由交易服务提供商批准以使用交易服务提供商的便携式金融装置发起交易的实体。收单方还可指由收单方或代表收单方操作的一个或多个计算机系统,例如执行一个或多个软件应用程序的服务器计算机(例如,“收单方服务器”)。“收单方”可是商家银行,或者在一些情况下,商家系统可是收单方。所述交易可包括原始信用交易(OCT)和账户资金交易(AFT)。交易服务提供商可授权收单方签署服务提供商的商家以使用交易服务提供商的便携式金融装置发起交易。收单方可与支付辅助者签约,以使辅助者能够赞助商家。收单方可根据交易服务提供商规章监视支付服务商的合规性。收单方可进行对支付辅助者的尽职调查,并确保在签署赞助商家之前进行适当的尽职调查。收单方可对他们运营或赞助的所有交易服务提供商程序承担责任。收单方可对其支付服务商以及其或其支付服务商赞助的商家的行为负责。
如本文所使用,术语“支付网关”可指实体和/或由此类实体或代表此类实体操作的支付处理系统,所述实体(例如,商家服务提供商、支付服务提供商、支付服务商、与收单方有合约的支付服务商、支付集合人(payment aggregator)等)提供支付服务(例如,交易服务提供商支付服务、支付处理服务等)给一个或多个商家。支付服务可与由交易服务提供商管理的便携式金融装置的使用相关联。如本文所使用,术语“支付网关系统”可指由支付网关或代表支付网关操作的一个或多个计算机系统、计算机装置、服务器、服务器群组等。
提供了用于动态地确保软件开发工具包(SDK)完整性的改进系统、装置、产品、设备和/或方法。
本公开的非限制性实施例或方面涉及用于动态地确保SDK完整性的系统、方法和计算机程序产品:在商家系统上通过与商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;执行SDK包装器,所述SDK包装器在执行时加载SDK核心;确定SDK核心的完整性;响应于确定所述SDK核心的所述完整性而在SDK包装器与SDK核心之间执行握手,并使由SDK包装器导出的实函数过载;并且通过SDK核心从商家系统向支付网关系统提供安全支付容器请求。
以此方式,本公开的非限制性实施例或方面可提供SDK包装器,其在每次SDK核心更新或改变时动态地确保新的或已更新的完整性校验散列,并且确保商家系统能够使用来自支付网关系统的所需SDK包装器,这使得在每次SDK核心更新或改变时商家无需更新商家网页和/或完整性校验散列,并且改进了商家系统对所需安全措施的实施。
现在参考图1,图1是其中可实施本文所描述的装置、系统、方法和/或产品的示例环境100的图式。如图1所示,环境100包括交易处理网络101,其可包括商家系统102、支付网关系统104、收单方系统106、交易服务提供商系统108和/或发行方系统110、用户装置112和/或通信网络114。交易处理网络101、商家系统102、支付网关系统104、收单方系统106、交易服务提供商系统108、发行方系统110和/或用户装置112可通过有线连接、无线连接或有线连接和无线连接的组合互连(例如,建立连接以进行通信等)。
商家系统102可包括一个或多个装置,所述装置能够(例如,通过通信网络114等)从支付网关系统104、收单方系统106、交易服务提供商系统108、发行方系统110和/或用户装置112接收信息和/或数据,和/或(例如,通过通信网络114等)将信息和/或数据传送到支付网关系统104、收单方系统106、交易服务提供商系统108、发行方系统110和/或用户装置112。商家系统102可包括能够通过与用户装置112的通信连接(例如,NFC通信连接、RFID通信连接、
Figure BDA0002833363770000121
通信连接等)从用户装置112接收信息和/或数据和/或通过所述通信连接将信息和/或数据传送到用户装置112的装置。例如,商家系统102可包括计算装置,例如服务器、服务器群组、客户端装置、客户端装置群组和/或其它类似装置。在一些非限制性实施例或方面,商家系统102可与本文所描述的商家相关联。在一些非限制性实施例或方面,商家系统102可包括能够供商家用以与用户进行支付交易的一个或多个装置,例如计算机、计算机系统和/或外围装置。例如,商家系统102可包括POS装置和/或POS系统。
支付网关系统104可包括一个或多个装置,所述装置能够(例如,通过通信网络114等)从商家系统102、收单方系统106、交易服务提供商系统108、发行方系统110和/或用户装置112接收信息和/或数据,和/或(例如,通过通信网络114等)将信息和/或数据传送到商家系统102、收单方系统106、交易服务提供商系统108、发行方系统110和/或用户装置112。例如,支付网关系统104可包括计算装置,例如服务器、服务器群组和/或其它类似装置。在一些非限制性实施例或方面,支付网关系统104与本文所描述的支付网关相关联。
收单方系统106可包括一个或多个装置,所述装置能够(例如,通过通信网络114等)从商家系统102、支付网关系统104、交易服务提供商系统108、发行方系统110和/或用户装置112接收信息和/或数据,和/或(例如,通过通信网络114等)将信息和/或数据传送到商家系统102、支付网关系统104、交易服务提供商系统108、发行方系统110和/或用户装置112。例如,收单方系统106可包括计算装置,例如服务器、服务器群组和/或其它类似装置。在一些非限制性实施例或方面,收单方系统106可与本文所描述的收单方相关联。
交易服务提供商系统108可包括一个或多个装置,所述装置能够(例如,通过通信网络114等)从商家系统102、支付网关系统104、收单方系统106、发行方系统110和/或用户装置112接收信息和/或数据,和/或(例如,通过通信网络114等)将信息和/或数据传送到商家系统102、支付网关系统104、收单方系统106、发行方系统110和/或用户装置112。例如,交易服务提供商系统108可包括计算装置,例如服务器(例如,交易处理服务器等)、服务器群组和/或其它类似装置。在一些非限制性实施例或方面,交易服务提供商系统108可与本文所描述的交易服务提供商相关联。在一些非限制性实施例或方面,交易服务提供商108可包括和/或访问一个或多个内部和/或外部数据库,其包括账户数据、交易数据、商家数据、人口统计数据等。
发行方系统110可包括一个或多个装置,所述装置能够(例如,通过通信网络114等)从商家系统102、支付网关系统104、收单方系统106、交易服务提供商系统108和/或用户装置112接收信息和/或数据,和/或(例如,通过通信网络114等)将信息和/或数据传送到商家系统102、支付网关系统104、收单方系统106、交易服务提供商系统108和/或用户装置112。例如,发行方系统110可包括计算装置,例如服务器、服务器群组和/或其它类似装置。在一些非限制性实施例或方面,发行方系统110可与本文所描述的发行方机构相关联。例如,发行方系统110可与发行支付账户或工具(例如,信用账户、借记账户、信用卡、借记卡等)给用户(例如,与用户装置112相关联的用户等)的发行方机构相关联。
在一些非限制性实施例或方面,交易处理网络101包括通信路径中用于处理交易的多个系统。例如,交易处理网络101可包括通信路径(例如,通信路径、通信信道、通信网络等)中用于处理电子支付交易的商家系统102、支付网关系统104、收单方系统106、交易服务提供商系统108和/或发行方系统110。举例来说,交易处理网络101可通过商家系统102、支付网关系统104、收单方系统106、交易服务提供商系统108和/或发行方系统110之间的通信路径来处理(例如,接收、发起、进行、授权等)电子支付交易。
用户装置112可包括一个或多个装置,所述装置能够(例如,通过通信网络114等)从商家系统102、支付网关系统104、收单方系统106、交易服务提供商系统108和/或发行方系统110接收信息和/或数据,和/或(例如,通过通信网络114等)将信息和/或数据传送到商家系统102、支付网关系统104、收单方系统106、交易服务提供商系统108和/或发行方系统110。例如,用户装置112可包括客户端装置等。在一些非限制性实施例或方面,用户装置112能够通过短程无线通信连接(例如,NFC通信连接、RFID通信连接、
Figure BDA0002833363770000141
通信连接等)(例如,从商家系统102等)接收信息,和/或通过短程无线通信连接传送信息(例如,到商家系统102)。在一些非限制性实施例或方面,用户装置112可包括与用户装置112相关联的应用程序,例如存储在用户装置112上的应用程序、在用户装置112上存储和/或执行的移动应用程序(例如,移动装置应用程序、移动装置的本机应用程序、移动装置的移动云应用程序、电子钱包应用程序等)。
通信网络114可包括一个或多个有线和/或无线网络。例如,通信网络114可包括蜂窝网络(例如,长期演进(LTE)网络、第三代(3G)网络、第四代(4G)网络、第五代网络(5F)网络、码分多址(CDMA)网络等)、公用陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公共交换电话网络(PSTN))、专用网络、自组网络、内联网、因特网、基于光纤的网络、云计算网络等,和/或这些或其它类型的网络的组合。
提供图1所示的装置和系统的数目和布置作为实例。可存在额外装置和/或系统、更少装置和/或系统、不同装置和/或系统,和/或以与图1所示的那些不同的方式布置的装置和/或系统。此外,可在单个装置和/或系统内实施图1所示的两个或更多个装置和/或系统,或图1所示的单个装置和/或系统可实施为多个分布式装置和/或系统。另外或替代地,环境100的一组装置和/或系统(例如,一个或多个装置或系统)可执行被描述为由环境100的另一组装置和/或系统执行的一个或多个功能。
现在参考图2,图2是装置200的示例组件的图式。装置200可对应于交易处理网络101的一个或多个装置、商家系统102的一个或多个装置、支付网关系统104的一个或多个装置、收单方系统106的一个或多个装置、交易服务提供商系统108的一个或多个装置、发行方系统110的一个或多个装置,和/或用户装置112(例如,用户装置112的系统的一个或多个装置等)。在一些非限制性实施例或方面,交易处理网络101的一个或多个装置、商家系统102的一个或多个装置、支付网关系统104的一个或多个装置、收单方系统106的一个或多个装置、交易服务提供商系统108的一个或多个装置、发行方系统110的一个或多个装置、用户装置112(例如,用户装置112的系统的一个或多个装置等),和/或通信网络114的一个或多个装置可包括至少一个装置200和/或装置200的至少一个组件。如图2所示,装置200可包括总线202、处理器204、存储器206、存储组件208、输入组件210、输出组件212和通信接口214。
总线202可包括准许装置200的组件之间的通信的组件。在一些非限制性实施例或方面,处理器204可以硬件、硬件或硬件与软件的组合实施。例如,处理器204可包括处理器(例如中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)等)、微处理器、数字信号处理器(DSP)和/或可被编程以执行功能的任何处理组件(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)。存储器206可包括随机存取存储器(RAM)、只读存储器(ROM),和/或存储供处理器204使用的信息和/或指令的另一类型的动态或静态存储装置(例如,快闪存储器、磁存储器、光学存储器等)。
存储组件208可以存储与装置200的操作和使用相关的信息和/或软件。例如,存储组件208可包括硬盘(例如,磁盘、光盘、磁光盘、固态磁盘等)、压缩光盘(CD)、数字多功能光盘(DVD)、软盘、盒带、磁带和/或另一类型的计算机可读介质,以及对应的驱动器。
输入组件210可以包括准许装置200例如通过用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关、麦克风等)接收信息的组件。另外或替代地,输入组件210可包括用于感测信息的传感器(例如,全球定位系统(GPS)组件、加速度计、陀螺仪、致动器等)。输出组件212可以包括提供来自装置200的输出信息的组件(例如,显示器、扬声器、一个或多个发光二极管(LED)等)。
通信接口214可包括收发器式组件(例如,收发器、独立的接收器和传输器等),所述收发器式组件使装置200能够例如通过有线连接、无线连接,或有线和无线连接的组合与其它装置通信。通信接口214可准许装置200接收来自另一装置的信息和/或向另一装置提供信息。例如,通信接口214可包括以太网接口、光学接口、同轴接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、
Figure BDA0002833363770000161
接口、蜂窝网络接口等。
装置200可以执行本文所描述的一个或多个过程。装置200可基于处理器204执行由例如存储器206和/或存储组件208的计算机可读介质存储的软件指令来执行这些过程。计算机可读介质(例如,非瞬态计算机可读介质)在本文中定义为非瞬态存储器装置。非瞬态存储器装置包括位于单个物理存储装置内部的存储器空间或散布于多个物理存储装置上的存储器空间。
软件指令可通过通信接口214从另一计算机可读介质或从另一装置读取到存储器206和/或存储组件208中。当执行时,存储在存储器206和/或存储组件208中的软件指令可使处理器204执行本文所描述的一个或多个过程。另外或替代地,硬接线电路可替代或结合软件指令使用以执行本文所描述的一个或多个过程。因此,本文所描述的实施例或方面不限于硬件电路系统和软件的任何特定组合。
存储器206和/或存储组件208可包括数据存储装置或一个或多个数据结构(例如,数据库等)。装置200能够从存储器206和/或存储组件208中的数据存储装置或一个或多个数据结构接收信息、将信息存储在所述数据存储装置或一个或多个数据结构中、向所述数据存储装置或一个或多个数据结构传送信息或搜索其中存储的信息。例如,交易服务提供商系统108可包括和/或访问一个或多个内部和/或外部数据库,其存储与在交易处理网络101中已处理和/或正处理的交易(例如,通过交易服务提供商系统108处理的先前或历史交易)相关联的交易数据、账户数据、输入数据、输出数据、更新数据、分类数据等。
提供图2所示的组件的数目和布置作为实例。在一些非限制性实施例或方面,装置200可包括额外组件、更少组件、不同组件或以与图2所示的那些不同的方式布置的组件。另外或替代地,装置200的一组组件(例如,一个或多个组件)可执行被描述为由装置200的另一组组件执行的一个或多个功能。
现在参考图3,图3是用于动态地确保SDK完整性的流程300的非限制性实施例或方面的流程图。在一些非限制性实施例或方面,流程300的步骤中的一个或多个可(例如,完全、部分等)由商家系统102(例如,商家系统102的一个或多个装置等)执行。在一些非限制性实施例或方面,流程300的步骤中的一个或多个可(例如,完全、部分等)可由独立于或包括商家系统102的另一装置或装置群组执行,例如支付网关系统104(例如,支付网关系统104的一个或多个装置)、收单方系统106(例如,收单方系统106的一个或多个装置)、交易服务提供商系统108(例如,交易服务提供商系统108的一个或多个装置)、发行方系统110(例如,发行方系统110的一个或多个装置)和/或用户装置112(例如,用户装置112的系统的一个或多个装置)。
如图3所示,在步骤302,流程300包括接收账户数据。例如,商家系统102可接收账户数据。举例来说,商家系统102可通过与商家系统102相关联的商家网页、与用户的账户相关联的账户数据(例如,PAN、交易数据等)接收。在此实例中,商家网页可包括HTML表单标签,其用Accept.js库在商家网页上创建提交按钮。例如,表单的操作参数可设置为指向响应处理程序脚本,且提交按钮可被配置成与Accept.js库的AcceptUI部分交互。举例来说,并且也参考图4,其是用于动态地确保SDK完整性的流程的非限制性实施例或方面的实施方案400的信号流程图,在步骤S402,用户可以在用户装置112上单击用户的客户端浏览器中的提交按钮以打开支付信息表单,在表单中填写用户的支付信息(例如账户数据),并用提交按钮将表单提交给商家系统102,并且商家系统102可能会将支付信息发送到支付网关系统104(例如,Authorize.net等),如本文更详细描述的。
如图3所示,在步骤304,流程300包括加载SDK包装器。例如,商家系统102可加载SDK包装器。举例来说,商家系统102可通过与商家系统102相关联的商家网页从支付网关系统104加载SDK包装器(例如,Accept.js库等)。在此实例中,并且再次参考图4,在步骤S404,可响应于通过商家网页接收账户数据而从支付网关系统104加载SDK包装器。
在一些非限制性实施例或方面,响应于加载Accept.js库,Accept.js库导出实函数(例如,令牌化函数、安全支付容器请求函数等)作为公用方法,并且如果商家系统102调用公用方法,则所述公用方法会抛出错误。因此,可迫使商家系统102实施AcceptCore.js库,其由Accept.js库自动加载,如本文更详细描述的。
如图3所示,在步骤306,流程300包括执行SDK包装器以加载SDK核心。例如,商家系统102可执行SDK包装器以加载SDK核心。举例来说,商家系统102可执行SDK包装器,其中SDK包装器加载SDK核心(例如,AcceptCore.js库等)。在此实例中,并且再次参考图4,在步骤S406,可响应于商家系统102加载和/或执行Accept.js库而从支付网关系统104自动加载(例如,从Authorize.net的内容分发网络(CDN)等加载)AcceptCore.js库。
如图3所示,在步骤308,流程300包括确定SDK核心的完整性。例如,商家系统102可确定SDK核心的完整性。举例来说,商家系统102可确定SDK核心的完整性。在此实例中,并且再次参考图4,在步骤S408,Accept.js库响应于从支付网关系统104加载AcceptCore.js库而自动校验AcceptCore.js库的完整性是否与子资源完整性相匹配。在一些非限制性实施例或方面,确定SDK核心的完整性包括对SDK核心执行W3C子资源完整性校验散列。例如,Accept.js库可对AcceptCore.js库执行W3C子资源完整性校验散列。
如图3所示,在步骤310,流程300包括在SDK包装器与SDK核心之间执行握手。例如,商家系统102可在SDK包装器与SDK核心之间执行握手。举例来说,响应于确定SDK核心的完整性,商家系统102可在SDK包装器与SDK核心之间执行握手,并且用SDK核心的实函数(例如,用SDK核心的令牌化函数、用SDK核心的安全支付容器请求函数等)来使由SDK包装器导出的实函数过载(例如,使令牌化函数、安全支付容器请求等过载)。在此实例中,并且再次参考图4,在步骤S410,响应于子资源完整性校验散列匹配AcceptCore.js库上的散列,AcceptCore.js库可自动使由Accept.js库导出的实函数过载,并且在步骤S410,在Accept.js库与AcceptCore.js库之间自动执行握手(例如,包括同步、确认和初始化的3向握手等),这确保两个库始终在一起(例如,商家系统102无法在不执行完整性校验的情况下实施仅Accept.js库,也无法将AcceptCore.js库直接添加到商家网页自身等)
如图3所示,在步骤312,流程300包括提供安全支付容器请求。例如,商家系统102可提供安全支付容器请求。举例来说,商家系统102可通过SDK核心向支付网关系统104提供安全支付容器请求。在此实例中,安全支付容器请求可包括账户数据。在此实例中,可响应于SDK包装器与SDK核心之间的成功握手而自动提供安全支付容器请求。例如,SDK包装器可响应于SDK包装器与SDK核心之间的不成功握手而抛出错误,这可能会阻止商家系统102通过SDK核心向支付网关系统104提供安全支付容器请求。举例来说,并且再次参考图4,在步骤S412,AcceptCore.js库可响应于Accept.js库与AcceptCore.js库之间的成功握手而向支付网关系统104(例如,向Authorize.net的API CDN等)(例如,用SDK核心的令牌化函数或API、用SDK核心的安全支付容器请求功能或API等)自动提供安全支付容器请求。在此实例中,安全支付容器请求可包括与用户装置112的用户相关联的账户数据。
如图3所示,在步骤314,流程300包括接收令牌。例如,商家系统102可接收令牌。举例来说,商家系统102可响应于提供安全支付容器请求而从支付网关系统104接收与账户数据相关联的令牌。在此实例中,并且再次参考图4,在步骤S414,AcceptCore.js库可响应于提供安全支付容器请求而从支付网关系统104接收与包括在安全支付容器请求中的账户数据相关联的令牌。
尽管已出于说明和描述的目的详细描述了实施例或方面,但应理解,此类细节仅用于所述目的,且所述实施例或方面不限于所公开的实施例或方面,而是相反,旨在涵盖在所附权利要求书的精神和范围内的修改和等效布置。例如,应理解,本公开预期,尽可能地,任何实施例或方面的一个或多个特征可与任何其它实施例或方面的一个或多个特征组合。实际上,这些特征中的任一个可以未在权利要求书中具体地叙述和/或在说明书中公开的方式组合。尽管下文列出的每项从属权利要求可能直接取决于仅一项权利要求,但可能实施方案的公开内容包括与权利要求集中的每项其它权利要求相组合的每项从属权利要求。

Claims (20)

1.一种计算机实施的方法,包括:
用至少一个处理器在商家系统上通过与所述商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;
用至少一个处理器来执行所述SDK包装器,其中所述SDK包装器在执行时加载SDK核心;
用至少一个处理器来确定所述SDK核心的完整性;
响应于确定所述SDK核心的所述完整性而用至少一个处理器在所述SDK包装器与所述SDK核心之间执行握手,并使由所述SDK包装器导出的实函数过载;并且
用至少一个处理器通过所述SDK核心从所述商家系统向支付网关系统提供安全支付容器请求。
2.根据权利要求1所述的计算机实施的方法,进一步包括:
用至少一个处理器在所述商家系统上通过所述商家网页接收与用户的账户相关联的账户数据,其中响应于通过所述商家网页接收所述账户数据而加载所述SDK包装器,并且其中所述安全支付容器请求包括所述账户数据。
3.根据权利要求1所述的计算机实施的方法,进一步包括:
响应于提供所述安全支付容器请求而用至少一个处理器从所述支付网关系统接收与所述账户数据相关联的令牌。
4.根据权利要求1所述的计算机实施的方法,其中确定所述SDK核心的所述完整性包括对所述SDK核心执行W3C子资源完整性校验散列。
5.根据权利要求1所述的计算机实施的方法,其中响应于所述SDK包装器与所述SDK核心之间的成功握手而提供所述安全支付容器请求。
6.根据权利要求1所述的计算机实施的方法,其中执行所述SDK包装器会将所述实函数公开为公用方法,并且其中所述实函数响应于被所述商家系统调用而抛出错误。
7.根据权利要求1所述的计算机实施的方法,其中所述SDK包装器包括Accept.js库,并且其中所述SDK核心包括AcceptCore.js库。
8.一种计算系统,包括:
一个或多个处理器,其被编程和/或配置成:
在商家系统上通过与所述商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;
执行所述SDK包装器,其中所述SDK包装器在执行时加载SDK核心;
确定所述SDK核心的完整性;
响应于确定所述SDK核心的所述完整性而在所述SDK包装器与所述SDK核心之间执行握手,并使由所述SDK包装器导出的实函数过载;并且
通过所述SDK核心从所述商家系统向支付网关系统提供安全支付容器请求。
9.根据权利要求8所述的计算系统,其中所述一个或多个处理器进一步被编程和/或配置成:
在所述商家系统上通过所述商家网页接收与用户的账户相关联的账户数据,其中响应于通过所述商家网页接收所述账户数据而加载所述SDK包装器,并且其中所述安全支付容器请求包括所述账户数据。
10.根据权利要求8所述的计算系统,其中所述一个或多个处理器进一步被编程和/或配置成:
响应于提供所述安全支付容器请求而从所述支付网关系统接收与所述账户数据相关联的令牌。
11.根据权利要求8所述的计算系统,其中确定所述SDK核心的所述完整性包括对所述SDK核心执行W3C子资源完整性校验散列。
12.根据权利要求8所述的计算系统,其中响应于所述SDK包装器与所述SDK核心之间的成功握手而提供所述安全支付容器请求。
13.根据权利要求8所述的计算系统,其中执行所述SDK包装器将所述实函数公开为公用方法,并且其中所述实函数响应于被所述商家系统调用而抛出错误。
14.根据权利要求8所述的计算系统,其中所述SDK包装器包括Accept.js库,并且其中所述SDK核心包括AcceptCore.js库。
15.一种包括至少一个非瞬态计算机可读介质的计算机程序产品,所述至少一个非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:
在商家系统上通过与所述商家系统相关联的商家网页从支付网关系统加载软件开发工具包(SDK)包装器;
执行所述SDK包装器,其中所述SDK包装器在执行时加载SDK核心;
确定所述SDK核心的完整性;
响应于确定所述SDK核心的所述完整性而在所述SDK包装器与所述SDK核心之间执行握手,并使由所述SDK包装器导出的实函数过载;并且
通过所述SDK核心从所述商家系统向支付网关系统提供安全支付容器请求。
16.根据权利要求15所述的计算机程序产品,其中所述指令进一步使所述至少一个处理器:
在所述商家系统上通过所述商家网页接收与用户的账户相关联的账户数据,其中响应于通过所述商家网页接收所述账户数据而加载所述SDK包装器,并且其中所述安全支付容器请求包括所述账户数据。
17.根据权利要求15所述的计算机程序产品,其中所述指令进一步使所述至少一个处理器:
响应于提供所述安全支付容器请求而从所述支付网关系统接收与所述账户数据相关联的令牌。
18.根据权利要求15所述的计算机程序产品,其中确定所述SDK核心的所述完整性包括对所述SDK核心执行W3C子资源完整性校验散列。
19.根据权利要求15所述的计算机程序产品,其中响应于所述SDK包装器与所述SDK核心之间的成功握手而提供所述安全支付容器请求。
20.根据权利要求15所述的计算机程序产品,其中执行所述SDK包装器将所述实函数公开为公用方法,并且其中所述实函数响应于被所述商家系统调用而抛出错误。
CN202011470063.5A 2019-12-18 2020-12-14 用于动态确保sdk完整性的方法、系统和计算机程序产品 Pending CN112988171A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/718,475 2019-12-18
US16/718,475 US11587075B2 (en) 2019-12-18 2019-12-18 Method, system, and computer program product for dynamically ensuring SDK integrity

Publications (1)

Publication Number Publication Date
CN112988171A true CN112988171A (zh) 2021-06-18

Family

ID=76344968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011470063.5A Pending CN112988171A (zh) 2019-12-18 2020-12-14 用于动态确保sdk完整性的方法、系统和计算机程序产品

Country Status (3)

Country Link
US (2) US11587075B2 (zh)
CN (1) CN112988171A (zh)
SG (1) SG10202012230VA (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200204552A1 (en) * 2011-04-12 2020-06-25 Salesforce.Com, Inc. Inter-application management of user credential data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030140007A1 (en) * 1998-07-22 2003-07-24 Kramer Glenn A. Third party value acquisition for electronic transaction settlement over a network
GB2404537B (en) * 2003-07-31 2007-03-14 Hewlett Packard Development Co Controlling access to data
US8516578B1 (en) * 2010-12-22 2013-08-20 Google Inc. Vertex array access bounds checking
US10318941B2 (en) * 2011-12-13 2019-06-11 Visa International Service Association Payment platform interface widget generation apparatuses, methods and systems
US9262600B2 (en) 2011-10-04 2016-02-16 Arxan Technologies, Inc. Tamper proof mutating software
CN104106276B (zh) * 2011-10-12 2019-03-19 万事达移动交易方案公司 多层安全移动交易使能平台
US20130346302A1 (en) * 2012-06-20 2013-12-26 Visa International Service Association Remote Portal Bill Payment Platform Apparatuses, Methods and Systems
RU2666301C2 (ru) * 2014-07-06 2018-09-06 Виза Интернешнл Сервис Ассосиэйшн Устройства, способы и системы обеспечения динамической кнопки оформления заказа
GB201508035D0 (en) 2015-05-12 2015-06-24 Critical Blue Ltd Crowd sourced fingerprinting
US10708054B2 (en) 2017-10-12 2020-07-07 Visa International Service Association Secure microform
US11349665B2 (en) 2017-12-22 2022-05-31 Motorola Solutions, Inc. Device attestation server and method for attesting to the integrity of a mobile device
US20190253333A1 (en) * 2018-02-12 2019-08-15 Ca, Inc. Methods and devices for network web resource performance

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200204552A1 (en) * 2011-04-12 2020-06-25 Salesforce.Com, Inc. Inter-application management of user credential data
US11924207B2 (en) * 2011-04-12 2024-03-05 Salesforce, Inc. Inter-application management of user credential data

Also Published As

Publication number Publication date
SG10202012230VA (en) 2021-07-29
US20210192506A1 (en) 2021-06-24
US20230126584A1 (en) 2023-04-27
US11587075B2 (en) 2023-02-21

Similar Documents

Publication Publication Date Title
US11888694B2 (en) Method, system, and computer program product for configuring a gateway
US20230130887A1 (en) Method, System, and Computer Program Product for Dynamically Scheduling Machine Learning Inference Jobs with Different Quality of Services on a Shared Infrastructure
US11875348B2 (en) System, method, and computer program product to ensure data integrity for conducting a payment transaction
US20230126584A1 (en) Method, System, and Computer Program Product for Dynamically Ensuring SDK Integrity
US20230419311A1 (en) System, Method, and Computer Program Product for Dynamic Passcode Communication
US11640592B2 (en) System, method, and apparatus for integrating multiple payment options on a merchant webpage
US20200364678A1 (en) System, Method, and Computer Program Product for Conducting a Payment Transaction
US20230222459A1 (en) System, Method, and Computer Program Product for Updating an Application Programming Interface Field of a Transaction Message
US20200090229A1 (en) System, Method, and Computer Program Product to Test a Campaign End-To-End Before Launch
US11823138B2 (en) System, method, and computer program product for conducting a payment transaction involving payment on delivery
US20220217144A1 (en) System, Method, and Computer Program Product for Controlling Access to Online Actions
US20200019939A1 (en) System, Method, and Computer Program Product for Providing Electronic Funds Transfers Based on Issuer System Requirements
US11636490B2 (en) System, method, and computer program product for linking accounts across systems
US11544215B2 (en) System, method, and computer program product for generating a file structure
US20220245516A1 (en) Method, System, and Computer Program Product for Multi-Task Learning in Deep Neural Networks
US20240144258A1 (en) System, Method, and Computer Program Product for Secure Client Device and Consumer Authentication
US20220318622A1 (en) Method, system, and computer program product for managing model updates
US20190236603A1 (en) System, Method, and Computer Program Product for Automatically Providing a Merchant Account for a Merchant
Witkowski et al. Method, System, and Computer program product for transaction authentication
WO2024025859A1 (en) System, method, and computer program product for communication layer for management of online services

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination