KR20190089861A - 장치 및 시스템 중립적 전자 결제 토큰의 제공 - Google Patents

장치 및 시스템 중립적 전자 결제 토큰의 제공 Download PDF

Info

Publication number
KR20190089861A
KR20190089861A KR1020197013340A KR20197013340A KR20190089861A KR 20190089861 A KR20190089861 A KR 20190089861A KR 1020197013340 A KR1020197013340 A KR 1020197013340A KR 20197013340 A KR20197013340 A KR 20197013340A KR 20190089861 A KR20190089861 A KR 20190089861A
Authority
KR
South Korea
Prior art keywords
payment
user
token
authorization number
transaction
Prior art date
Application number
KR1020197013340A
Other languages
English (en)
Inventor
아난드 수바라얀
예그나샨카르 파라수람
슈오 송
아크쉐이 미탈
시슈오 리우
케빈 패트릭 헐리
블라디슬라브 페렐만
아틸라 인즈
Original Assignee
페이스북, 인크.
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 페이스북, 인크. filed Critical 페이스북, 인크.
Publication of KR20190089861A publication Critical patent/KR20190089861A/ko

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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • 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]
    • 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • 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/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • 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
    • 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/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • 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/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/383Anonymous user system
    • 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
    • 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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 명세서는 장치 및 시스템 중립적 결제 토큰화를 위한 결제 거래를 처리하기 위한 시스템, 방법, 및 장치에 관한 것이다. 특히, 메시지 시스템은 사용자가 판매자와 결제 거래를 시작하게 한다. 예를 들어, 하나 이상의 구현예는 사용자 클라이언트-장치에 의한 요청에 대응하여 사용자 계정과 연관된 결제 승인 번호를 확인하는 것 및 결제 토큰에 대한 요청을 결제 승인 번호와 연관된 결제 네트워크로 전송하는 것을 포함한다. 하나 이상의 실시예는 결제 승인 번호를 나타내는 결제 토큰을 수신한다. 추가로, 하나 이상의 실시예는 결제 토큰을 암호화하고 암호화된 결제 토큰을 사용자 클라이언트-장치로 전송하여 판매자와 연관된 판매자 시스템에 제공한다.

Description

장치 및 시스템 중립적 전자 결제 토큰의 제공
전자 결제 시스템은 사용자가 하나 이상의 유형의 장치(예, 데스크탑 장치 및 모바일 장치)에서 소프트웨어 어플리케이션을 통하여 다른 사람과 결제 거래를 실시하게 한다. 일부 전자 결제 시스템은 사용자가 금융 기관 또는 판매자(즉, 개인-대-사업체)와 결제 거래를 실시하게 한다. 예를 들어, 일부 전자 결제 시스템은 사용자가 컴퓨팅 장치에서 전자 결제 어플리케이션 또는 웹 브라우저에 의하여 판매자와 상품 또는 서비스에 대한 결제 거래로 들어가게 한다.
일부 통상적인 전자 결제 시스템은 예민한 정보가 다른 자에게 노출되는 것을 예방하기 위해 결제 자격의 토큰화를 구현함으로써 안전한 결제 거래를 제공한다. 예를 들어, 일부 통상적인 시스템은 특정한 게이트웨이 시스템을 통하여 결제 거래를 처리하기 위한 게이트웨이 결제 토큰을 획득하기 위해 (브레인트리(BrainTree)와 같은) 결제 게이트웨이 시스템을 통합한다. 결제 토큰은 사용자가, 판매자 또는 다른 사람에게 결제 자격(예, 신용 카드 번호)을 획득하여 보게 하지 않은 채, 판매자와 결제 거래를 시작하게 한다. 게이트웨이 결제 토큰은 사용자 및 판매자 사이에 보안 층을 제공하지만, 사용자는 여전히 시스템에 결제 자격을 제공하도록 요구된다. 특히, 게이트웨이 토큰화를 사용하는 전통적인 전자 결제 시스템은 사용자의 결제 자격과 관련된 결제 게이트웨이에서 결제 자격을 저장한다. 게이트웨이 시스템에 사용자의 결제 자격을 저장함으로써, 통상적인 전자 결제 시스템은 결제 자격을 가지는 위치와 엔티티의 수를 증가시킴으로써 보안 위험을 도입한다. 특히, 판매자가 결제 게이트웨이 시스템을 선택하고, 소비자는 그들이 판매자로부터 전자 구입을 하길 원한다면, 판매자가 선택한 결제 게이트웨이를 사용하도록 전형적으로 강제된다. 게이트웨이 결제 토큰은 특정한 게이트웨이 시스템으로 제한되기 때문에, 토큰은 다른 결제 게이트웨이에서 사용이 유효하지 않다. 따라서, 복수의 상이한 판매자에게서 쇼핑하는 소비자는 복수의 상이한 결제 게이트웨이에 의해 또는 동일한 결제 게이트웨이에 의해 여러 번 저장된 그들의 결제 자격을 가지는 것으로 끝날 수 있다.
게다가, 게이트웨이 결제 토큰은, 특정한 판매자 사용 및 특정한 결제 게이트웨이 조합을 위해서만 전형적으로 유효하다. 따라서, 판매자는 결제 게이트웨이와 관계를 설정하고, 결제 게이트웨이 결제 토큰이 사용될 때를 제어한다(판매자는 전형적으로 신용 카드 정보를 저장하고 PCI 준수 규칙을 다루는 것을 피하기 위해 그렇게 한다). 따라서, 개개의 소비자는 판매자에게 그들의 신용 카드 정보의 노출을 최소화하는 방법으로써 통상적인 게이트웨이 결제 토큰을 설정하고 사용하는 능력을 가지지 않는다.
통상적인 결제 게이트웨이와 달리, 소비자-친화적 결제 게이트웨이(예컨대, 페이팔(PayPal) 및 아마존(Amazon) 결제)는 개개의 소비자에게 결제 토큰의 사용을 통하여 판매자에게 신용 카드 정보를 제공하지 않고 결제를 하는 옵션을 제공한다. 예를 들어, 이러한 소비자-친화적 결제 게이트웨이는, 종종 판매자가, 소비자가 판매자에게 신용 카드 정보를 제공하기보다는 소비자-친화적 결제 게이트웨이와 계정을 사용하여 결제하게 하는 결제 옵션을 그들의 웹사이트에, 또는 그들의 내재된 어플리케이션에 포함하게 한다. 불행히도, 판매자가 이러한 옵션을 제공하기 위하여, 판매자는 소비자-친화적 결제 게이트웨이와 통합하여야 한다. 달리 말하면, 판매자는 그들의 결제 게이트웨이로서 소비자-친화적 결제 게이트웨이를 사용하여야 하거나, 소비자-친화적 결제 게이트웨이와 통합하는 것 이외에도 통상적인 결제 게이트웨이와 통합하여야 한다. 복수의 결제 게이트웨이와 통합하고, 상이한 요율, 계약, API, 및 결제 방법의 영수증을 다루는 것은 판매자로서 번거로운 일일 수 있다. 사실, 많은 더 작고 덜 복잡한 판매자들은 단순히 복수의 결제 게이트웨이와 통합할 전문 지식 또는 자원을 가지고 있지 않다. 따라서, 소비자-친화적 결제 게이트웨이와 통합하는 판매자의 수는 제한적이다. 따라서, 개개의 소비자는 많은 판매자와 안전한 결제를 하기 위한 소비자-친화적 결제 게이트웨이와 그들의 계정을 사용하는 옵션을 가질 수 없다.
모바일 결제(예컨대, 애플 페이(Apple Pay))는 결제 토큰을 사용하는 또 다른 결제 방법이다. 모바일 결제는 개개의 소비자가 모바일 결제를 사용하여 안전한 거래를 수행할지 여부를 선택하게 한다. 불행하게도, 모바일 결제는 수많은 단점으로 고통받고 있다. 먼저, 모바일 결제는 모바일 장치 및 운영 시스템 특이적이다. 따라서, 소비자는 매우 제한된 유연성을 가진다. 만일 사용자가 호환성 장치를 가지지 않으면, 그들은 모바일 결제를 수행할 수 없다. 게다가, 모바일 결제는 판매 장치의 지점에서만 작동하고, 웹사이트 또는 내재된 어플리케이션과 사용하기 위해 유효하지 않다. 따라서, 호환성 장치를 사용하는 경우조차, 소비자는 내재된 어플리케이션 또는 웹 브라우저를 통하여 거래를 완결하기 위해 모바일 결제 토큰을 사용할 수 없다.
요약하면, 많은 통상적인 시스템은 안전한 전자 결제 거래를 실시할 수 있는 토큰화, 암호화, 또는 판매자 통합을 사용한다. 그러나 이러한 통상적인 시스템은 소비자와 판매자를 제한한다. 이에 따라, 통상적인 전자 결제 시스템 및 방법에는 수많은 단점이 있다.
본 명세서에 기술되는 하나 이상의 실시예는, 판매자에게 결제 시스템을 통합하는 것을 요구하지 않는 장치 및 시스템 중립적 전자 결제 거래를 가능하게 하는 시스템 및 방법에서 하나 이상의 전술된 또는 다른 문제점들을 해결하고/거나 이점을 제공한다. 예를 들어, 시스템 및 방법은 사용자 클라이언트-장치가 판매자와 결제 거래를 시작하기 위해 결제 시스템으로부터 토큰을 요청하게 한다. 결제 시스템은 결제 토큰을 획득하고, 결제 토큰을 사용자 클라이언트-장치로 전송하여 판매자에게 전달한다. 시스템 및 방법은 임의의 클라이언트 장치 또는 운영 시스템을 위해 허용하는 방식으로 결제 토큰을 생성하고 전달한다. 판매자가 결제 토큰을 수신하면, 판매자는 결제 토큰을 사용하여 결제 거래를 시작하여 그들은 정상적인 신용 카드 거래를 처리할 것이다. 따라서, 판매자는 결제 시스템과 통합할 필요가 없다. 판매자에게 전달하기 위해 사용자 클라이언트-장치로 토큰을 제공함으로써, 시스템 및 방법은 결제 시스템 및 판매자 사이의 직접적인 통신 없이 결제 거래 처리를 제공하고, 이로써 보안을 증가시킨다.
본 발명에 따른 실시예들은 특히 방법, 저장 매체, 시스템 및 컴퓨터 프로그램 제품에 대한 첨부된 청구항에 개시되고, 한 청구항 카테고리, 예컨대 방법에 언급된 임의의 특징은 다른 청구항 카테고리, 예컨대 시스템에도 청구될 수 있다. 첨부된 청구항의 인용 또는 참조는 형식상의 이유를 위해 선택되었을 뿐이다. 그러나 임의의 이전의 청구항들에 대한 의도적인 재-참조(특히, 다수 종속항들)로부터 생성된 임의의 발명의 내용은 청구항들과 이들의 특징들의 임의의 조합이 개시되고 첨부된 청구항들에서 선택된 종속항들에 관계없이 청구될 수 있도록 또한 청구될 수 있다. 청구될 수 있는 주제는 첨부된 청구항에 나타난 바와 같은 특징의 조합뿐만 아니라 청구항의 특징의 다른 임의의 조합을 포함하는데, 청구항에 언급된 각 특징은 청구항의 임의의 다른 특징 또는 다른 특징의 조합과 조합될 수 있다. 나아가, 임의의 실시예와 본 명세서에 서술되거나 도시된 특징은 별개의 청구항 및/또는 임의의 실시예나 본 명세서에 서술되거나 도시된 특징과의 또는 첨부된 청구항의 임의의 특징과의 조합에 청구될 수 있다.
본 발명에 따르는 한 실시예에서, 방법은: 하나 이상의 서버에 의해 사용자와 연관된 사용자 클라이언트-장치로부터 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하는 단계; 하나 이상의 서버에 의해 사용자를 위해 사용자 계정과 연관된 결제 승인 번호를 확인하는 단계; 하나 이상의 서버에 의해, 결제 거래에 상응하는 결제 승인 번호를 나타내는 결제 토큰을 획득하는 단계; 하나 이상의 서버에 의해, 결제 승인 번호를 나타내는 결제 토큰을 암호화하는 단계; 및 하나 이상의 서버에 의해, 사용자 클라이언트-장치를 위해 암호화된 결제 토큰을 사용자-클라이언트 장치로 전송하여 결제 거래에 관하여 판매자와 연관된 판매자 시스템에 제공하는 단계를 포함한다.
사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하는 단계는 판매자와 연관된 어플리케이션 인터페이스를 통하여 자바스크립트 요청을 사용자 클라이언트-장치로부터 수신하는 단계를 포함할 수 있다.
본 발명에 따르는 한 실시예에서, 방법은 결제 승인 번호와 연관된 사용자 정보를 확인하는 단계; 및 암호화된 결제 토큰으로 사용자 정보를 사용자 클라이언트-장치로 전송하는 단계를 포함할 수 있다.
본 발명에 따르는 한 실시예에서, 방법은 암호화된 결제 토큰 및 사용자 정보를 포함하는 결제 메시지를 생성하는 단계; 및 판매자와 연관된 결제 형식을 자동완성하기 위해 결제 메시지를 전송하는 단계를 포함할 수 있다.
결제 토큰을 암호화하는 단계는 사용자 클라이언트-장치의 운영 시스템과 관계없이 사용자 및 판매자 사이에 결제 거래를 시작하기 위해 결제 토큰을 암호화하는 단계를 포함할 수 있다.
결제 토큰을 암호화하는 단계는 사용자 클라이언트-장치에서 결제 토큰을 암호화하기 위해 사용자 클라이언트-장치와 연관된 열쇠로 결제 토큰을 암호화하는 단계를 포함할 수 있다.
본 발명에 따르는 한 실시예에서, 방법은 사용자 클라이언트-장치에 대하여 하나 이상의 서버와 연관된 개인 열쇠로 결제 토큰을 서명하는 단계를 포함할 수 있다.
결제 승인 번호를 나타내는 결제 토큰을 획득하는 단계는, 사용자의 결제 자격과 연결된 결제 승인 번호를 확인하는 단계; 결제 승인 번호를 나타내는 결제 토큰을 위한 요청 메시지를 사용자의 결제 자격과 연관된 카드 네트워크 시스템으로 전송하는 단계; 및 카드 네트워크 시스템으로부터 결제 승인 번호를 나타내는 결제 토큰을 수신하는 단계를 포함할 수 있다.
결제 토큰을 암호화하는 단계는 결제 승인 번호의 포맷에 따라서 결제 토큰을 암호화하는 단계를 포함할 수 있다.
사용자를 위하여 사용자 계정과 연관된 결제 승인 번호를 확인하는 단계는 사용자 클라이언트-장치로부터 난독화된 사용자 신원을 수신하는 단계 및 난독화된 사용자 신원을 사용하여 결제 승인 번호를 검색하는 단계를 포함할 수 있다. 사용자 계정은 소셜 네트워킹 계정일 수 있다.
본 발명에 따르는 한 실시예에서, 시스템은: 적어도 하나의 프로세서; 및 적어도 하나의 프로세서에 의해 실행 시, 시스템이, 사용자와 연관된 사용자 클라이언트-장치로부터 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하게 하고; 사용자를 위해 사용자 계정과 연관된 결제 승인 번호를 확인하게 하고; 결제 거래에 상응하는 결제 승인 번호를 나타내는 결제 토큰을 획득하게 하고; 결제 승인 번호를 나타내는 결제 토큰을 암호화하게 하고; 사용자 클라이언트-장치를 위해 암호화된 결제 토큰을 사용자-클라이언트 장치로 전송하여 결제 거래에 관하여 판매자와 연관된 판매자 시스템에 제공하게 하는 명령어를 포함하는 비일시적 컴퓨터 판독가능한 저장 매체를 포함한다.
본 발명에 따르는 한 실시예에서, 시스템은 적어도 하나의 프로세서에 의해 실행 시, 시스템이, 판매자와 연관된 어플리케이션을 통하여 자바스크립트 요청을 사용자 클라이언트-장치로부터 수신함으로써 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하게 하는 명령어를 포함할 수 있다.
본 발명에 따르는 한 실시예에서, 시스템은 적어도 하나의 프로세서에 의해 실행 시, 시스템이, 결제 승인 번호와 연관된 사용자 정보를 확인하게 하고; 및 암호화된 결제 토큰으로 사용자 정보를 사용자 클라이언트-장치로 전송하게 하는 명령어를 포함할 수 있다.
본 발명에 따르는 한 실시예에서, 시스템은 적어도 하나의 프로세서에 의해 실행 시, 시스템이, 사용자 클라이언트-장치의 운영 시스템과 관계없이 사용자 및 판매자 사이에 결제 거래를 시작하기 위해 결제 토큰을 암호화함으로써 결제 토큰을 암호화하게 하는 명령어를 포함할 수 있다.
본 발명에 따르는 한 실시예에서, 시스템은 적어도 하나의 프로세서에 의해 실행 시, 시스템이, 결제 거래에 상응하는 단일-사용 암호를 획득하게 하고; 결제 거래에 상응하는 단일-사용 암호를 암호화하게 하고; 및 사용자 클라이언트-장치로 암호화된 결제 토큰을 가진 암호화된 단일-사용 암호를 전송하게 하는 명령어를 포함할 수 있다.
본 발명에 따르는 한 실시예에서, 시스템은 적어도 하나의 프로세서에 의해 실행 시, 시스템이, 사용자 클라이언트-장치에서 결제 토큰을 복호화하기 위해 사용자 클라이언트-장치와 연관된 열쇠로 결제 토큰을 암호화하게 하는 명령어를 포함할 수 있다.
본 발명에 따르는 한 실시예에서, 시스템은 적어도 하나의 프로세서에 의해 실행 시, 시스템이, 결제 승인 번호의 포맷에 따라서 결제 토큰을 암호화하게 하는 명령어를 포함할 수 있다.
본 발명에 따르는 한 실시예에서, 비일시적 컴퓨터 판독가능한 저장 매체는 적어도 하나의 프로세서에 의해 실행 시, 컴퓨터 시스템이, 사용자와 연관된 사용자 클라이언트-장치로부터 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하게 하고; 사용자를 위해 사용자 계정과 연관된 결제 승인 번호를 확인하게 하고; 결제 거래에 상응하는 결제 승인 번호를 나타내는 결제 토큰을 획득하게 하고; 결제 승인 번호를 나타내는 결제 토큰을 암호화하게 하고; 사용자 클라이언트-장치를 위해 암호화된 결제 토큰을 사용자-클라이언트 장치로 전송하여 결제 거래에 관하여 판매자와 연관된 판매자 시스템에 제공하게 하는 명령어를 포함한다.
본 발명에 따르는 한 실시예에서, 비일시적 컴퓨터 판독가능한 저장 매체는 적어도 하나의 프로세서에 의해 실행 시, 컴퓨터 시스템이, 판매자와 연관된 어플리케이션을 통하여 자바스크립트 요청을 사용자 클라이언트-장치로부터 수신함으로써 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하게 하고; 결제 승인 번호와 연관된 사용자 정보를 확인하게 하고; 및 사용자-클라이언트 장치로, 전송하여 결제 거래에 관하여 판매자와 연관된 어플리케이션에서 결제 형식을 자동완성하기 위해 암호화된 결제 토큰으로 사용자 정보를 전송하게 하는 명령어를 포함할 수 있다.
본 발명에 따르는 한 추가적인 실시예에서, 하나 이상의 컴퓨터-판독가능한 비일시적 저장 매체는 본 발명 또는 임의의 상술한 실시예에 따른 방법을 수행하도록 실행시 동작가능한 소프트웨어를 구현한다.
본 발명에 따르는 한 추가적인 실시예에서, 시스템은 하나 이상의 프로세서; 및 프로세서에 결합되며 프로세서에 의해 실행가능한 명령어들을 포함하는 적어도 하나의 메모리를 포함하며, 상기 프로세서는 명령어들을 실행시 본 발명 또는 임의의 상술한 실시예에 따른 방법을 수행하도록 동작가능하다.
실시예의 추가적인 특징 및 장점이 후술되는 명세서에 개시되거나, 일부는 명세서로부터 자명하거나, 또는 이러한 예시적인 실시예의 실행에 의해 습득될 수 있을 것이다. 이러한 실시예의 특징 및 장점은 첨부된 청구항에 구체적으로 설명된 기구 및 조합에 의해서 실현되고 획득될 수 있다. 이들 및 다른 특징은 후술되는 명세서 및 첨부된 청구항으로부터 더욱 완전히 명백해지거나, 후술되는 이러한 예시적인 실시예의 실행에 의해 습득될 수 있다.
본 명세서에 포함되어 있다.
다양한 실시예가 기술되고 첨부된 도면의 사용을 통하여 추가로 구체적이고 상세하게 설명될 것이다.
도 1은 하나 이상의 실시예에 따르는 전자 결제를 가능하게 하는 예시적인 시스템의 개략도를 예시한다.
도 2a 내지 2b는 하나 이상의 실시예에 따르는 사용자 및 판매자 사이에 결제 과정의 일부로서 상호작용을 예시하는 순서도를 예시한다.
도 3a 내지 3d는 하나 이상의 실시예에 따르는 도 2a 내지 2b에 관하여 설명된 바와 같이 결제 거래를 시작하기 위한 사용자 인터페이스를 예시한다.
도 4는 하나 이상의 실시예에 따르는 토큰화된 결제 자격을 가진 결제 거래를 처리하는 방법에서 일련의 행동의 흐름도를 예시한다.
도 5는 하나 이상의 실시예에 따르는 도 1의 예시적인 시스템의 상세한 개략도를 예시한다.
도 6은 하나 이상의 실시예에 따르는 예시적인 컴퓨팅 장치의 블록도를 예시한다.
도 7은 하나 이상의 실시예에 따르는 소셜 네트워킹 시스템의 예시적인 네트워크 환경을 예시한다.
도 8은 하나 이상의 실시예에 따르는 소셜 네트워킹 시스템을 위한 예시적인 소셜 그래프를 예시한다.
본 명세서의 실시예는 사용자에게 장치 및 시스템 중립적이고 판매자에게 결제 시스템을 통합하도록 요구하지 않는 안전한 거래에 참여할 수 있는 능력을 제공하는 결제 시스템을 제공한다. 예를 들어, 결제 시스템은 사용자와 연관된 사용자 클라이언트-장치로 결제 토큰을 전송함으로써 결제 토큰을 사용하여 결제 거래를 시작하고, 이어서 결제 토큰을 판매자(예, 판매자 시스템)으로 전송한다. 판매자 시스템 대신에 결제 토큰을 사용자 클라이언트-장치로 전송함으로써, 결제 시스템은 사용자 및 판매자를 사용자 클라이언트-장치의 장치 또는 운영 시스템 및 판매자 시스템에 관계없이 결제 거래로 들어갈 수 있게 한다.
언급한 바와 같이, 결제 시스템은 사용자가 판매자와 전자 결제 거래를 시작하게 한다. 구체적으로, 결제 시스템은 사용자 계정과 연관된 사용자 클라이언트-장치로부터 결제 토큰에 대한 요청을 수신한다. 예를 들어, 사용자가 결제 시스템의 도움으로 결제 거래를 시작하는 요청을 선택할 때, 클라이언트 장치는 결제 시스템으로 요청을 전송하여 결제 토큰을 획득한다. 구체적으로, 판매자 시스템은 어플리케이션 인터페이스 내에서, 클라이언트 장치가 결제 시스템으로 요청을 전송하여 결제 거래를 시작하게 하는 코드를 구현할 수 있다. 예를 들어, 결제 시스템은 사용자 클라이언트-장치가 결제 시스템과 통신하게 하는 어플리케이션 인터페이스에 제3자 엔티티가 코드를 삽입하게 하는 어플리케이션 프로그램 인터페이스(API) 표준을 제공할 수 있다. 예시하기 위하여, 사용자 클라이언트-장치는 결제 토큰이 사용자 클라이언트-장치로 전송되게 요청하도록 결제 시스템으로 호출을 사용할 수 있다. 따라서, 판매자 시스템은, 판매자 시스템이 결제 시스템과 직접적으로 통신하게 하는 결제 시스템으로 깊은 API 통합을 제공하기 위해, 사용자에게 판매자 시스템을 요구하지 않는 결제 시스템을 사용하여 결제하기 위한 옵션을 제공할 수 있다.
하나 이상의 실시예에서, 결제 시스템은 결제 네트워크로부터 결제 거래를 시작하기 위하여 결제 토큰을 획득한다. 특히, 결제 시스템은 사용자 클라이언트-장치로부터 호출을 통하여 결제 거래를 시작하는 요청을 수신하는 것에 대한 응답으로 결제 토큰을 요청한다. 예시하기 위하여, 결제 시스템은 결제 자격, 예컨대, 사용자의 사용자 계정에 연관된 결제 승인 번호(예, 신용/직불 카드 번호)를 사용하여 결제 토큰을 획득한다. 예를 들어, 결제 시스템은 사용자 계정과 연관된 결제 승인 번호를 확인하고, 결제 승인 번호와 연관된 카드 네트워크 시스템으로부터 결제 토큰을 요청한다. 결제 승인 번호와 연관된 카드 네트워크 시스템은 사용자 계정과 연관된 결제 승인 번호를 나타내는 결제 토큰으로 돌아온다. 결제 시스템은 결제 토큰을 암호화하고, 암호화된 결제 토큰을 사용자 클라이언트-장치로 전송하여 상응하는 결제 승인 번호를 사용하는 것 대신에 결제 거래를 시작한다. 결제 거래를 시작하고 처리하기 위해 결제 토큰을 사용함으로써, 결제 시스템은 결제 승인 번호를 포함하는 엔티티의 숫자 및/또는 통신이 감소되는 안전한 전자 결제 처리를 제공한다.
결제 시스템이 결제 토큰을 사용자 클라이언트-장치로 전송한 후, 결제 시스템은 결제 거래와 관련하여 결제 토큰을 다시 수신하지 않는다. 구체적으로, 클라이언트 장치는 결제 토큰을 판매자 시스템으로 전달한다. 이어서 판매자 시스템은 결제 토큰을 처리하여 정상 결제 자격을 처리할 것이다. 예를 들어, 판매자 시스템은 결제 토큰을 결제 네트워크로 전달하여 결제 거래를 처리할 수 있다. 따라서, 판매자 시스템은 결제 거래 동안 결제 시스템과 통신하지 않을 수 있다.
결제 토큰을 결제 시스템으로 돌려보내는 것 이외에, 선택적으로 결제 승인 번호와 연관된 카드 네트워크 시스템은 단일-사용 암호를 돌려보낸다. 대안적인 실시예에서, 결제 시스템은 단일-사용 암호를 생성하고, 단일-사용 암호를 카드 네트워크 시스템으로 전송한다. 결제 시스템은 결제 네트워크를 통해 현재 결제 거래를 처리하기 위하여 암호를 결제 토큰과 함께 판매자로 전송한다. 구체적으로, 결제 시스템은 결제 토큰 및 단일-사용 암호를 판매자에게 제공한다. 판매자는 이어서 결제 토큰 및 단일-사용 암호를 게이트웨이 시스템 또는 결제 거래를 처리하기 위한 결제 네트워크에서 다른 엔티티로 전송함으로써 결제 거래를 시작할 수 있다.
게다가, 암호는 단일-사용이기 때문에, 결제 시스템은 미래의 결제 거래에 사용하기 위하여 암호를 저장하지 않는다. 차라리, 결제 시스템은 사용자 계정과 연관된 각 추가적인 결제 거래를 위하여 새로운 단일-사용 암호를 요청한다. 결제 승인 번호와 연관된 카드 네트워크 시스템은 특정 결제 거래를 위한 새로운 단일-사용 암호를 결제 시스템으로 돌려준다. 따라서, 특정 결제 거래를 위하여, 결제 시스템은 판매자와 특정 결제 거래를 시작할 때 상응하는 단일-사용 암호와 저장된 결제 토큰을 사용한다.
하나 이상의 실시예에서, 결제 시스템은 미래의 결제 거래와 사용을 위한 결제 토큰을 저장한다. 특히, 결제 시스템은 사용자 계정과 연관된 하나 이상의 서버에 결제 토큰을 저장한다. 예를 들어, 결제 시스템은 상응하는 결제 승인 번호를 저장하는 대신, 하나 이상의 서버에 결제 토큰을 저장할 수 있다. 결제 승인 번호를 저장하고 사용하는 것보다 결제 거래와 사용하기 위하여 결제 토큰을 저장하는 것이 결제 시스템에서 또는 결제 거래 동안에 사용자의 결제 정보를 노출할 위험을 감소시킨다.
언급한 바와 같이, 본 명세서에서 설명된 결제 시스템은 통상적인 전자 결제 시스템에 비해 장점을 제공한다. 구체적으로, 판매자 시스템으로 전송하기 위하여 사용자 클라이언트-장치를 위한 결제 토큰을 구성하는 것은 결제 시스템이 결제 시스템과 통합되지 않은 판매자 시스템과 결제 거래를 시작하게 한다. 예를 들어, 본 명세서에서 결제 시스템은 판매자를 위하여 판매자가 결제 시스템과 계약 또는 다른 형식적인 관계에 들어갈 것을 요구하지 않고 사용자(즉, 소비자)와 결제 거래에 참여하는 방법을 제공한다. 결제 시스템에 통합되거나 등록되지 않은 판매자와 결제 거래를 가능하게 하는 것은, 결제 거래와 관련하여 서버 장치가 저장하고 처리하는 데이터의 양을 감소시킴으로써 결제 시스템과 연관된 서버 장치상에 부담을 감소시킨다.
추가로, 이러한 결제 거래 처리는 사용자 클라이언트-장치 및 판매자 시스템이 임의의 유형의 장치 및/또는 운영 시스템을 사용하게 하여 결제 시스템으로 결제 거래를 수행한다. 특히, 결제 시스템은 결제 토큰을 위한 요청을 구현하고, 자바스크립트(또는 유사한 코딩 언어)층에서 결제 시스템으로 결제 거래를 시작하는 것을 요구한다. 코드는 많은 상이한 클라이언트 장치 또는 운영 시스템으로부터 호출되는 경우 적합하게 기능할 수 있기 때문에, 결제 시스템은 판매자 시스템 및 사용자가 특정한 설비/장치 및 운영 시스템 소프트웨어를 요구하지 않고 결제 거래에 참여할 수 있게 한다. 이는 판매자 시스템 및 사용자에게 걸제 거래 처리에서 유연성을 제공한다.
도 1은 하나 이상의 실시예에 따르는 결제 시스템(110)을 포함하는 환경(100)을 예시하는 개략도이다. 환경의 개관은 도 1과 관련하여 기술된다. 그 후, 결제 시스템의 컴포넌트 및 처리 및 환경 내에 다른 컴포넌트에 대한 더욱 상세한 기술이 남은 도면과 관련하여 제공된다.
도 1에 예시된 바와 같이, 환경(100)은 사용자, 사용자 클라이언트-장치(104), 판매자 시스템(106), 결제 시스템(110)을 호스팅하는 서버 장치(108), 및 결제 네트워크(112)를 포함할 수 있다. 클라이언트 장치의 예는 모바일 장치(예, 스마트폰, 태블릿), 랩탑, 데스크탑, 또는 임의의 다른 유형의 컴퓨팅 장치를 포함한다. 도 6 및 상응하는 기술은 컴퓨팅 장치에 관한 추가적인 정보를 제공한다. 더욱이, 환경(100)의 장치는 하나 이상의 네트워크를 통하여 서로 통신할 수 있다. 하나 이상의 실시예에서, 네트워크는 인터넷 또는 월드와이드웹을 포함한다. 그러나 네트워크는, 도 7에 대하여 후술되는 바와 같이, 다양한 통신 기법 및 프로토콜을 사용하는 하나 이상의 개인 및/또는 공개 네트워크를 포함할 수 있다.
사용자(102)는 구입하기 위하여 판매자 시스템(106)과 상호작용할 수 있다. 구체적으로, 사용자(102)는 사용자 클라이언트-장치(104)를 사용하여 판매자 시스템(106)과 결제 거래에 들어간다. 도 1에 더 예시된 바와 같이, 사용자 클라이언트-장치(104)는 결제 시스템(110)을 호스팅하는 서버 장치(108)와 통신할 수 있다. 하기에 더욱 상세하게 설명되는 바와 같이, 결제 시스템(110)은 결제 네트워크(112)의 다양한 컴포넌트와 통신하여 사용자(102) 및 판매자 시스템(106) 사이에 결제를 용이하게 하는 거래를 조정할 수 있다. 결제 네트워크(112)는 결제 게이트웨이 시스템(114), 카드 네트워크 시스템(118), 및 발행자(120)를 포함할 수 있다. 그러나 다른 실시예에서, 결제 네트워크(112)는 다소의 행위자를 포함한다. 비록 도 1은 사용자(102), 사용자 클라이언트-장치(104), 판매자 시스템(106), 결제 시스템(110), 및 결제 네트워크(112)의 특정한 배열을 예시하지만, 다양한 추가적인 배열이 가능하다.
앞서 언급된 바와 같이, 및 도 1에 예시된 바와 같이, 사용자(102)는 판매자 시스템(106)과 인터페이스로 액세스하기 위해 사용자 클라이언트-장치(104)를 사용할 수 있다. 하나 이상의 실시예에서, 사용자(102)는 판매자의 클라이언트 어플리케이션에 액세스할 수 있다. 클라이언트 어플리케이션은 판매자 시스템(106)과 인터페이스로 액세스하는 네트워크 어플리케이션, 예컨대, 웹 어플리케이션 또는 내재된 어플리케이션을 포함할 수 있다. 클라이언트 어플리케이션은 사용자(102)에게 상품 및/또는 서비스의 판매를 제공할 수 있다. 하나 이상의 실시예에서, 하기에 더욱 상세하게 설명되는 같이, 서버 장치는 사용자가 등록될 수 있는 네트워킹 시스템(예, 소셜 네트워킹 시스템)을 포함할 수 있다. 설명하기 위해, 클라이언트 어플리케이션은 판매자 페이지 및/또는 소셜 네트워킹 시스템에서 제공하는 인터페이스를 포함할 수 있다. 사용자에게 판매자가 제공하는 상품 및 서비스를 볼 수 있게 한다. 추가로, 판매자 시스템은 판매자 페이지 및/또는 인터페이스 내에서부터 결제 시스템을 사용하여 상품 및 서비스를 위해 결제하기 위한 옵션을 제공할 수 있다.
사용자(102)는 클라이언트 어플리케이션을 통하여 제공된 하나 이상의 아이템 또는 서비스를 선택함으로써 주문을 시작할 수 있다. 주문을 완결하기 위하여, 사용자(102)는 전통적으로 최대 20개의 상이한 결제 필드, 예컨대 사용자의 이름, 중간 이름, 성, 결제 카드(신용 카드, 직불 카드 등) 번호, 결제 카드의 유효 날짜(년 및/또는 달), 결제 카드와 연관된 청구 주소(거리 이름, 집 번지, 도시, 주 또는 도, 우편 번호, 나라 등을 포함함), 결제 카드와 연관된 전화 번호, 및 하나 이상의 배송 주소(청구 주소와 유사한 필드를 포함함)를 기입하도록 요구될 것이다. 결제 시스템(110)은 사용자(102)에 대한 결제 정보를 저장하며, 및 판매자 시스템(106)으로 정보의 적어도 일부분을 제공하여 사용자(102)의 체크아웃 경험을 단순화하고, 안전을 증가시킬 수 있다. 더욱 구체적으로, 클라이언트 어플리케이션은 결제 시스템(110)에 의해 유지되는 결제 정보를 사용하기 위한 선택가능한 옵션을 디스플레이하거나 달리 제공할 수 있다. 만일 사용자(102)가 선택가능한 옵션을 선택한다면, 결제 시스템(110)은 사용자 클라이언트-장치(104)가 판매자 시스템(106)으로 제공할 수 있는 결제 토큰을 제공함으로써 결제 거래를 용이하게 할 수 있다.
도 1에 예시된 바와 같이, 결제 네트워크(112)는 결제 게이트웨이 시스템(114), 카드 네트워크 시스템(118), 및 결제 승인 번호의 발행자(예, 발행자(120))를 포함한다. 본 명세서에서 사용된 바와 같이, 용어 "결제 게이트웨이 시스템"은 거래 정보를 획득 은행으로 전송하고 발행 은행으로부터 반응(예컨대, 거래가 승인되거나 거절되는지 여부)하는 소프트웨어 및 서버를 지칭한다. 따라서, 결제 게이트웨이 시스템은 은행 사이에 통신을 용이하게 한다. 게다가, 결제 게이트웨이는 결제 카드 산업 데이터 안전 표준(PCI-DSS 또는 PCI)을 구현한다. 결제 게이트웨이 시스템은 브릿지 통신 프로토콜을 돕고, 판매자의 입장에서 안전성을 제공한다. 결제 게이트웨이 시스템은 거래 비용에 따라 충전된다. 결제 게이트웨이 시스템의 일부 예는 브레인트리(Braintree), 드왈라(Dwolla), 페이팔(Paypal), 오쏘라이즈닷넷(Authorize.net)을 포함한다.
본 명세서에서 사용된 바와 같이, 용어 "카드 네트워크 시스템"은 신용 카드 사용자, 판매자 및 발행자 사이에 결제 처리를 용이하게 하는 엔티티를 지칭한다. 카드 네트워크 시스템은 신용 카드가 사용될 수 있는 곳, 신용 카드 거래를 승인하고, 거래를 처리하고 거래의 조건을 설정하는 것을 지시할 수 있다. 카드 네트워크 시스템의 일부 예는 비자(VISA), 마스터카드(MASTERCARD), 아메리칸 익스프레스(AMERICAN EXPRESS), 및 디스커버(DISCOVER)를 포함한다.
본 명세서에서 사용된 바와 같이, 용어 "발행자"는 소비자에게 신용 카드를 발행하고 그들의 계정을 서비스하는 금융 기관(예, 은행)을 지칭한다. 발행자는 또한 카드 네트워크 시스템 또는 결제 게이트웨이 시스템일 수 있다. 카드 네트워크 시스템의 일부 예는 체이스(CHASE), 뱅크 오브 아메리카(BANK OF AMERICA), 웰스 파르고(WELLS FARGO), 유에스 뱅크(U.S. BANK), 및 씨티뱅크(CITIBANK)를 포함한다.
본 명세서에서 사용된 바와 같이, 용어 "결제 승인 번호"는 상응하는 결제 계정으로 액세스를 승인하는 번호를 지칭한다. 예를 들어, 결제 승인 번호는 신용 카드 번호 또는 직불 카드 번호일 수 있다.
하나 이상의 실시예에서, 결제 시스템(110)은 소비자의 결제 승인 번호와 연관된 카드 네트워크 시스템(118)과 통신하여 결제 토큰을 획득한다. 본 명세서에서 사용된 바와 같이, 용어 "결제 토큰"은 결제 승인 번호의 토큰화된 버전을 지칭한다. 구체적으로, 네트워크 결제 토큰은 카드 네트워크 시스템(118)이 특정 결제 승인 번호로 맵핑하는 복수 개의 문자를 포함하는 결제 승인 번호의 해시화된(hashed) 또는 다르게 난독화된 버전을 포함할 수 있다.
결제 네트워크(112)가 서버 장치(108)에서 결제 시스템(110)로 결제 토큰을 제공하면, 서버 장치(108)는 이어서 결제 토큰을 암호화하고 사용자 클라이언트-장치(104)로 전송하여 판매자 시스템(106)을 검증하고 통과하여 결제 거래를 시작하고 사용자의 구매를 처리한다. 서버 장치(108)는 또한 사용자를 위하여 사용자 정보를 모으고, 결제 토큰과 연결된 사용자 클라이언트-장치(104)로 전송할 수 있다. 사용자 정보는, 예컨대, 전술된 바와 같이, 청구 정보 또는 주소 정보와 같은 사용자에 대한 정보를 확인하는 것을 포함한다.
적어도 일부 구현예에서, 카드 네트워크 시스템(118)은 또한 결제 거래에 연관된 암호를 결제 토큰과 함께 사용자 클라이언트-장치(104)로 전송한다. 본 명세서에서 사용된 바와 같이, 용어 "암호"는 결제 거래를 위한 결제 토큰의 사용을 승인하는데 사용하기 위하여 결제 거래에 부여된 코드를 지칭한다. 예시하자면, 암호는 번호 코드 또는 카드 네트워크 시스템(118)이 상응하는 결제 거래를 위해 결제 토큰의 사용을 유효화하는 다른 값일 수 있다.
사용자 클라이언트-장치(104)가 결제 토큰을 수신한 후, 사용자 클라이언트-장치(104)는 결제 토큰을 판매자 시스템(106)으로 전송한다. 판매자 시스템(106)은 이어서 결제 토큰을, 다른 결제 정보와 함께, 결제 게이트웨이 시스템(114)으로 전송하여 결제 거래를 처리한다. 하나 이상의 실시예에서, 결제 게이트웨이 시스템(114)은 또한 카드 네트워크 시스템(118)과 통신하여 결제 정보를 전달한다. 결제 게이트웨이 시스템(114) 또는 카드 네트워크 시스템(118)이 결제 토큰을 사용하여 상응하는 결제 승인 번호를 결정하는지 여부는 결제 토큰이 게이트웨이 결제 토큰 또는 네트워크 결제 토큰인지 여부에 의존한다. 둘 중 어느 경우든, 결제 네트워크(112)는 상응하는 결제 승인 번호를 확인하고 결제 거래를 승인하여 펀드를 사용자(102)의 결제 계정에서 판매자 시스템(106)의 결제 계정으로 이전한다.
논의된 바와 같이, 도 1과 관련하여 위에서 논의된 시스템 및 컴포넌트는 사용자(즉, 소비자)가 판매자와 결제 거래에 쉽고, 효과적이고, 안전하게 참여하게 할 수 있다. 도 2a 내지 2b는 앞서 논의된 결제 시스템(110)에 의해 구현된 하나 이상의 예시적인 실시예의 과정의 예시적인 처리도를 예시한다. 도 1에서 예시된 환경(100)과 일치하게, 도 2a 내지 2b는 (동작의 순서 흐름에 따라서) 사용자 클라이언트-장치(104), 판매자 시스템(106), 서버 장치(108)에서 구현된 결제 시스템(110) 및 결제 네트워크(112)를 예시한다.
하나 이상의 실시예에서, 사용자가 판매자와 결제 거래를 시작하는 과정은 사용자 클라이언트-장치(104)로 어플리케이션(200)(예, 상술한 바와 같이 클라이언트 어플리케이션) 내에서 컨텐츠를 제공하는 판매자 시스템(106)으로 시작할 수 있다. 특히, 판매자 시스템(106)은, 어플리케이션 내에서, 사용자가 판매자와 연관된 상품 또는 서비스를 브라우징할 수 있는 인터페이스를 제공한다. 어플리케이션은 브라우저 어플리케이션, 모바일 어플리케이션, 데스크탑 어플리케이션, 또는 사용자 클라이언트-장치(104)에서 실행될 수 있는 다른 컴퓨팅 어플리케이션을 포함할 수 있다.
하나 이상의 실시예에 따르면, 사용자 클라이언트-장치(104)는 사용자가 판매자 시스템(106)으로부터 컨텐츠와 상호작용하는 것을 허용한다. 예를 들어, 사용자 클라이언트-장치(104)는 사용자가 어플리케이션을 오픈함으로써, 또는 인터페이스를 다르게 내비게이팅함으로써 판매자와 연관된 상품 또는 서비스를 브라우징하기 위해 인터페이스를 보게 할 수 있다. 예시를 위하여, 어플리케이션은 판매자에 의한 및/또는 판매자와 연관된 다른 자에 의한 등록(proprietary) 어플리케이션일 수 있다. 대안으로, 어플리케이션은 사용자가, 예컨대 인터넷에 액세스를 제공하는 웹 브라우저와 같은 상이한 엔티티에 연관된 하나 이상의 상이한 인터페이스를 보게 할 수 있는 어플리케이션일 수 있다.
추가로, 사용자는 판매자와 연관된 상품 및 서비스를 보기 위해 하나 이상의 페이지 또는 인터페이스의 컨텐츠를 내비게이팅할 수 있다. 설명하기 위해, 사용자는 사용자 클라이언트-장치(104)와 상호작용함으로써 판매자와 연관된 컨텐츠를 내비게이팅할 수 있다. 사용자 클라이언트-장치(104)와 상호작용하는 것은 또한 사용자 클라이언트-장치(104)가 판매자 시스템(106)과 통신하여 컨텐츠를 검색하게 할 수 있다. 사용자는 사용자가 구입하고자 하는 상품 또는 서비스를 확인한 후, 사용자는 서버 장치(108)에 의해 호스팅되는 결제 시스템(110)(예, 페이스북으로 결제)의 도움으로 사용자 클라이언트-장치(104)와 상호작용하여 확인된 상품 또는 서비스를 구매하는 옵션을 선택할 수 있다. 확인된 상품 또는 서비스를 구매하는 옵션을 선택하는 단계는 사용자 클라이언트-장치(104)가 결제 메시지(202)를 생성하게 한다.
하나 이상의 실시예에서, 어플리케이션(200)은 결제 시스템(110)의 도움으로 확인된 상품 또는 서비스를 구매하는 옵션의 선택에 대하여 사용자 클라이언트-장치(104)가 결제 시스템(110)과 통신하게 하는 코드를 포함한다. 구체적으로, 어플리케이션(200)의 코드는 사용자 클라이언트-장치(104)가 판매자 시스템(106)에 허용가능한 공개된 API 프로토콜에 기반하여 서버 장치(108)로 호출을 하게 할 수 있다. 예를 들어, 코드는 결제 토큰을 위한 서버 장치(108)로 요청을 전송하는 자바스크립트 명령 및 선택적으로 하나 이상의 정보의 아이템을 포함할 수 있다. 설명하기 위해, 자바스크립트(또는 다른 언어) 층에서 코드를 구현하는 단계는 사용자 클라이언트-장치(104)가 결제 거래를 시작하는 요청을 생성하게 한다. 하기에 더욱 상세하게 기술된 바와 같이, 자바스크립트 층에서 요청을 구현하는 단계는 또한 결제 시스템(110)이 판매자 시스템(106)과 직접적으로 통신하기 위하여 서버 장치(108)를 요구하지 않고 사용자를 위해 결제 거래를 허용한다.
결제 메시지를 생성하는 단계는 사용자 및 판매자 사이에 결제 거래를 위한 결제 정보를 확인하는 단계를 포함할 수 있다. 예를 들어, 결제 메시지는 사용자 신원, 판매자 신원, 결제 금액, 결제 승인 번호(또는 상응하는 결제 승인 번호로 결제 방법의 표시), 및/또는 결제 시스템(110)이 결제 거래 처리를 시작하게 하는 다른 정보를 포함할 수 있다. 다양한 예에 따르면, 사용자 클라이언트-장치(104)는 사용자 및 판매자 사이에 상호작용으로부터, 사용자 클라이언트-장치(104)상의 데이터 매니저, 및/또는 사용자 입력으로부터, 결제 메시지를 위한 결제 정보를 획득할 수 있다. 이어서 사용자 클라이언트-장치(104)는 결제 시스템(110)으로 결제 메시지(204)를 전송한다.
사용자 클라이언트-장치(104)로부터 결제 메시지를 수신하는 것에 대응하여, 결제 시스템(110)은 사용자로부터 개인 승인 번호를 확인한다(206). 특히, 결제 시스템(110)은 결제 메시지로부터 개인 승인 번호를 확인한다. 예를 들어, 결제 메시지는, 이전에는 결제 시스템(110)으로 제공된, 결제 시스템(110)이 결제 승인 번호로 부여하는 신원을 포함할 수 있다. 대안으로, 사용자가 결제 시스템(110)으로 결제 승인 번호와 연관된 정보를 저장하지 않는다면, 결제 메시지는 결제 승인 번호를 포함할 수 있다. 추가적인 실시예에서, 결제 시스템(110)은 사용자가 결제 승인 번호를 제공하거나 사용자가 새로운 결제 승인 번호를 변경하거나 추가하게 하도록 유도한다. 언급한 바와 같이, 개인 승인 번호는 신용 카드 번호 또는 사용자의 결제 계정과 연관된 다른 계정 번호일 수 있다. 결제 시스템(110)은 또한 결제 메시지 내에 포함된 추가적인 결제 정보를 확인한다.
결제 시스템(110)은 또한 사용자 및/또는 결제 승인 번호와 연관된 사용자 정보에 액세스한다(208). 구체적으로, 결제 시스템(110)은 결제 메시지로부터 사용자 신원과 연관된 사용자 계정(예, 소셜 네트워크 계정)에 액세스하여, 결제 거래를 처리하는데 사용하기 위한 사용자에 대한 확인 정보에 액세스할 수 있다. 예를 들어, 사용자 정보는, 사용자를 위한 청구 주소 정보, 예컨대 사용자의 주소, 전화 번호 및 연락 정보를 포함할 수 있다. 추가로, 사용자 정보는 또한 사용자가 판매자와 결제 거래에 참여하게 할 수 있는 사용자에 대한 추가적인 확인 정보를 포함할 수 있다.
결제 시스템(110)은 사용자 클라이언트-장치(104)로부터 결제 메시지에 포함된 결제 정보를 사용하여 토큰 요청 메시지를 생성한다(210). 구체적으로, 결제 시스템(110)은 토큰 요청 메시지를 생성하여 확인된 결제 승인 번호와 연관된 결제 토큰을 요청한다. 토큰 요청 메시지는 결제 승인 번호 및 카드 네트워크 시스템(118)이 소비자 및/또는 토큰 요청자(즉, 결제 시스템(110))의 신원을 검증하게 하는 신원 정보를 포함한다. 결제 시스템(110)은, 결제 승인 번호를 사용하기보다는, 카드 네트워크 시스템(118)이 소비자를 위해 결제 거래를 처리하는데에 사용하기 위한 결제 토큰을 제공하도록 요청한다.
하나 이상의 실시예에서, 토큰 요청 메시지에 포함된 신원 정보는 토큰 요청자 신원을 포함한다. 예를 들어, 토큰 요청자 신원은 이전에 카드 네트워크 시스템(118)이 결제 시스템(110)으로 부여했던 유일한 신원일 수 있다. 설명하기 위해, 토큰 요청자 신원은 12개 문자의 고정된 길이 값일 수 있다. 토큰 요청자 신원은 카드 네트워크 시스템(118)이 토큰 요청 메시지로부터 토큰 요청자의 신원을 결정하게 하는 신원이다.
하나 이상의 실시예에서, 결제 시스템(110)은 또한 특정 결제 승인 번호의 네트워크 토큰화가 허용가능한지 여부를 결정할 수 있다. 구체적으로, 결제 시스템(110)은 결제 승인 번호에서 하나 이상의 숫자에 기반하여(예, 은행 신원 번호에 기반하여) 결제 승인 번호의 하나 이상의 속성, 예컨대, 카드 유형 또는 소비자 등록을 확인할 수 있다. 결제 시스템(110)은 결제 승인 번호와 연관된 카드 네트워크 시스템(118)이 결제 승인 번호의 확인된 속성에 기반한 결제 승인 번호를 위한 결제 토큰을 제공하는지 여부를 결정할 수 있다. 예를 들어, 다른 카드 네트워크 시스템(118)이 그러지 않는 반면에, 결제 시스템(110)은 특정 카드 네트워크 시스템(118)이 결제 토큰을 제공하는 것을 결정할 수 있다. 유사하게, 동일한 카드 네트워크 시스템(118)과 연관된 다른 것들은 토큰화되지 않는 반면에, 카드 네트워크 시스템(118)으로부터 특정 카드 유형 또는 결제 승인 토큰이 토큰화될 수 있을 수 있다.
특정 결제 승인 번호가 카드 네트워크 시스템(118)에 의해 토큰화될 수 없다면, 결제 시스템(110)은 제3자 결제 프로세서로부터 토큰을 획득한다. 예를 들어, 결제 시스템(110)은 현재 결제 거래로 사용하기 위해 제3자 결제 프로세서로부터 단일-사용 결제 승인 번호를 요청할 수 있다.
결제 시스템(110)은 이어서 카드 네트워크 시스템(118)로 토큰 요청 메시지를 전송한다(212). 토큰 요청 메시지의 수신 시, 카드 네트워크 시스템(118)은 토큰 요청 메시지로부터 결제 승인 번호를 확인하고, 결제 승인 번호의 진위를 검증한다. 예를 들어, 카드 네트워크 시스템(118)은 카드 네트워크 시스템(118)과 연관된 결제 승인 번호의 데이터베이스에서 결제 승인 번호를 확인한다. 추가로, 카드 네트워크 시스템(118)은 결제 승인 번호와 연관된 추가적인 정보, 예컨대, 소비자의 신원, 소비자와 연관된 보안 정보, 및 서버 장치에 의해 제공된 바와 같이, 토큰 요청 메시지로부터 결제 거래 정보를 확인할 수 있다.
하나 이상의 실시예에서, 카드 네트워크 시스템(118)은 토큰 요청 메시지에서 토큰 요청자 신원을 사용하여 토큰 요청자(214)를 검증한다. 토큰 요청자의 신원은 카드 네트워크 시스템(118)이 카드 네트워크 시스템(118) 및 결제 시스템(110) 사이에 설립된 신뢰 수준을 확인하게 한다. 구체적으로, 카드 네트워크 시스템(118)은 하나 이상의 토큰 요청자와의 신뢰 관계를 설립할 수 있다. 예를 들어, 각 신뢰받는 토큰 요청자는 추가적인 보안 정보를 요구하지 않고 카드 네트워크 시스템(118)으로부터 결제 토큰을 요청할 수 있다.
카드 네트워크 시스템(118)에 의해 신뢰받지 않는 또 다른 엔티티가 카드 네트워크 시스템(118)으로부터 결제 토큰을 요청하는 것을 시도하는 경우, 카드 네트워크 시스템(118)은 요청을 거절할 수 있다. 토큰 요청자와 신뢰 관계를 설립하고 오직 신뢰받는 요청자에게만 토큰을 제공함으로써, 카드 네트워크 시스템(118)은 결제 토큰에 대한 사기 요청의 위험이 줄일 수 있다. 추가로, 신뢰받는 요청자의 사용은 카드 네트워크 시스템(118)이 소비자가 결제 거래를 승인하기 위해 제공하여야만 하는 신원 정보의 양을 감소하게 한다. 대안적인 실시예에서, 카드 네트워크 시스템(118)은 추가적인 보안 정보를 요청하여 신뢰받지 못한 요청자로부터 요청의 진위를 검증한다.
결제 시스템(110)의 신원이 검증되면, 카드 네트워크 시스템(118)은 결제 거래를 위해 결제 승인 번호(및 일부 예에서 암호)를 위한 결제 토큰(216)을 생성한다. 특히, 카드 네트워크 시스템(118)은 결제 거래 처리에 연관된 엔티티로 결제 승인 번호를 나타내는 결제 토큰을 생성한다. 예를 들어, 결제 토큰은 숫자의 사전결정된 번호 내에서 숫자의 변수를 가진 수치 값일 수 있다(예, 최대 19개 숫자의 가변 필드).
하나 이상의 실시예에서, 결제 토큰은 결제 승인 번호로서 동일한 수의 숫자를 가져 결제 거래 처리와 연관된 각 엔티티가 결제 토큰을 유효한 결제 승인 번호로 본다. 구체적으로, 결제 토큰은 유사하거나 동일한 은행 및 원 결제 승인 번호와 유사한 번호부여 논리를 가질 수 있다. 대안으로, 번호의 숫자는 결제 승인 번호에 근거하지 않을 수 있어서, 결제 토큰은 결제 승인 번호와 상이한 번호의 숫자를 가질 수 있다.
언급한 바와 같이, 카드 네트워크 시스템(118)은 현재 결제 거래와 사용하기 위한 암호를 생성할 수 있다. 구체적으로, 암호는 결제 토큰을 현재 결제 거래에 묶거나 범주화하는 단일-사용 코드 또는 값이다. 하나 이상의 실시예에서, 암호는, 결제 금액, 도메인, 및/또는 결제 거래를 구체적으로 확인하는 다른 정보와 같은 거래 정보를 사용하여, 결제 토큰을 현재 결제 거래로 범주화한다. 암호는 카드 네트워크 시스템(118)이 현재 결제 거래와 사용하기 위해 결제 토큰이 승인된 것을 검증하게 한다. 따라서, 카드 네트워크 시스템(118)은 암호가 없는 결제 거래를 처리하기 위한 판매자로부터 요청을 거절하여, 카드 네트워크 시스템(118)은 결제 토큰의 미승인 사용을 거절한다. 추가로, 암호는 특정 결제 거래에 연관되기 때문에, 암호는 단일-사용 암호이고 다른 결제 거래와 사용될 수 없다. 하나 이상의 대안적인 실시예에서, 결제 시스템(110)은 구독 또는 다른 되풀이하는 결제에 대하여 암호를 1회 초과로 사용하는 것이 허용된다. 도면은 단일 엔티티로 카드 네트워크 시스템(118)을 설명하지만, 당업자는 본 명세서의 설명의 견지에서 본 명세서가 제한되지 않는 것으로 이해할 것이다. 특히, 결제 시스템(110)과 같이 카드 네트워크 시스템(118)은 복수의 상이한 장치에 걸쳐 구현될 수 있다. 예를 들어, 카드 네트워크 시스템(118)은 결제를 처리하는 카드 네트워크 시스템(118)의 부분보다 분리된 시스템에 의해 호스팅되는 토큰 권한 설정 서비스를 포함할 수 있다. 카드 네트워크 시스템(118)의 토큰 권한 설정 서비스는 하나 이상의 실시예에서 결제 토큰 및 암호를 생성할 수 있다.
하나 이상의 실시예에서, 카드 네트워크 시스템(118)보다 결제 시스템(110)이 암호를 생성한다. 이러한 경우, 토큰 요청 메시지(212)는 암호를 포함할 수 있다. 임의의 경우에, 카드 네트워크 시스템(118)은 결제 토큰 및 선택적으로 암호를 발행자(120)로 전송할 수 있다.
이어서, 카드 네트워크 시스템(118)은 결제 시스템(110)로 결제 토큰 및 선택적으로 암호를 전송한다(218). 하나 이상의 실시예에 따르면, 결제 시스템(110)은 결제 토큰을 사용자 프로필 또는 소비자의 사용자 계정을 연관시키고 저장한다. 하기에 더욱 상세하게 설명된 바와 같이, 결제 시스템(110)이 소비자에 대해 결제 토큰을 수신하면, 소비자를 포함하는 미래 결제 거래는 상응하는 결제 승인 번호 대신에 저장된 결제 토큰을 사용할 수 있다.
결제 네트워크(112)로부터 결제 토큰을 수신한 후, 결제 시스템(110)은 결제 토큰(220)을 암호화한다. 예를 들어, 결제 시스템(110)은 사용자 클라이언트-장치(104)로 제공하기 위한 결제 토큰을 암호화한다. 구체적으로, 결제 시스템(110)은 암호화 열쇠를 사용하여 결제 토큰을 암호화할 수 있다. 추가로, 결제 시스템(110)은 결제 토큰 및 선택적으로 암호 및/또는 사용자 정보(또는 다른 결제 정보)를 함유하는 데이터 패키지를 암호화하여 사용자 클라이언트-장치(104)로 제공할 수 있다. 결제 시스템(110)은 또한 암호화된 데이터 패키지를 결제 시스템(110)과 연관된 열쇠로 서명하여 사용자 클라이언트-장치(104)가 패키지가 결제 시스템(110)부터 오는 것을 검증하게 할 수 있다.
하나 이상의 실시예에 따르면, 결제 시스템(110)은 사용자 클라이언트-장치(104)가 복호화할 수 있는 암호화 열쇠를 사용하여 결제 토큰 및 사용자 정보를 암호화한다. 예를 들어, 결제 시스템(110)은 공개/개인 열쇠 쌍을 사용할 수 있다. 따라서, 사용자 클라이언트-장치(104)는 이어서 결제 토큰 및 사용자 정보를 복호화하고 정보를 사용하여 판매자 시스템(106)으로 결제 거래를 시작한다.
대안으로, 결제 시스템(110)은 판매자 시스템(106)이 또한 복호화할 수 있는 암호화 열쇠를 사용하여 결제 토큰을 암호화할 수 있다. 예를 들어, 결제 시스템(110)은 판매자 시스템(106)으로 통과되는 개인 열쇠와 연관된 암호화 열쇠를 사용하여 데이터 패키지를 암호화할 수 있다.
둘 중 어느 시나리오에서도, 결제 시스템(110)은 암호화된 결제 토큰(및 선택적으로 사용자 정보 및 암호)(218)을 사용자 클라이언트-장치(104)로 전송한다. 예를 들어, 결제 시스템(110)은 암호화된 결제 토큰 및 사용자 정보를 데이터 패키지에서 또는 결제 거래 메시지에서 사용자 클라이언트-장치(104)로 전송한다. 결제 시스템(110)은 사용자에게 보이지 않거나 투명한 방식으로(즉, 사용자가 암호화되는 동안 데이터 패키지의 컨텐츠로 액세스를 가지지 않도록) 데이터 패키지를 전달할 수 있다.
암호화된 데이터 패키지 수신 시, 사용자 클라이언트-장치(104)는 결제 토큰(224)(및, 적용가능하다면, 사용자 정보 및 암호)을 복호화한다. 특히, 사용자 클라이언트-장치(104)는 결제 시스템(110)이 데이터 패키지를 암호화하기 위해 사용된 암호화 열쇠와 연관된 복호화 열쇠를 사용할 수 있다. 사용자 클라이언트-장치(104)는 사용자가 판매자 시스템(106)으로 결제 거래를 시작하게 하는 데에 사용하기 위해 데이터 패키지로부터 정보를 추출하기 위해 복호화 열쇠를 사용할 수 있다.
추가로, 사용자 클라이언트-장치(104)는 디스플레이 장치상에서 하나 이상의 아이템의 결제 정보를 제시하여 결제 정보(226)를 검증할 수 있다. 예를 들어, 사용자 클라이언트-장치(104)는 판매자 시스템(106)과 연관된 인터페이스에서결제 승인 번호에 대한 선택된 결제 방법으로 사용자 정보를 디스플레이할 수 있다. 설명하기 위해, 사용자 클라이언트-장치(104)는 결제 정보를 인터페이스에 자동으로 채울 수 있다(예, 판매자에 의해 제공된 청구 형식으로). 따라서, 사용자 클라이언트-장치(104)는 판매자 시스템(106)과 연관된 인터페이스를 최대로 활용하여, 서버 장치(108)를 요구하지 않고 판매자 시스템(106)으로 직접적으로 정보를 전송하거나 또는 사용자 클라이언트-장치(104)를 요구하지 않고 결제 시스템(110)과 연관된 형식으로 재전달하여 검증을 위해 사용자에게 결제 정보를 제시한다.
결제 거래와 연관된 정보를 검증하기 위하여, 사용자는 인터페이스 내에서 정보를 보고 정보가 맞는지 여부를 결정할 수 있다. 언급한 바와 같이, 사용자 클라이언트-장치(104)는 인터페이스를 최대로 활용하여 판매자 시스템(106)이 클라이언트 어플리케이션 내에서 사용자 클라이언트-장치(104)로 제공된다. 인터페이스 내에서 채울 수 있는 형식에서 정보를 디스플레이하는 것은 사용자가 정보를 보고/거나 편집할 수 있게 한다. 설명하기 위해, 사용자는 결제 승인 번호의 간략화된 버전을 봄으로써(예, 결제 승인 번호의 최소한 마지막 4개의 숫자만을 디스플레이함), 또는 사용자에 대한 정보(예, 이름, 주소, 보안 질문 등)를 확인함으로써, 결제 방법을 보고 검증할 수 있다.
다양한 예에 따르면, 사용자는 결제 방법 및/또는 사용자의 확인 정보가 맞는지 결정하고, 입력된 정보를 사용하기 위한 옵션을 선택할 수 있다. 대안으로, 사용자는 정보의 하나 이상의 아이템이 부정확한지 결정할 수 있고, 정보를 편집할 수 있다. 정보를 편집하는 것은 사용자 클라이언트-장치(104)가 편집된 정보를 결제 시스템(110)으로 전송하게 할 수 있고, 이는 이어서 사용자에 대하여 사용자 계정으로 수정 사항을 저장할 수 있다.
사용자가 결제 토큰 및 연관된 정보를 검증하면, 사용자 클라이언트-장치(104)는 판매자 시스템(106)이 신용 카드 또는 직불 카드 거래를 처리하기 위해 사용하는 결제 처리 절차에 따라서 결제 토큰 및 사용자 정보(228)를 판매자 시스템(106)으로 전송한다.
하나 이상의 실시예에서, 유효한 결제 승인 번호인 것으로 나타나는 결제 승인 번호의 결제 토큰은 난독화된 값을 포함한다. 그러나 판매자 시스템(106)은 데이터 패키지를 복호화한 후에도 난독화된 값만을 볼 수 있을 것이므로, 판매자 시스템(106)은 실제 결제 승인 번호에 절대 액세스하지 않는다. 난독화된 값은 유효한 결제 승인 번호인 것으로 나타날 수 있기 때문에, 판매자 시스템(106)은 여전히 실제 결제 승인 번호와 동작하는 것처럼 결제 거래를 처리할 수 있다. 추가로, 암호는 코드 검증 값("CVV 숫자")과 같은 보안 코드와 닮아서, 판매자 시스템(106)은 결제 정보를 유효한 것으로 확인한다.
판매자 시스템(106)은 이어서 사용자 클라이언트-장치(104)로부터 제공된 정보를 사용하여 결제 거래를 시작한다(230). 구체적으로, 판매자 시스템(106)은 사용자 클라이언트-장치(104)로부터 데이터 패키지로부터 결제 토큰을 -적용가능하다면 암호도- 확인한다. 추가로, 판매자 시스템(106)은 결제 금액, 구매 정보(예, 생산품 또는 서비스), 사용자 신원 정보(예, 이름, 주소, 운송 정보), 및 결제 거래를 처리하기 위한 다른 정보를 확인할 수 있다. 사용자 클라이언트-장치(104)로부터 결제 토큰을 수신함으로써, 판매자 시스템(106)은 결제 승인 번호 연관된 사용자의 결제 계정과 연관된 결제 승인 번호를 절대로 수신하거나 보지 않는다. 추가로, 결제 토큰이 자바스크립트 층에서 요구되고 통과되기 때문에 판매자 시스템(106)은 결제 시스템(110)과 통합할 것을 요구하지 않는다.
판매자 시스템(106)은 결제 토큰 및 사용자 정보를 결제 네트워크(112)로 전송한다(232). 결제 네트워크(112)는 판매자 시스템(106)으로부터 결제 토큰 및 결제 정보를 수신하고 결제 토큰 및 결제 정보를 카드 네트워크 시스템으로 전송하여 결제 거래를 완성하는 결제 게이트웨이 시스템을 포함할 수 있다. 다른 실시예에서, 결제 게이트웨이 시스템은 결제 토큰을 사용하여 카드 네트워크 시스템으로 제출하기 위한 결제 승인 번호를 획득할 수 있다.
둘 중 어떤 경우에도, 결제 네트워크(112)는 결제 승인 번호 및 결제 거래가 유효한지 여부를 결정하기 위한 추가적인 결제 정보(예, 암호)를 결정한다(234). 예를 들어, 결제 네트워크(112)는 데이터베이스에서 결제 토큰을 결제 승인 번호으로 맵핑할 수 있다. 결제 네트워크(112)는 데이터베이스에서 결제 토큰을 검색하여 결제 토큰과 연관된 입력란에서 결제 승인 번호를 찾을 수 있다. 대안으로, 결제 토큰은 결제 승인 번호의 암호화된 버전(예, 해시화된 버전)일 수 있고, 결제 네트워크(112)는 결제 토큰을 복호화하여 결제 승인 번호를 획득할 수 있다.
결제 승인 번호를 확인한 후, 결제 네트워크(112)는 결제 거래를 처리할 수 있다(236). 구체적으로, 결제 거래를 처리하는 것은 판매자와 연관된 결제 계정으로 결제 승인 번호와 연관된 결제 계정으로부터 자금의 이전을 승인하기 위해 결제 승인 번호를 사용하는 것을 포함한다. 예를 들어, 결제 네트워크(112)는 판매자와 연관된 은행 시스템과 통신함으로써 사용자의 결제 계정으로부터 자금을 판매자의 결제 계정으로 이전할 수 있다.
더 구체적으로, 판매자 시스템(106)은 필수적인 결제 거래 정보와 함께 결제 토큰 및 암호를 결제 게이트웨이 시스템(114)으로 전송한다. 결제 게이트웨이 시스템(114)은 이어서 결제 토큰, 암호, 및 결제 거래 정보를 카드 네트워크 시스템(118)으로 전송한다. 카드 네트워크 시스템(118)은 결제 거래가 유효한지 여부를 결정하기 위해 암호를 검증한다. 유효한 암호는 결제 거래가 유효하고, 신뢰받는 토큰 요청자를 통하여 시작되었고, 선택적으로 검증된 판매자로부터 검증된 금액에 대한 것임을 카드 네트워크 시스템(118)에게 보여준다.
카드 네트워크 시스템(118)은 또한 결제 토큰에 기반한 결제 승인 번호를 결정한다. 예를 들어, 카드 네트워크 시스템(118)은 데이터베이스에서 네트워크 결제 토큰 결제 승인 번호으로 맵핑할 수 있다. 카드 네트워크 시스템(118)은 데이터베이스에서 결제 토큰을 검색하여 결제 토큰과 연관된 입력란에 결제 승인 번호를 찾을 수 있다.
결제 승인 번호를 확인한 후, 카드 네트워크 시스템(118)은 결제 거래를 처리할 수 있다. 구체적으로, 결제 거래를 처리하는 것은 발행자(120)에게 결제 승인 번호를 전송하는 것을 포함하여 발행자가 결제 승인 번호와 연관된 결제 계정으로부터 판매자의 결제 계정으로 자금의 이전을 승인할 수 있다. 예를 들어, 발행자(120)는 판매자와 연관된 은행 시스템(획득자)과 통신함으로써 소비자의 결제 계정으로부터 판매자의 결제 계정으로 자금을 이전할 수 있다.
대안으로, 카드 네트워크 시스템(118)은 발행자(120)에게 결제 토큰을 전송할 수 있다. 발행자(120)는 이어서 결제 토큰에 기반한 결제 승인 번호를 결정한다. 예를 들어, 발행자(120)는 데이터베이스에서 결제 토큰을 결제 승인 번호에 맵핑한다. 발행자(120)는 데이터베이스에서 네트워크 결제 토큰을 검색하여 네트워크 결제 토큰과 연관된 입력란에서 결제 승인 번호를 찾을 수 있다. 발행자(120)는 결제 승인 번호와 연관된 결제 계정으로부터 판매자의 결제 계정으로 자금의 이전을 승인할 수 있다. 예를 들어, 발행자(120)는 판매자와 연관된 은행 시스템(획득자)와 통신함으로써 소비자의 결제 계정으로부터 판매자의 결제 계정으로 자금을 이전할 수 있다.
하기에 더욱 상세하게 설명될 것과 같이, 도 1과 관련하여 설명되는 것처럼 결제 시스템(110)의 컴포넌트는, 다른 컴포넌트와 함께 및/또는 조합하여, 하나 이상의 그래픽 사용자 인터페이스를 제공할 수 있다. 특히, 컴포넌트는 사용자가 다양한 목적으로 디스플레이 컴포넌트의 집합과 상호작용하게 할 수 있다. 특히, 도 3a 내지 3d 및 후속하는 설명은 사용자 인터페이스의 다양한 예시적인 실시예 및 사용자가 판매자의 결제 거래로 들어가게 하는 클라이언트 어플리케이션의 특징을 예시한다.
예를 들어, 도 3a 내지 3d는 사용자 및 판매자 사이에 전자 결제를 용이하게 하기 위해 클라이언트 어플리케이션에 의해 제공된 다양한 뷰의 GUI를 가진 사용자 클라이언트-장치(300)를 예시한다. 구체적으로, 클라이언트 어플리케이션은 사용자가 판매자 시스템에 의해 제공된 상품 및 서비스와 연관된 정보를 보게 하고, 판매자와 결제 거래로 들어가게 허용한다. 하기에 더욱 상세하게 설명하자면, 사용자는 판매자 시스템이 클라이언트 어플리케이션 내에서 제공하는 인터페이스를 볼 수 있다. 추가로, 사용자는 클라이언트 어플리케이션을 사용하여 구매를 할 수 있고, 판매자와 전자 결제 거래에 참여할 수 있다.
예시된 바와 같이, 사용자 클라이언트-장치(300)는 핸드헬드(handheld) 장치를 포함한다. 본 명세서에서 사용된 바와 같이, 용어 "핸드헬드 장치"는 사용자의 한 손에 쥐거나/동작하기 위한 크기이고, 손에 쥐거나/동작하도록 구성된 장치를 의미한다. 그러나, 추가적인 또는 대안적인 예에서, 임의의 다른 적합한 컴퓨팅 장치, 예컨대, 이에 제한되는 것은 아니지만, 태블릿 장치, 핸드헬드 장치, 더 큰 무선 장치, 랩탑 또는 데스크탑 컴퓨터, 개인-디지털 보조 장치, 및/또는 임의의 다른 적합한 컴퓨팅 장치는 하나 이상의 프로세스 및/또는 동작을 수행할 수 있다.
하나 이상의 실시예에서, 사용자는 클라이언트 어플리케이션의 하나 이상의 사용자 인터페이스에서 디스플레이 요소와 상호작용하여 구매 상품 또는 서비스를 구매하기 위해 판매자와 결제 거래를 시작할 수 있다. 언급한 바와 같이, 클라이언트 어플리케이션은 판매자 시스템과 연관된 하나 이상의 인터페이스를 제공한다. 하나 이상의 실시예에서, 클라이언트 어플리케이션은 모바일 어플리케이션 스토어를 통하여 구입가능한 모바일 어플리케이션과 같은 판매자에 의해 제공된 어플리케이션이다. 대안으로, 클라이언트 어플리케이션은 상이한 복수의 판매자로부터 컨텐츠로 액세스를 제공하는 웹 브라우저와 같은 사용자가 다양한 컨텐츠에 액세스하게 하는 제3자 어플리케이션일 수 있다.
도 3a에 예시된 바와 같이, 클라이언트 어플리케이션은 판매자 인터페이스(302)를 포함할 수 있다. 판매자 인터페이스(302)는 본 명세서에서 설명된 바와 같이, 사용자가 결제 시스템을 사용하여 구매할 수 있는 판매자에 의해 제공된 생산품(예, 상품 또는 서비스)을 디스플레이할 수 있다. 하나 이상의 실시예에 따라, 판매자 인터페이스(302)는 판매자로부터 구입가능한 복수의 생산품 또는 서비스를 포함한다. 예를 들어, 판매자 인터페이스(302)는 생산품의 리스트를 포함할 수 있고, 각각은 선택가능될 수 있고/거나, 고유의 판매자 페이지를 가질 수 있다. 특정 아이템을 위한 판매자 페이지를 선택하는 것은 상응하는 생산품에 대한 세부사항을 디스플레이한다. 예를 들어, 주어진 생산품에 대한 판매자 페이지는 가격(304), 상품 설명서(306), 상품의 이미지(308) 및 판매자로부터 구입가능한 관련 아이템을 디스플레이할 수 있다.
하나 이상의 실시예에서, 클라이언트 어플리케이션은 또한 사용자가 디스플레이된 아이템에 대하여 판매자와 통신하게 한다. 예를 들어, 판매자 인터페이스(302)는 판매자와 통신하기 위한 통신 옵션(310)을 제시할 수 있다. 설명하기 위해, 통신 옵션(310)을 선택하는 것은 클라이언트 어플리케이션이 사용자가 판매자와 통신하게 하는(예, 이메일에 의해 또는 통합된 메시징 서비스에 의해) 메시징 인터페이스를 열게 할 수 있다. 하나 이상의 실시예에서, 결제 시스템(110)과 연관된 네트워크 어플리케이션은 메시징 인터페이스를 제공하고, 통신을 용이하게 한다. 사용자는 가격, 구매 옵션, 배달 옵션, 구입가능성, 주문 제작, 및/또는 디스플레이된 생산품에 대한 다른 정보를 논의할 수 있다.
판매자 상품 인터페이스는 또한 생산품에 대한 판매자 페이지에서 생산품을 위한 카트에 담기(Add To Cart) 옵션(312)을 디스플레이할 수 있다. 카트에 담기 옵션(312)을 선택하는 것은 클라이언트 어플리케이션이 상품을 가상의 쇼핑 카트에 추가하게 하고/거나 구매 인터페이스를 디스플레이하게 할 수 있다. 도 3b는 도 3a에 예시된 생산품을 구매하기 위해 체크-아웃 또는 가상의 쇼핑 카트 인터페이스(314)를 예시한다. 사용자가 카트에 담기 옵션(312)을 선택하는 경우, 클라이언트 어플리케이션은 선택된 생산품을 가상의 쇼핑 카트에 추가하고 쇼핑 카트의 내용과 함께 체크-아웃 인터페이스(314)를 디스플레이한다. 사용자는 복수의 생산품을 선택하여 생산품을 구매하기 전에 쇼핑 카트에 추가할 수 있다.
구매 인터페이스는 결제 정보를 포함하는 구매 정보를 포함한다. 특히, 구매 정보는 생산품 세부사항(316)(생산품의 양을 포함), 및 구매 가격(318)을 포함한다. 도 3b는 쇼핑 카트에 연관된 일련의 세부사항들을 예시하지만, 체크-아웃 인터페이스(314)는 사용자가 구매 정보를 검증하고 입력하게 하는 추가적인 또는 대안적인 세부사항을 포함할 수 있다.
사용자는 주문하기(Place Order) 옵션(324)을 선택할 수 있고, 이때 클라이언트 어플리케이션이 사용자가 청구 주소, 운송 주소, 신용 카드 정보 등과 같은 결제 정보를 입력하는 결제 정보 인터페이스를 열 것이다. 불행하게도, 주문하기 옵션(324)을 선택하는 것은 사용자에게 상세한 결제 정보를 제공하는 것을 요구할 수 있다. 많은 경우, 사용자는 최대 20개의 정보 필드를 채워야 할 필요가 있을 수 있다. 잠재적인 소비자가 결제 정보 입력의 어려움, 시간 초과 또는 체크아웃 처리에 좌절하게 되는 다른 질문을 입력하는 어려움을 가지게 하는 것이 보통이다. 이러한 좌절은 종종 잠재적인 소비자가 그들의 상거래를 단념하게 한다. 상업 체크아웃 처리의 좌절은, 모바일 장치를 사용하는 경우, 작은 스크린 및 정보의 많은 양의 타이핑 입력의 어려움으로 인해 종종 악화된다. 게다가, 주문하기 옵션(324)을 선택하는 것은 사용자가 판매자 또는 판매자의 결제 게이트웨이 네트워크에 결제 승인 번호를 입력하고 공유하는 것을 요구할 수 있다.
위에서 논의한 바와 같이, 하나 이상의 실시예는 결제 시스템(110)과 거래를 완결하기 위한 선택가능한 옵션(322)을 제공함으로써 전술한 문제를 피한다. 결제 시스템(110)과 거래를 완결하기 위한 선택가능한 옵션(322)은 가상 카드에 아이템의 구매를 완결하기 위해 사용자가 결제 시스템(110)을 사용할 수 있음을 나타내는 글리프(glyph)(즉, 표시, 아이콘, 그래픽, 텍스트의 일부 등)를 포함할 수 있다. 선택가능한 옵션(322)은 체크아웃 사용자 인터페이스(314)에 제시된 버튼, 체크아웃 사용자 인터페이스(314)에 걸쳐 나타나는 선택가능한 오버레이, 플러그-인, 팝-업, 또는 다른 선택가능한 옵션을 포함할 수 있다. 예를 들어, 하나 이상의 실시예에서, 예컨대, 클라이언트 어플리케이션이 웹 어플리케이션을 포함하는 경우, 아이프레임(iframe)이 코드 정의 웹 페이지에 추가될 수 있다. 추가로 또는 대안으로, 클라이언트 어플리케이션은 선택가능한 옵션(322)을 제공하는 SDK 기능을 호출할 수 있다.
당업자는 SDK 기능 또는 아이프레임의 사용이 선택가능한 옵션(322)을 제공하거나 호출하기 위한 두 개의 예시적인 방법임을 본 명세서의 견지에서 이해할 것이다. 그러나 본 명세서의 실시예는 SDK 기능 또는 아이프레임의 사용에 제한되는 것은 아니다. 더 구체적으로, 브라우저(예, 웹 브라우저)의 맥락에서 동작하거나 실행되는 플러그-인 소프트웨어 어플리케이션 또는 구조화된 문서를 소비하는 다른 어플리케이션 클라이언트보다, 본 명세서에서 설명한 기능성은, 플러그-인인 것과 반대로, 브라우저 클라이언트 어플리케이션으로 직접적으로 병합될 수 있다. 예를 들어, 오픈 그래프 프로토콜은 임의의 웹 페이지를 소셜 그래프로 통합시킬 수 있다. 특정 실시예에서, 구조화된 문서 내에서 베이직 메타데이터의 존재는 구조화된 문서 내에서 대상이 그래프 대상 또는 노드가 되게 한다. 웹 페이지를 그래프 대상으로 전환하기 위하여, 오픈 그래프 프로토콜 <메타(meta)> 태그 및 선택가능한 옵션(322)이 웹 페이지에 포함된다. 오픈 그래프 프로토콜은 제목, 유형, 이미지, url의 네 가지 특성을 정의한다.
추가적인 실시예에서, XFBML 또는 HTML5는 선택가능한 옵션(322)(및/또는 결제 정보)를 구현하거나, 제공하거나 호출하기 위하여 사용될 수 있다. XFBML 및 HTML5는 페이지가 자바스크립트 SDK로 호출하는 것을 요구할 수 있고, 코드로 추가될 수 있다. 특정 실시예에서, 자바스크립트 SDK는 웹 페이지를 결제 정보 및/또는 선택가능한 옵션(322)의 일부 또는 전부에 액세스할 수 있게 한다. 여전히 추가적인 클라이언트 어플리케이션은 자바스크립트 SDK를 사용하여 이벤트를 듣게 하여 클라이언트 어플리케이션은 누군가 클릭하거나 다르게는 선택가능한 옵션(322)을 선택하는 경우 실시간으로 알 수 있다.
따라서, 당업자는 선택가능한 옵션(322)은 임의의 수의 방법 또는 프로토콜을 사용하여 구현되거나, 제공되거나, 또는 호출될 수 있다는 것을 이해할 것이다. 이러한 방법 및 프로토콜의 예는 2011년 5월 26일에 출원된 "소셜 데이터 입력"이라는 제목의 미국 특허 출원 No. 13/116,945에서 "좋아요 버튼"의 내용으로 상세하게 개시된다. 전술한 출원의 전체 내용은 여기서 전체가 참조로서 인용된다.
사용자가 선택가능한 옵션(322)을 선택할 때, 사용자 클라이언트-장치(300)는 결제 시스템(110)으로 결제 토큰을 요청하는 결제 메시지(204)를 전송한다. 구체적으로, 결제 토큰에 대한 요청은, 결제 시스템(110)과 거래를 완결하기 위해, 사용자가 선택한 선택가능한 옵션(322)에 응답하는 사용자 클라이언트-장치(300)로부터 자바스크립트 호출일 수 있다. 예를 들어, 선택가능한 옵션(322)은 자바스크립트 코드, 또는 사용자 클라이언트-장치(300)가 사용자 및 판매자 사이에 결제 거래를 위한 결제 토큰을 요청하기 위해 결제 시스템(110)으로 결제를 요청하는 다른 코드에 연관될 수 있다. 설명하기 위해, 자바스크립트 호출은 결제 시스템이 결제 거래를 시작하게 하는 정보를 포함할 수 있다. 예를 들어, 비록 자바스크립트 호출은 사용자 클라이언트-장치(300)에 대한 추가적인 또는 다른 정보를 포함하여 결제 시스템으로 전송할 수 있지만, 자바스크립트 호출은 사용자 신원, 사용자 클라이언트-장치(300)를 위한 장치 신원, 및 판매자 신원을 포함할 수 있다.
예를 들어, 클라이언트 어플리케이션은 네트워크 어플리케이션(504)을 위한 사용자를 위한 사용자 신원을 획득하거나, 확인하거나, 다르게는 발견할 수 있다(도 5를 참고하라). 예를 들어, 클라이언트 어플리케이션은 사용자의 사용자 클라이언트-장치(300) 상에 존재하는 사용자의 난독화된(예, 해시화된, 암호화된, 또는 달리 알고리듬적으로 변환된) 사용자 신원을 액세스할 수 있다. 이 사용자 신원은 네트워크 어플리케이션(504)(예, 소셜 네트워킹 어플리케이션)의 사용자를 위해 사용자 프로필/계정을 확인할 수 있다. 하나 이상의 실시예에서, 사용자 신원은 네트워크 어플리케이션(504)에 의해 액세스되거나 또는 저장된 공유된 메모리의 일부로부터 액세스되고, 사용자가 네트워크 어플리케이션(504)으로 "로그 온"한다면 존재할 수 있다. 하나 이상의 다른 실시예에서, 사용자 신원은 사용자 클라이언트-장치(300)상에서 쿠키(예, HTTP(HyperText Transfer Protocol) 쿠키)로부터 또는 어플리케이션 캐쉬(예, HTML5(HyperText Markup Language version 5) 어플리케이션 캐쉬)로부터 액세스된다.
이 처리는, 사용자 클라이언트-장치(300) 상 네트워크 어플리케이션(504)을 위한 적합하게 난독화된 사용자 신원의 존재는 사용자가 네트워크 어플리케이션(504)에 의해 이미 승인되었고, 따라서 클라이언트 어플리케이션이 이 이전의 승인에 의존할 것임을 나타내기 때문에 사용자를 위한 승인으로서 역할할 수 있다. 추가로, 이 체크아웃 처리의 시점에서, 난독화된 사용자 신원만을 가지는 클라이언트 어플리케이션 또는 판매자에게 사용자의 세부사항의 보안 또는 개인정보 노출이 없다.
결제 토큰을 요청하는 결제 메시지(204)에 대하여, 결제 시스템(110)은 결제 시스템(110)에 저장된 사용자(102)의 결제 정보를 확인하기 위하여 ID를 사용할 수 있다. 사용자 ID가 난독화된 사용자 신원을 포함할 때, 네트워크 어플리케이션(504)은 전환 기능을 사용하여 사용자 ID를 비-난독화된 사용자 신원으로 전환할 수 있고, 여기서 이에 제한되는 것은 아니지만, 난독화된 사용자 신원으로 대칭 열쇠 암호 기능의 어플리케이션, 난독화된 사용자 신원으로 공개-열쇠(비대칭 열쇠) 암호화 기능의 어플리케이션, 또는 비-난독화된 사용자 신원과 맵핑된 난독화된 사용자 신원의 리스트로 난독화된 사용자 신원의 비교를 포함한다.
자바스크립트 호출에 대하여, 결제 시스템(110)은 결제 토큰을 획득하고, 결제 토큰을 암호화하고, 결제 토큰을 사용자 클라이언트-장치(300)로 전송할 수 있다. 하나 이상의 실시예에서, 사용자 클라이언트-장치(300)는 결제 토큰을 복호화하여 사용자가 결제 토큰과 연관된 정보를 검증하게 허용할 수 있다. 예를 들어, 사용자 클라이언트-장치(300)는, 도 3c에 도시된 바와 같이, 결제 시스템으로부터 수신된 데이터를 복호화하고, 결제 정보 인터페이스(328)로 결제 토큰을 위한 결제 정보 및 결제 카드 라벨을 자동-기입할 수 있다.
결제 정보는 하기를 위한 임의의 허용가능한 정보를 포함할 수 있다: 성명(330)(예, 이름, 중간 이름, 성), 결제 카드의 유효 날짜(년도 및/또는 달), 결제 카드와 연관된 청구 주소(332)(거리 이름, 번지 수, 도시, 주 또는 도, 우편 번호, 나라 등을 포함함), 결제 카드와 연관된 전화 번호 및 하나 이상의 운송 주소(청구 주소와 유사한 필드를 포함함). 이전에 언급한 바와 같이, 결제 시스템(110)은 사용자의 결제 카드 번호와 함께 클라이언트 어플리케이션을 제공하지 않을 것이다. 대신, 결제 시스템(110)은 결제를 나타내는 결제 카드 라벨(334)을 제공할 것이다.
앞서 언급된 바와 같이, 결제 토큰은 클라이언트 어플리케이션 특이적, 사용자, 금액 및/또는 카트 특이적(즉, 특정 어플리케이션, 사용자, 금액 및/또는 카트를 위해서만 유효함)일 수 있다. 추가적인 실시예에서, 결제 토큰은 사용자/상업 어플리케이션 콤보에 특이적일 수 있다. 결제 시스템(110) 또는 카드 네트워크 시스템(118)은 임의의 수의 상이한 사용 파라미터에 연결될 수 있다. 예를 들어, 결제 토큰은 단일 사용 토큰일 수 있다. 따라서, 한 번 사용되고 나면, 결제 토큰은 무효화될 수 있다. 추가로, 결제 시스템(110) 또는 카드 네트워크 시스템(118)은 결제 토큰을 유효성의 윈도우에 부여할 수 있고(예, 10분, 1시간, 1일), 그 후 결제 토큰은 무효화된다. 여전히 추가로, e-결제 시스템(110) 또는 카드 네트워크 시스템(118)은 선택적으로 결제 토큰 생존시간을 부여할 수 있다. 결제 시스템(110) 또는 카드 네트워크 시스템(118)은 상세한 카트 정보를 결제 토큰에 묶일 수 있다. 이는 결제 토큰이 카트의 구매를 위해서만 유효하다는 것을 보장하는데에 도움이 될 수 있다.
하나 이상의 실시예에서, 결제 정보 인터페이스(328)는 사용자가 결제 토큰에 연관된 정보를 바꾸는 것을 허용한다. 예를 들어, 사용자는 결제 정보 인터페이스(328)에서 필드를 선택하고, 정보를 수정하거나 새 정보를 입력할 수 있다. 설명하기 위해, 특정 결제 자격과 연관된 청구 주소가 바뀐다면, 사용자는 결제 정보 인터페이스(328)로 새로운 청구 주소를 입력할 수 있다. 사용자 클라이언트-장치(300)는 이어서 바뀐 정보를 결제 시스템으로 전송하여 결제 시스템 측면에서(예, 사용자를 위한 사용자 계정에서) 수정할 수 있다. 다음에, 사용자는 결제 거래를 위한 결제 방법을 선택하고, 결제 시스템(110)은 선택된 결제 자격을 위한 결제 토큰을 획득하고, 결제 토큰으로 업데이트된 사용자 정보를 포함할 수 있다.
클라이언트 어플리케이션이 결제 정보 인터페이스(328)에 결제 필드에서 결제 정보를 제공할 때, 사용자는 단일 클릭 또는 주문하기 옵션(338)에 관한 사용자 입력만으로 주문의 구매를 확인하거나, 또는 다르게는 거래를 완결할 수 있다. 예를 들어, e-결제 시스템(110)이 각각의 요구되는 결제 필드를 위한 정보를 제공하는 경우, 사용자는 "결제" 또는 "주문" 버튼 또는 다른 선택가능한 옵션을 선택하여 거래를 완결할 수 있다. 대안적인 실시예에서, 사용자는 데이터가 공급되지 않거나 다르게는 거래를 완결하기 위해 추가적인 동작을 수행해야 하는 하나 이상의 결제 필드를 채우는 것이 요구될 수 있다.
사용자가 주문을 확인할 때, 사용자 클라이언트-장치(300)는 판매자 시스템으로 결제 토큰을 전달한다. 특히, 만일 사용자 클라이언트-장치(300)가 결제 토큰 및 결제 토큰과 연관된 사용자 정보를 복호화한다면, 사용자 클라이언트-장치(300)는 결제 토큰 및 사용자 정보를 재암호화하여 판매자 시스템으로 전송할 수 있다. 만일 사용자 클라이언트-장치(300)가 결제 토큰 및 결제 토큰과 연관된 사용자 정보를 복호화하지 않는다면, 사용자 클라이언트-장치(300)는 결제 시스템으로부터 암호화된 토큰을 판매자 시스템으로 전달할 수 있다. 따라서, 결제 시스템은 사용자 클라이언트-장치(300)가 판매자 시스템으로 직접적으로 통신하는 결제 시스템 없이 결제 토큰 및 다른 관련된 결제 정보를 판매자 시스템으로 전달하게 하는 구성에 따르는 결제 토큰을 제공한다. 추가로, 결제 시스템은 가장 최신의 결제 정보를 사용자 클라이언트-장치로 제공하고, 매번 사용자는 판매자와 결제 거래를 들어간다.
사용자 클라이언트-장치(300)가 결제 토큰 및 다른 관련된 정보를 판매자 시스템으로 제공한 후, 판매자 시스템은 결제 토큰을 결제 네트워크로 전송함으로써 결제 거래를 처리한다. 결제 네트워크는 결제 토큰을 사용하여 결제 토큰이 게이트웨이 결제 토큰 또는 네트워크 결제 토큰인지 여부(예, 결제 게이트웨이 시스템 또는 카드 네트워크 시스템이 결제 토큰을 생성하는지 여부)에 근거하여 결제 승인 번호를 결정한다. 추가로, 결제 토큰은 사용자의 결제 자격으로부터 판매자 시스템의 결제 자격으로 자금을 이전함으로써 결제 거래를 처리한다.
결제 거래를 성공적으로 완결하는 것에 대응하여, 사용자 클라이언트-장치(300)는 결제 시스템으로부터 결제 거래가 완결되고 클라이언트 어플리케이션이 성공적인 결제 메시지(340)를 디스플레이하게 하는 공지를 수신할 수 있다. 도 3d에 예시된 바와 같이, 성공적인 결제 메시지(340)는 사용자의 결제 계정이 결제 금액을 성공적으로 부과하였음을 나타낼 수 있다. 완결된 결제 거래는 또한 클라이언트 어플리케이션이 사용자에 대하여 거래 이력을 업데이트하게 할 수 있고, 이는 사용자가 이전의 시작된/완결된/취소된 결제 거래에 대응하여 상세사항 보기에 액세스할 수 있다. 대안으로, 결제 거래가 성공적으로 완결되지 않는다면, 클라이언트 어플리케이션은 클라이언트 어플리케이션 내에 실패된 결제 메시지를 디스플레이할 수 있다.
추가로, 결제 거래가 완결된다는 표시를 수신한 후, 사용자 클라이언트-장치(300)는 결제 거래의 성공적인 완결을 나타내는 메시지를 결제 시스템으로 전송할 수 있다. 결제 시스템은 사용자를 위한 사용자 계정과 함께 정보를 저장할 수 있다. 결제 정보를 저장하는 것은 사용자가 요청하는 경우 결제 시스템이 사용자에게 구매 이력을 제공하게 한다.
도 1 내지 3d, 상응하는 설명 및 예시는, 결제 시스템을 사용하여 전자 결제 거래를 처리하기 위한 수많은 상이한 시스템 및 장치를 제공한다. 앞선 내용 이외에, 실시예는 특정 결과를 완수하기 위한 방법에서 행위 및 단계를 포함하는 흐름도의 측면에서 설명될 수 있다. 예를 들어, 도 4는 하나 이상의 실시예에 따른 예시적인 방법의 흐름도를 예시한다.
도 4는 토큰화된 결제 자격과 함께 결제 거래를 처리하는 방법(400)의 흐름도를 예시한다. 방법(400)은 사용자 및 판매자 사이에 결제 거래를 시작하기 위해 요청을 수신하는 행동(402)을 포함한다. 예를 들어, 행동(402)은 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 사용자와 연관된 사용자 클라이언트-장치(104)로부터 수신하는 것을 포함한다. 설명하기 위해, 행동(402)은 판매자-특이적 웹사이트 또는 어플리케이션을 통하여 판매자로부터 제공된 생산물 또는 서비스에 대한 구매 주문과 관련하여 결제 거래를 시작하는 요청을 수신하는 것을 포함할 수 있다.
행동(402)은 판매자와 연관된 컨텐츠를 포함하는 어플리케이션 인터페이스를 통하여, 사용자 클라이언트-장치(104)로부터, 어플리케이션 프로그램 인터페이스 호출을 수신하는 것을 포함할 수 있다. 설명하기 위해, 행동(402)은 판매자와 연관된 컨텐츠를 포함하는 어플리케이션 인터페이스를 통하여, 사용자 클라이언트-장치(104)로부터, 자바스크립트 요청을 수신하는 것을 포함할 수 있다. 예를 들어, 행동(402)은 사용자와 연관된 결제 승인 번호에 대한 결제 토큰을 획득하고, 사용자 클라이언트-장치(104)로 결제 토큰을 전송하는 명령어를 포함하는 자바스크립트 요청을 수신하는 것을 포함할 수 있다. 자바스크립트 요청은 결제 거래에 대한 사용자 신원, 판매자 신원, 및 결제 승인 번호를 포함하는 결제 정보를 포함할 수 있다.
방법(400)은 결제 승인 번호를 확인하는 행동(404)을 더 포함한다. 예를 들어, 행동(404)은 사용자에 대한 사용자 계정과 연관된 결제 승인 번호를 확인하는 것을 포함한다. 행동(404)은 결제 거래를 시작하는 요청에서 결제 승인 번호를 사용하는 요청을 확인하는 것을 포함할 수 있다. 예를 들어, 행동(404)은 사용자 클라이언트-장치(104)로부터 자바스크립트 요청으로부터 결제 승인 번호를 확인하는 것을 포함할 수 있다. 추가로, 사용자 계정은 사용자의 결제 자격에 대한 결제 승인 번호를 포함하는 소셜 네트워킹 계정일 수 있다.
행동(404)의 일부로서, 또는 추가적인 행동으로서, 방법(400)은 결제 승인 번호와 연관된 사용자 정보를 확인하는 것 및 사용자 클라이언트-장치(104)로, 암호화된 결제 토큰을 가진 사용자 정보를 전송하는 것을 포함한다. 예를 들어, 사용자 정보를 확인하는 것은 결제 승인 번호와 연관된 청구 정보를 확인하는 것을 포함할 수 있다. 청구 정보는 사용자의 성명, 사용자에 대한 청구 주소, 및 사용자의 전화 번호를 포함할 수 있다.
방법(400)은 또한 결제 승인 번호에 대한 결제 토큰을 획득하는 행동(406)을 포함한다. 예를 들어, 행동(406)은 결제 거래에 상응하는 결제 승인 번호를 나타내는 결제 토큰을 획득하는 것을 포함한다. 행동(406)은 사용자의 결제 자격에 연관된 결제 승인 번호를 확인하는 것, 결제 승인 번호를 나타내는 결제 토큰에 대한 요청을 사용자의 결제 자격에 연관된 결제 네트워크(112)로 전송하는 것, 및 결제 네트워크(112)로부터, 결제 승인 번호를 나타내는 결제 토큰을 수신하는 것을 포함할 수 있다. 예를 들어, 결제 토큰은 결제 네트워크(112)에서 결제 게이트웨이 시스템(114)으로부터 게이트웨이 결제 토큰일 수 있다. 대안으로, 결제 토큰은 결제 네트워크(112)에서 카드 네트워크 시스템(118)으로부터 네트워크 결제 토큰일 수 있다.
추가로, 방법(400)은 결제 토큰을 암호화하는 행동(408)을 포함한다. 예를 들어, 행동(408)은 하나 이상의 서버에 의해 결제 승인 번호를 나타내는 결제 토큰을 암호화하는 것을 포함할 수 있다. 행동(408)은 사용자 클라이언트-장치(104)의 운영 시스템과 관계없이 사용자 및 판매자 사이에 결제 거래를 시작하기 위해 결제 토큰을 암호화하는 단계를 포함할 수 있다. 행동(408)은 또한 결제 승인 번호의 형식에 따라서 결제 토큰을 암호화하는 것을 포함한다. 예를 들어, 결제 승인 번호의 형식에 따라서 결제 토큰을 암호화하는 것은 결제 토큰을 암호화하여 결제 승인 번호와 연관된 번호부여 계획(numbering scheme)에 따른 일련의 숫자의 수치 값을 가지는 것을 포함할 수 있다.
추가로, 행동(408)은 사용자 클라이언트-장치에서 결제 토큰을 복호화하기 위하여 사용자 클라이언트-장치(104)와 연관된 결제 토큰을 암호화하는 것은 포함할 수 있다. 예를 들어, 암호화 열쇠는 하나 이상의 서버 및 사용자 클라이언트-장치(104)만이 액세스할 수 있는 열쇠일 수 있다. 행동(408)은 사용자 클라이언트-장치(104)에 대한 하나 이상의 서버와 연관된 개인 열쇠로 결제 토큰을 서명하는 것을 더 포함할 수 있다.
행동(408)의 일부로서, 또는 추가적인 행동으로서, 방법(400)은 암호화된 결제 토큰 및 사용자 정보를 포함하는 결제 메시지를 생성하는 것, 및 판매자와 연관된 컨텐츠를 포함하는 어플리케이션에서 결제 형식을 자동완성하기 위한 결제 메시지를 전송하는 것을 포함할 수 있다. 예를 들어, 결제 메시지는 사용자 클라이언트-장치(104)가 결제 형식을 자동완성하기 위하여 해석될 수 있는 형태의 암호화된 결제 토큰 및 사용자 정보를 포함할 수 있다. 추가로, 결제 형태는 어플리케이션 인터페이스 내에서 디스플레이하기 위해 판매자에 의해 생성된 결제 형태일 수 있다.
방법(400)은 판매자 시스템으로 제공하기 위해 사용자 클라이언트-장치에 대한 암호화된 결제 토큰을 전송하는 행동(410)을 포함할 수 있다. 예를 들어, 행동(410)은 결제 거래와 관련하여 판매자와 연관된 판매자 시스템으로 제공하기 위해 사용자 클라이언트-장치(104)에 대한 암호화된 결제 토큰을 전송하는 것을 포함한다. 행동(410)은 또한 암호화된 결제 토큰과 관련하여 검증하기 위하여 사용자 클라이언트-장치(104)에 대한 암호화된 결제 토큰과 암호화된 사용자 정보를 전송하는 것을 포함할 수 있다.
행동(410)의 일부로서, 또는 추가적인 행동으로서, 방법(400)은 또한 사용자 클라이언트-장치(104)로 암호화된 결제 토큰을 전송한 후 판매자로부터 결제 토큰을 수신하는 하나 이상의 서버 없이 결제 거래를 처리하는 것을 포함할 수 있다. 예를 들어, 방법(400)은, 결제 거래 동안 판매자와 통신하는 하나 이상의 서버 없이 결제 거리를 처리하기 위해, 사용자 클라이언트-장치(104)가 판매자에게 전송하기 위한, 및 판매자가 결제 네트워크(112)에 전송하기 위한 암호화된 결제 토큰을 포함하는 데이터 패키지를 구성하는 것을 포함할 수 있다.
도 5는 결제 시스템(110)을 포함하는 도 1의 환경의 추가적인 세부사항을 예시하는 개략도를 예시한다. 도시된 바와 같이, 환경(100)은 사용자 클라이언트-장치(104), 판매자 시스템(106), 결제 시스템(110)을 포함하는 서버 장치(108), 및 결제 네트워크(112)를 포함할 수 있다. 추가로, 도 1과 관련하여 상술된 바와 같이, 결제 네트워크(112)는 결제 게이트웨이 시스템(114), 결제 승인 번호와 연관된 카드 네트워크 시스템(118), 및 발행자(120)를 포함한다. 일반적으로, 결제 시스템(110)은 사용자 클라이언트-장치(104)와 연관된 사용자가 판매자 시스템(106)과 연관된 판매자로 결제를 전송하게 한다.
도 5는 사용자 클라이언트-장치(104)는 다양한 컴포넌트를 가진 클라이언트 어플리케이션(502)(e-클라이언트 어플리케이션 또는 웹 브라우저)을 포함하고, 서버 장치(108)는 네트워크 어플리케이션(504) 및 다양한 컴포넌트를 가진 결제 시스템(110)을 포함한다는 것을 예시한다. 클라이언트 어플리케이션(502)의 컴포넌트, 네트워크 어플리케이션(504), 및 결제 시스템(110)은, 상세하게 후술되는 바와 같이, 함께 작동하여 사용자가 판매자로 결제를 전송하는 것을 허용할 수 있다.
도 5의 클라이언트 어플리케이션(502)은 사용자 인터페이스 관리자(508), 사용자 입력 탐지자(510), 메시지 핸들러(512), 보안 관리자(514), 위치 탐지자(516), 결제 요청 생성자(518) 및 데이터 관리자(520)를 포함한다. 도 5는 네트워크 어플리케이션(504)이 통신 관리자(530), 메시지 데이터베이스(534), 사용자 프로필 데이터베이스(536), 및 위험 계산기(538)을 포함하는 것을 예시한다. 후술되는 바와 같이, 네트워크 어플리케이션(504)은 또한 선택적으로 소셜 그래프(550)를 포함할 수 있고, 이는 노드 정보(552) 및 에지 정보(554)를 포함한다. 도 5는 결제 시스템(110)이 결제 관리자(540), 거래 데이터베이스(542), 및 토큰 관리자(546)를 포함하는 것을 추가로 예시한다. 사용자 클라이언트-장치(104), 판매자 시스템(106), 및 서버 장치(108)의 각 컴포넌트는 임의의 적합한 통신 기법을 사용하여 각각 다른 또는 컴포넌트와 통신할 수 있다. 비록 클라이언트 장치(104) 및 결제 시스템(110)의 컴포넌트는 도 5에 분리된 것으로 도시되지만, 임의의 컴포넌트는 단일 설비 또는 모듈과 같이 더 적은 수의 컴포넌트로 결합되거나, 또는 특정 실시예를 제공할 수 있기 때문에 더 많은 수의 컴포넌트로 나뉠 수 있다는 것이 인식될 것이다. 도 5는 클라이언트 어플리케이션(502)의 일부로서 특정 컴포넌트 및 네트워크 어플리케이션(504) 또는 결제 시스템(110)의 일부로서 다른 컴포넌트를 설명하지만, 본 개시는 이에 제한되지 않는다. 대안적인 실시예에서, 클라이언트 어플리케이션(502)의 일부로서 도시된 하나 이상의 컴포넌트는 네트워크 어플리케이션(504) 또는 결제 시스템(110)의 일부이거나, 또는 그 반대일 수 있다. 유사하게, 네트워크 어플리케이션(504)의 일부로서 하나 이상의 컴포넌트는 결제 시스템(110)의 일부이거나, 또는 그 반대일 수 있다.
컴포넌트는 소프트웨어, 하드웨어, 또는 둘 다 포함할 수 있다. 예를 들어, 컴포넌트는 비일시적 컴퓨터-판독가능한 저장 매체 상에 저장되고 클라이언트 장치 또는 서버 장치의 적어도 하나의 프로세서에 의해 샐행가능한 컴퓨터 명령어를 포함할 수 있다. 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨터-실행가능한 명령어는 클라이언트 장치 또는 서버 장치가 본 명세서에서 설명된 방법 및 처리를 실행하게 할 수 있다. 대안으로, 컴포넌트는 특정 기능 또는 기능의 그룹을 수행하기 위해 하드웨어, 예컨대, 특별한 목적 프로세싱 장치를 포함할 수 있다. 추가로 또는 대안으로, 컴포넌트는 컴퓨터-실행가능한 명령어 및 하드웨어의 결합을 포함할 수 있다.
하나 이상의 실시예에서, 클라이언트 어플리케이션(502)은 클라이언트 장치에 설치된 내재된 어플리케이션이다. 예를 들어, 클라이언트 어플리케이션(502)은 모바일 장치, 예컨대 스마트폰 또는 태블릿상에서 설치되고 작동하는 모바일 어플리케이션일 수 있다. 다른 예에서, 클라이언트 어플리케이션(502)은 데스크탑 어플리케이션, 위젯, 또는 다른 형식의 내재된 컴퓨터 프로그램일 수 있다. 대안으로, 클라이언트 어플리케이션(502)은 클라이언트 장치가 액세스하는 원격 어플리케이션일 수 있다. 예를 들어, 클라이언트 어플리케이션(502)은 클라이언트 장치의 웹 브라우저 내에서 실행되는 웹 어플리케이션일 수 있다.
상기 언급된 바와 같이, 및 도 5에 도시된 바와 같이, 클라이언트 어플리케이션(502)은 사용자 인터페이스 관리자(508)를 포함할 수 있다. 사용자 인터페이스 관리자(508)는 사용자가 판매자와 연관된 컨텐츠를 보고/거나, 판매자와 결제 거래로 들어가게 하는 그래픽 사용자 인터페이스(또는 단순히 "사용자 인터페이스")를 제공하고, 관리하고, 및/또는 제어한다. 예를 들어, 사용자 인터페이스 관리자(508)는 판매자로부터 상품 또는 서비스를 브라우징하고 구매하는데에 참여하기 위한 사용자 인터페이스를 제공할 수 있다. 사용자 인터페이스 관리자(508)는 또한 사용자가 클라이언트 어플리케이션(502) 또는 클라이언트 어플리케이션(502)에 의해 제공된 인터페이스에 의해 제공된 통신 능력에 근거하여 판매자와 통신을 허용할 수 있다.
더 구체적으로, 사용자 인터페이스 관리자(508)는 (예, 상응하는 클라이언트 장치와 연관된 디스플레이 장치에 의하여) 사용자 인터페이스의 디스플레이를 용이하게 할 수 있다. 예를 들어, 사용자 인터페이스는 사용자가 메시지 또는 결제를 작성하고, 전송하고, 수신하게 하는 복수의 그래픽 컴포넌트, 객체, 및/또는 요소로 이루어질 수 있다. 더 구체적으로, 사용자 인터페이스 관리자(508)는 사용자가 판매자와 연관된 생산품을 볼 수 있게 클라이언트 장치가 한 그룹의 그래픽 컴포넌트, 객체 및/또는 요소를 디스플레이하도록 명령할 수 있다. 추가로, 사용자 인터페이스 관리자(508)는, 예컨대 사용자가 이메일 또는 인스턴트 메시징을 통하여 판매자와 통신하도록 허용함으로써, 사용자가 하나 이상의 통신 매체를 통해 판매자와 통신하도록 허용할 수 있다.
또한, 사용자 인터페이스 관리자(508)는 클라이언트 장치가 판매자로부터 생산품의 구매를 위해 사용자 입력을 용이하게 하는 하나 이상의 그래픽 객체 또는 요소를 디스플레이하도록 명령할 수 있다. 설명하기 위해, 사용자 인터페이스 관리자(508)는 사용자가 클라이언트 어플리케이션(502)으로 사용자 입력을 제공하게 하는 사용자 인터페이스를 제공할 수 있다. 예를 들어, 사용자 인터페이스 관리자(508)는 사용자가 판매자와 연관된 컨텐츠를 브라우징하게 하는 하나 이상의 사용자 인터페이스를 제공할 수 있다.
사용자 인터페이스 관리자(508)는 텍스트 또는 결제 거래와 연결된 다른 데이터의 입력을 용이하게 할 수 있다. 예를 들어, 사용자 인터페이스 관리자(508)는 키보드를 포함하는 사용자 인터페이스를 제공할 수 있다. 사용자는 결제 거래를 위한 정보를 제공하기 위한 텍스트를 선택하기 위해 하나 이상의 터치 제스처를 사용하여 키보드와 상호작용할 수 있다. 예를 들어, 판매자로부터 구매를 완결하기 위해사용자는 사용자 정보 또는 결제 자격과 연관된 결제 정보를 입력하기 위해 키보드를 사용할 수 있다. 텍스트 이외에, 키보드 인터페이스를 포함한 사용자 인터페이스는, 다양한 다른 문자, 심볼, 아이콘, 또는 다른 문자 정보의 입력을 용이하게 할 수 있다.
도 5에 더 예시된 바와 같이, 클라이언트 어플리케이션(502)은 사용자 입력 탐지자(510)를 포함할 수 있다. 하나 이상의 실시예에서, 사용자 입력 탐지자(510)는 임의의 적합한 방식으로 사용자 입력을 탐지하고, 수신하고 및/또는 용이하게 할 수 있다. 일부 예에서, 사용자 입력 탐지자(510)는 사용자 인터페이스에 대하여 하나 이상의 사용자 상호작용을 탐지할 수 있다. 본 명세서를 참고하면, "사용자 상호작용"은 하나 이상의 입력 장치에 의하여 사용자로부터 수신된 단일 상호작용 또는 상호작용의 결합을 의미한다.
예를 들어, 사용자 입력 탐지자(510)는 키보드, 마우스, 터치 패드, 터치스크린 및/또는 임의의 다른 입력 장치로부터 사용자 상호작용을 탐지할 수 있다. 클라이언트 장치가 터치스크린을 포함하는 경우, 사용자 입력 탐지자(510)는 사용자 상호작용을 형성하는 사용자로부터 하나 이상의 터치 제스처(예, 스와이프 제스처, 탭 제스처, 핀치 제스처, 또는 리버스 핀치 제스처)를 탐지할 수 있다. 일부 예에서, 사용자는 사용자 인터페이스의 하나 이상의 그래픽 객체 또는 그래픽 요소와 관계에서 및/또는 지시된 터치 제스처를 제공할 수 있다.
사용자 입력 탐지자(510)는, 추가로 또는 대안으로, 사용자 상호작용을 나타내는 데이터를 수신할 수 있다. 예를 들어, 사용자 입력 탐지자(510)는 사용자로부터 하나 이상의 사용자 구성가능한 파라미터, 사용자로부터 하나 이상의 사용자 명령어, 및/또는 임의의 다른 적합한 사용자 입력을 수신할 수 있다. 사용자 입력 탐지자(510)는 클라이언트 어플리케이션(502)의 하나 이상의 컴포넌트로부터, 사용자 클라이언트-장치(104) 상에 저장소로부터, 또는 하나 이상의 원격 위치(예, 네트워크 어플리케이션)로부터 입력 데이터를 수신할 수 있다.
클라이언트 어플리케이션(502)은 사용자 입력을 수신하고/거나 다른 데이터를 수신하는 사용자 입력 탐지자(510)에 대응하여 하나 이상의 기능을 수행할 수 있다. 일반적으로, 사용자 입력 탐지자(510)가 탐지할 수 있는 하나 이상의 사용자 입력을 제공함으로써 사용자는 클라이언트 어플리케이션(502)을 제어하고, 탐색하고, 다르게 사용할 수 있다. 예를 들어, 사용자 입력을 탐지하는 사용자 입력 탐지자(510)에 대응하여, 클라이언트 어플리케이션(502)의 하나 이상의 컴포넌트는 사용자가 결제 시스템(110)을 통해 제안된 생산품에 대해 지불하는 요청을 전송하게 한다. 또한, 사용자 입력을 탐지하는 사용자 입력 탐지자(510)에 대응하여, 클라이언트 어플리케이션(502)의 하나 이상의 컴포넌트는 사용자가 하나 이상의 사용자 인터페이스를 통해 탐색하여 수신된 메시지, 연락처, 거래 이력 등을 검토하도록 허용한다.
하나 이상의 실시예에서, 하나 이상의 사용자 입력을 탐지하는 사용자 입력 탐지자(510)에 대응하여, 클라이언트 어플리케이션(502)은 사용자가 판매자와 결제 거래를 들어가도록 허용할 수 있다. 예를 들어, 사용자는 사용자 인터페이스 내에서 제공된 결제 요소와 상호작용할 수 있다. 결제 요소와 사용자 상호작용 탐지 시, 사용자 입력 탐지자(510)는 사용자 인터페이스 관리자(508)가 판매자와 결제 거래를 시작하기 위해 사용자 인터페이스를 제공하게 할 수 있다. 따라서, 하나 이상의 사용자 입력을 탐지하는 사용자 입력 탐지자(510)에 대응하여, 클라이언트 어플리케이션(502)은 사용자가 결제 거래 사용자 및 판매자 사이에 결제 거래를 시작하도록 허용할 수 있다.
도 5에 더 예시된 바와 같이, 클라이언트 어플리케이션(502)은 클라이언트 어플리케이션(502)로 제공된 또는 클라이언트 어플리케이션(502)로부터 전송된 메시지를 관리하는 메시지 핸들러(512)를 포함한다. 본 명세서에서 사용된 바와 같이, 용어 "메시지"는 정보를 다른 장치로 전송하기 위해 장치에 의해 생성된 임의의 통신을 포함한다. 따라서, 메시지 또는 결제 메시지는 결제 거래로 들어가는 요청을 포함할 수 있다. 예를 들어, 메시지 핸들러(512)는 사용자 인터페이스 관리자(508) 및 사용자 입력 탐지자(510)와 상호작용하여 클라이언트 어플리케이션(502)을 사용한 메시지의 전송 및 수신을 조정할 수 있다. 메시지 핸들러(512)는 복수의 참여자 사이에 전자 메시징 세션 동안에 걸쳐 네트워크 어플리케이션으로 및 네트워크 어플리케이션으로부터 메시지를 전송하고 수신하는 것을 지시할 수 있다. 메시지 핸들러(512)는 들어오고 나가는 메시지를 정리하고, 사용자 인터페이스 관리자(508)를 지시하여 메시지를 디스플레이할 수 있다.
하나 이상의 실시예에서, 메시지 핸들러(512)는 클라이언트 어플리케이션(502)을 통해 데이터를 수신하고 전송하는 것을 용이하게 할 수 있다. 특히, 메시지 핸들러(512)는 메시지를 전송하고 수신하는 것을 용이하게 할 수 있다. 예를 들어, 메시지 핸들러(512)는 본 명세서에서 설명되는 바와 같이 메시지에 포함되는 컨텐츠를 패키징하고 하나 이상의 통신 채널을 통하여 및 적절한 통신 프로토콜을 사용하여 전송될 수 있는 임의의 필요한 형식으로 메시지를 포맷한다. 설명하기 위해, 메시지 핸들러(512)는 결제 거래 처리의 다양한 단계에서 결제 거래 정보를 서버 장치로 전송할 수 있다. 유사하게, 메시지 핸들러(512)는 클라이언트 장치가 다른 사용자로부터 수신하는 메시지를 처리할 수 있다.
또한, 메시지 핸들러(512)는 결제 거래와 연관된 결제의 전송을 용이하게 할 수 있다. 특히, 도 5는 클라이언트 어플리케이션(502)이 메시지 핸들러(512)가 네트워크 어플리케이션 또는 결제 시스템(110)으로 전송하여 결제 처리/거래를 시작할 수 있는 결제 요청을 생성할 수 있는 결제 요청 생성자(518)를 포함할 수 있다는 것을 예시한다. 예를 들어, 전송자가 사용자 인터페이스에서 결제 요소를 선택할 때, 결제 요청 생성자(518)는 사용자로부터 수신한 결제 정보를 포함하는 데이터 패키지를 생성할 수 있다. 결제 요청은 네트워크 어플리케이션 및 결제 시스템(110)이 결제 거래를 수행하게 하는 임의의 필요한 정보뿐만 아니라 결제 거래의 일부로서 전송될 금액의 표시를 포함할 수 있다.
하나 이상의 실시예에서, 결제 요청 생성자(518)는 결제 금액, 하나 이상의 사용자 신원, 하나 이상의 판매자 신원, 하나 이상의 결제 방법 또는 전송자 계정 정보(예, 결제 승인 번호), 승인 정보, 환율 정보, 메시지 또는 결제 기재사항, 및/또는 전송자로부터 수신자로 결제를 용이하게 하는데 도움이 될 수 있는 임의의 다른 데이터를 포함하는 데이터 패키지를 생성할 수 있다. 결제 요청 생성자(518)는 정보를 판매자 시스템(106)에 의해 제공된 인터페이스에서 자바스크립트 호출에서 명령어에 기반하여 데이터 패키지에서 제공하도록 결정할 수 있다. 결제 요청 생성자(518)는 결제 요청(예, 결제 정보를 포함하는 데이터 패키지)을 메시지 핸들러(512)로 전달하여 결제 시스템(110)으로 전송할 수 있다.
결제 요청 생성자(518)는 또한 다양한 소스로부터 결제 정보를 획득할 수 있다. 예를 들어, 결제 요청 생성자(518)는 사용자 입력 탐지자(510)를 통하여 전송자로부터 직접적으로 결제 정보를 획득할 수 있다. 추가로 또는 대안으로, 결제 요청 생성자(518)는 데이터 관리자(520)에 의해 클라이언트 장치상에서 유지된 결제 정보에 액세스를 얻을 수 있다. 예를 들어, 클라이언트 어플리케이션(502)는 사용자가 다양한 결제 방법을 입력하고 저장하고/거나, 디폴트 결제 방법, 디폴트 환율을 확인하거나, 결제를 전송하고/거나 수신하는 것에 관련된 다른 사용자 선호도를 다르게 구체화하게 한다.
결제 요청 생성자(518)는 또한 클라이언트 어플리케이션(502)를 통하여 사용자로부터 입력에 기반하여 메시지의 포맷화를 용이하게 할 수 있다. 구체적으로, 결제 요청 생성자(518)는 상응하는 결제 방법에 따라서 결제 요청의 포맷화를 용이하게 할 수 있다. 예를 들어, 결제 요청 생성자(518)는 결제 거래(예, 신용 거래 또는 직불 거래)에서 판매자에게 지불하는 요청을 입력하고, 따라서 판매자에게 결제 요청을 포맷화하는 것을 결정할 수 있다.
하나 이상의 실시예에서, 결제 요청 생성자(518)는 결제 요청 내에서 토큰에 액세스하고 제공할 수 있다. 토큰은 결제 시스템(110)에 의해 저장된 결제 자격을 지칭하는 서버 장치(108)로부터 토큰일 수 있다. 예를 들어, 결제 요청 생성자(518)는 결제 시스템(110)에 의해 저장된 결제 자격을 사용하여 결제를 만들기 위해 승인된 바와 같이 전송자 및/또는 전송자 클라이언트 장치를 검증하는 결제 요청을 포함하거나 결제 요청과 함께 토큰을 검색할 수 있다. 대안으로, 토큰은 서버 장치(108)에 저장된 결제 토큰을 지칭할 수 있다.
상기에서 언급한 바와 같이, 클라이언트 어플리케이션(502)은 보안 관리자(514)를 더 포함할 수 있다. 보안 관리자(514)는 안전한 결제 거래와 관련된 정보를 암호화하거나 복호화할 수 있다. 구체적으로, 보안 관리자(514)는 결제 시스템(110)과 연관된 보안 열쇠에 액세스하여 결제 거래와 연관된 정보(예, 결제 토큰, 결제 정보)를 암호화하거나 복호화할 수 있다. 예를 들어, 보안 관리자(514)는 결제 시스템(110)으로부터 암호화된 데이터 패키지를 수신하고, 데이터 패키지를 복호화하여 사용자가 데이터 패키지 내의 정보, 예컨대 결제 토큰 및 결제 자격과 연관된 사용자 정보를 검증하게 한다.
클라이언트 어플리케이션(502)는 위치 탐지자(516)를 더 포함할 수 있다. 위치 탐지자(516)는 메시지를 분석함으로써, 또는 다른 소스로부터 데이터에 기반하여, 클라이언트 장치, 기지국 삼각측량, WIFI 수신된 신호 강화 표시, WIFI 무선 핑거프린팅, 무선-주파수 신원, 근거리(near-field) 통신으로부터 GPS 정보에 기반한 클라이언트 장치의 위치에 액세스하거나 확인할 수 있다. 위치 탐지자(516)는 이어서 네트워크 어플리케이션(504) 또는 결제 시스템(110)으로 클라이언트 장치의 위치를 제공할 수 있다.
상기 논의된 바와 같이, 클라이언트 장치는 도 5에 예시된 바와 같이, 데이터 관리자(520)를 포함할 수 있다. 데이터 관리자(520)는 판매자와 결제 거래에 참여하는 것과 관련하여 사용된 데이터를 대표하는 메시지 데이터를 유지할 수 있다. 예를 들어, 메시지 데이터는 결제 거래 로그, 구매 이력, 내용, 과거 통신, 및 다른 유사한 유형의 데이터를 포함할 수 있다. 클라이언트 어플리케이션(502)은 사용자를 위해 클라이언트 어플리케이션(502)을 사용하여 판매자와 결제 거래로 들어가는 능력을 제공하는 것과 관련하여 사용될 수 있다.
데이터 관리자(520)는 또한 결제 요청을 생성하기 위해 사용된 정보를 대표하는 결제 데이터를 유지할 수 있다. 예를 들어, 결제 데이터는 결제 방법 데이터(즉, 자격) 및/또는 계정 데이터(예, 은행 또는 신용 카드 계정 데이터)를 포함할 수 있다. 게다가, 결제 데이터는 결제 선호도(예, 디폴트 결제 방법)를 포함할 수 있다. 일반적으로, 결제 데이터는 결제 요청 생성자(518)가 결제를 생성하는 것과 관련되어 사용할 수 있는 임의의 데이터를 포함할 수 있다.
상기에서 간략하게 언급된 바와 같이, 환경(100)은 서버 장치(108)상에서 전체 또는 일부가 구현되는 네트워크 어플리케이션(504)을 더 포함할 수 있다. 본 명세서의 하나 이상의 실시예에서, 네트워크 어플리케이션(504)은 소셜-네트워킹 시스템(예컨대, 이에 제한되는 것은 아니지만 페이스북(TM))을 포함하지만, 다른 실시예에서, 네트워크 어플리케이션(504)은 이에 제한되는 것은 아니지만, 이-메일 어플리케이션, 검색 엔진 어플리케이션, 뱅킹 어플리케이션, 또는 사용자 계정을 사용하는 임의의 많은 다른 어플리케이션 유형을 포함하는 또 다른 유형의 어플리케이션을 포함할 수 있다.
네트워크 어플리케이션(504)이 소셜-네트워킹 시스템을 포함하는 하나 이상의 실시예에서, 네트워크 어플리케이션은 복수의 사용자 및 컨셉을 나타내고 분석하는 소셜 그래프(550)를 포함할 수 있다. 소셜 그래프(550)의 노드 저장소는 사용자를 위한 노드, 컨셉을 위한 노드, 거래를 위한 노드, 및 아이템을 위한 노드를 포함하는 노드 정보(552)를 저장할 수 있다. 소셜 그래프의 에지 저장소는 소셜-네트워킹 시스템 내에서 일어나는 노드 및/또는 행동 사이에 관계를 포함하는 에지 정보(554)를 저장할 수 있다. 소셜-네트워킹 시스템, 소셜 그래프, 에지, 및 노드에 관한 세부사항은 도 8에 관하여 하기에 제시된다.
통신 관리자(530)는 클라이언트 어플리케이션(502)으로부터 수신한 메시지를 처리할 수 있다. 예를 들어, 통신 관리자(530)는 클라이언트 어플리케이션(502)의 메시지 핸들러(512)와 상호작용할 수 있다. 통신 관리자(530)는 사용자로부터 결제 요청을 수신하고 관리할 수 있다. 통신 관리자(530)는 클라이언트 어플리케이션(502)으로부터 결제 요청을 수신하고, 결제 요청과 연관된 결제 정보를 탐지하고, 정보를 결제 시스템(110)으로 전달할 수 있다.
네트워크 어플리케이션은 또한 메시지 데이터베이스(534)를 포함할 수 있다. 메시지 데이터베이스(534)는 결제 거래에 참여한 사용자 또는 판매자의 신원에 관련된 결제 거래와 연관된 메시지 데이터를 유지할 수 있다. 구체적으로, 메시지 데이터베이스(534)는 사용자의 흥미 또는 선호도를 확인하는데에 사용하기 위한 사용자의 하나 이상의 판매자와의 참여의 이력을 유지할 수 있다. 예를 들어, 메시지 데이터베이스(534)는 사용자가 상품을 구매한 판매자의 유형에 기반하여 사용자의 흥미를 나타내는 정보를 유지할 수 있고, 여기서 소셜 그래프(550)는 액세스하여 사용자를 위한 노드 정보(552) 또는 에지 정보(554)에 영향을 미칠 수 있다. 메시지 데이터베이스(534)는 또한 결제 시스템(110)이 네트워크 어플리케이션(504)으로부터 따로 유지하는 민감한 정보(예, 결제 정보)를 삭제할 수 있다. 추가로 또는 대안으로, 이러한 정보는, 후술되는 바와 같이, 거래 데이터베이스(542)에서 유지될 수 있다.
앞서 언급된 바와 같이, 서버 장치는 결제 관리자(540)를 가진 결제 시스템(110)을 포함할 수 있다. 도 5의 결제 관리자(540)는 결제 요청을 전송하고 수신하는 것을 통합하고, 결제 거래를 시작할 수 있고, 하나 이상의 어플리케이션 프로그래밍 인터페이스(API)를 사용할 수 있다. 예를 들어, 통신 관리자(530)가 결제 요청을 수신할 때, 통신 관리자(530)는 결제 관리자(540)로 임의의 결제 세부사항을 전송할 수 있다. 이어서, 결제 관리자(540)는 결제 요청으로부터 검색된 결제 세부사항을 사용하여 결제 네트워크(112)를 사용하여 결제 거래를 시작할 수 있다.
하나 이상의 실시예에 따르면, 서버 장치(108)는 네트워크 어플리케이션(504)으로부터 분리된 결제 시스템(110)을 유지할 수 있다. 예를 들어, 서버 장치(108)는 네트워크 어플리케이션(예, 회복을 위해 메시징 데이터베이스를 사용하여)의 적어도 일부 기능성과 별도로 결제 시스템(110)과 연관된 결제 처리를 구현할 수 있다. 설명하기 위해, 서버 장치(108)는 제 1 그룹의 하나 이상의 서버상에서 결제 시스템(110)의 기능성을, 제 2 그룹의 하나 이상의 서버상에서 네트워크 어플리케이션(504)의 기능성을 구현할 수 있다. 분리된 서버상에서 결제 시스템(110) 및 네트워크 어플리케이션(504)의 기능성을 구현하는 것은 결제 시스템이 적어도 일부 사용자와 연관된 금융 정보가 네트워크 어플리케이션(504)과 떨어져서 유지되어 결제 카드 산업(PCI) 표준을 준수하는 것을 보장하도록 허용할 수 있다. 본 명세서에서 설명된 것 이외에 서버 및/또는 소프트웨어의 대안적인 구성은 또한 서버 장치(108)가 PCI 표준을 준수하도록 허용할 수 있다.
결제 관리자(540)는 결제 요청에 정의된 결제에 상당하는 거래를 조정할 수 있다. 앞서서 일반적으로 설명한 바와 같이, 결제 관리자(540)는 결제 요청에 상응하는 결제 네트워크(112)를 통해 거래를 조정하고, 거래의 상태를 모니터링하고, 거래에 관련된 상태 정보를 제공할 수 있다. 더 구체적으로, 결제 네트워크(112)는 거래를 승인하고, 거래 자금을 조달하고, 및/또는 개개의 거래 또는 한 묶음의 거래를 정산할 수 있다. 하나 이상의 실시예에서, 결제 관리자(540)는 하나 이상의 어플리케이션 프로그래밍 인터페이스(API)를 사용하여 관련된 정보를 결제 네트워크(112)로 통신할 수 있다.
추가적인 또는 대안적인 실시예에서, 사용자 클라이언트-장치(104) 상의 클라이언트 어플리케이션(502)은 사용자 클라이언트-장치(104)가 결제 요청을 네트워크 어플리케이션(504) 및 결제 시스템(110)으로 평행하게 전송하게 한다. 특히, 클라이언트 어플리케이션(502)이 사용자에 의해 금액을 판매자에게 지불하는 선택을 수신하는 경우, 클라이언트 어플리케이션(502)은 사용자 클라이언트-장치(104)가 결제 요청을 네트워크 어플리케이션(504)으로 및 결제 시스템(110)으로 전송하게 할 수 있다. 따라서, 결제 시스템(110)도 결제 요청과 연관된 결제 거래를 처리하는 동안 네트워크 어플리케이션(504)은 처리 결제 요청을 처리할 수 있다. 대안적인 실시예에서, 사용자 클라이언트-장치(104)는 네트워크 어플리케이션(504)에 연관된 하나 이상의 서버로 메시지를 전송할 수 있고, 이어서 메시지를 결제 시스템(110)으로, 또는 반대로 메시지를 전달할 수 있다.
거래를 완결하기 위해, 결제 관리자(540)는 사용자에 대한 결제 자격을 액세스하거나 획득할 수 있다. 구체적으로, 결제 관리자(540)는 사용자의 결제 계정과 관련하여 사용자에 대한 결제 자격(예, 결제 승인 번호 또는 결제 토큰)을 확인한다. 결제 관리자(540)는 네트워크 어플리케이션(504)과 사용자를 위한 하나 이상의 결제 계정 또는 다른 결제 자격을 등록할 수 있다. 추가적인 실시예에서, 결제 시스템(110)은 결제 시스템(110)과 통합된 판매자 시스템과 직접적으로 결제 거래를 취급할 수도 있다. 따라서, 결제 시스템(110)은 그러한 판매자 시스템과 직접적으로 결제 거래를 관리할 수도 있다.
사용자가 예금 계정 또는 다른 결제 자격을 등록할 때, 사용자 프로필 데이터베이스(536)는 결제 자격 또는 사용자에 대한 결제 자격과 연관된 사용자 정보를 유지할 수 있다. 언급한 바와 같이, 사용자 프로필 데이터베이스(536)는 사용자에 대한 사용자 프로필 정보를 저장한다. 하나 이상의 실시예에서, 사용자 프로필 정보는 신용 카드, 직불 카드, 예금 계정 또는 다른 은행 계정, 기프트 카드 계정, 스토어 신용 계정 등을 위한 결제 자격(즉, 이전에 설명된 바와 같이, 결제 승인 번호를 대표하는 결제 토큰)을 포함한다. 사용자 프로필 데이터베이스(536)는 결제 자격과 연관된 추가적인 정보, 예컨대, 유효기간 날짜, 보안 코드, 주소 정보, 및/또는 다른 정보를 저장할 수 있다. 사용자 프로필 정보는 또한 하나 이상의 판매자 또는 공동-사용자를 위해 결제 거래에 대한 하나 이상의 디폴트 결제 방법을 포함할 수 있다. 사용자 프로필 정보는 또한 예컨대, 이름, 주소, 등과 같은 사용자에 대한 정보를 확인하는 것을 포함하여 결제 관리자(540)가 결제 거래와 관련하여 사용자 클라이언트-장치(104)로 정보를 제공하도록 허용할 수 있다.
하나 이상의 추가적인 실시예에서, 결제 관리자(540)는 위험 계산기(538)와 통신하여 전송자, 수신자, 및/또는 특정 결제 거래와 연관된 위험을 결정할 수 있다. 구체적으로, 위험 계산기(538)는 사기를 치기 위한 결제 거래를 예방하기 위하여 전송자/수신자가 전송자/수신자와 연관된 정보에 기반하여 사기꾼인지 여부를 결정할 수 있다. 예를 들어, 위험 계산기(538)는 네트워크 어플리케이션과 관련하여 전송자/수신자와 연관된 활동 또는 정보에 기반하여 사기를 치기 위한 활동의 가능성을 결정할 수 있다. 결제 거래에 포함된 사용자와 연관된 위험을 결정하는 것은 또한 처리 특정 결제 거래를 처리할지 여부를 결정하는데에 유용할 수 있다.
예를 들어, 하나 이상의 실시예에서, 네트워크 어플리케이션은 특정 사용자와 연관된 위험이 사전결정된 한계치를 만족시키는지 여부를 결정할 수 있다. 특히, 네트워크 어플리케이션은 "실제도" 점수에 기반하여 사용자가 사기꾼인지 여부(예, 실제 사람으로 가장한 스캠 계정 또는 소프트웨어)를 결정할 수 있다. 예를 들어, 전송자와 연관된 위험이 사전결정된 한계치보다 낮다면(즉, 높은 위험 수준), 네트워크 어플리케이션은 사용자가 사기꾼일 가능성이 높다고 결정하고 결제 시스템(110)에 사용자가 사기꾼임을 알려줄 수 있다. 만일 사용자가 높은-위험 수준을 가진다면, 결제 시스템(110)은 결제 거래 사용자 및 판매자 사이에 결제 거래를 중단할 수 있다.
추가적인 실시예에서, 사용자와 연관된 위험을 결정한 후, 네트워크 어플리케이션(504)은 위험과 관련된 하나 이상의 행동을 실시할 수 있다. 구체적으로, 네트워크 어플리케이션(504)은 네트워크 어플리케이션(504)이 사용자의 신원을 검증하는 것을 허용하는 행동을 실시할 수 있다. 예를 들어, 네트워크 어플리케이션(504)은 사용자가 사용자가 주장하는 사람임을 나타내는 사용자와 연관된 정보를 확인할 수 있다. 설명하기 위해, 네트워크 어플리케이션(504)은, 메시지 데이터베이스(534) 또는 사용자 프로필 데이터베이스(536)에서, 사용자의 구매 이력 또는 다른 저장된 정보에 액세스할 수 있고, 이는 사용자의 위험 수준 또는 실제도 점수에 영향을 미칠 수 있다.
추가적인 또는 대안적인 실시예에서, 네트워크 어플리케이션(504)은 사용자의 위험 수준을 결정하는 것에 대응하여 결제 요청 또는 결제 거래에 대하여 하나 이상의 행동을 자동적으로 실시할 수 있다. 구체적으로, 네트워크 어플리케이션(504)은, 사용자로부터 추가적인 정보를 요청하지 않고, 결제 요청 또는 사용자 및 판매자 사이에 상응하는 결제 거래에 영향을 미치는 행동을 실시할 수 있다. 예를 들어, 네트워크 어플리케이션(504)은 결제 거래를 허용하거나(예, 결제 토큰을 사용자 클라이언트-장치(104)로 획득하고 전송함으로써), 또는 결제 거래를 차단하거나(예, 결제 토큰을 사용자 클라이언트-장치(104)로 전송하는 것을 거절함으로써), 또는 네트워크 어플리케이션(504)으로 사용자의 계정을 사용할 수 없게 한다.
어떤 경우든, 사용자로부터 결제 요청을 수신한 때, 결제 관리자(540)는 사용자의 사용자(또는 그룹) ID를 탐지하고, 사용자(또는 엔티티)에 대한 결제 프로필을 검색할 수 있다. 결제 관리자(540)는 사용자의 결제 계정에 연관된 결제 승인 번호를 나타내는 결제 토큰을 획득할 수 있다. 구체적으로, 결제 관리자(540)는 결제 네트워크(112)와 통신하여 결제 승인 번호를 결제 네트워크(112)로 전송하는 것에 대응하여 결제 토큰을 획득할 수 있다. 결제 토큰을 수신한 후, 결제 관리자(540)는 결제 거래의 일부로서 결제 토큰을 사용자 클라이언트-장치(104)로 전송할 수 있다.
결제 관리자(540)는 결제 처리를 효과적으로 관리하기 위하여 다양한 다른 추가적인 스텝 및 방법을 실시할 수 있다. 하나 이상의 실시예에서, 예를 들어, 결제 요청을 수신할 때, 결제 관리자(540)는 거래 신원(또는 간단하게 "거래 ID")을 생성하고, 거래 신원을 결제 요청 및/또는 결제 요청 내에서 결제 정보와 연결시킬 수 있다. 예를 들어, 거래 ID를 생성할 때, 결제 관리자(540)는 거래 데이터베이스(542)로 거래 ID 및 결제 정보를 전송할 수 있다. 거래 데이터베이스(542)는 거래 ID에 따른 거래 정보를 저장하는 데이터 테이블 또는 유사한 데이터 매트릭스를 포함할 수 있다.
도 5의 거래 데이터베이스(542)는 각 거래, 시도되거나 완결된 거래 ID, 날짜, 거래의 금액, 사용된 결제 방법, 및 거래에 수집된 임의의 다른 정보(예컨대, 그래프 객체의 형식에서)에 대한 저장소를 제공할 수 있다. 거래 데이터베이스(542)는 또한 거래 정보, 예컨대, 사용자와 연관된 요청 및 특정 거래에 대한 용어를 저장할 수 있다. 이 정보와 함께, 결제 관리자(540)는 요청 시, 요청된 결제, 거절된 결제 및 완결된 결제 이력으로서 사용자에게 하나 이상의 거래의 요약을 제공할 수 있다.
하나 이상의 실시예에서, 거래 ID가 특정 결제 요청과 연관된 후, 거래 ID는 특정 결제와 관련된 결제 시스템 내에서 실질적으로 모든 통신 내에 포함되거나 삽입될 수 있다. 따라서, 거래 ID는 결제 관리자(540)가 조직화된 방식으로 수많은 결제를 관리하고 처리하도록 허용한다. 예를 들어, 결제 관리자(540)는 클라이언트 장치로 전송된 임의의 정보에서 거래 ID를 포함시키는 명령어를 포함할 수 있다. 보답으로, 메시지 핸들러(512)도 클라리언트 장치로부터 전송된 임의의 정보에서 거래 ID를 포함하여, 클라이언트 결제 관리자(540)가 정보가 대응하는 특정 거래를 효과적으로 및 믿을 수 있게 확인하게 한다.
하나 이상의 실시예에서, 거래 ID는 하나 이상의 사용자 신원, 판매자 신원, 결제 금액, 결제 방법(예, 사용자 계정), 예금 방법(예, 판매자 계정), 거래 이력, 환율 거래 상태뿐만 아니라 다른 거래 정보와 연관될 수 있다. 하나 이상의 실시예에서, 거래 데이터베이스(542)는 거래에 관한 임의의 업데이트 또는 행동으로 업데이트되는 하나 이상의 그래프 객체의 형태에서 거래 정보를 유지할 수 있다.
언급한 바와 같이, 결제 시스템(110)은 또한 토큰 관리자(546)를 포함할 수 있다. 토큰 관리자(546)는 결제 시스템의 사용자와 연관된 결제 토큰을 관리할 수 있다. 예를 들어, 결제 관리자(540)가 사용자의 결제 승인 번호에 대한 결제 네트워크(112)로부터 결제 토큰을 요청하고 획득한 후, 토큰 관리자(546)는 사용자의 사용자 계정과 결제 토큰을 연결할 수 있다. 토큰 관리자(546)는, 예를 들어, 사용자 프로필 데이터베이스(536)에서, 사용자의 사용자 프로필로 결제 토큰을 연결하는 정보를 저장함으로써 사용자의 사용자 프로필과 네트워크 결제 토큰을 연결할 수 있다.
토큰 관리자(546)는, 결제 관리자(540)가 새로운 결제 요청을 수신하는 경우, 결제 관리자(540) 및 사용자 프로필 데이터베이스(536)와 통신할 수 있다. 구체적으로, 토큰 관리자(546)는 사용자의 사용자 프로필을 확인하는 결제 정보에 기반하여 결제 요청을 전송하는 사용자에 대한 네트워크 결제 토큰을 확인한다. 토큰 관리자(546)는 또한, 다양한 실시예에서 역할한 바와 같이, 사용자와 연관된 다른 토큰, 예컨대, 사용자가 결제 거래를 시작하게 하는 임의의 보안/승인 토큰을 확인할 수 있다.
토큰 관리자(546)는 또한 결제 거래와 관련하여 결제 토큰의 암호화를 관리할 수 있다. 특히, 결제 거래에 대해 판매자 시스템으로 전달하기 위해 사용자 클라이언트-장치에 대해 결제 토큰 및 사용자 정보를 사용자 클라이언트-장치로 제공하는 것은 결제 토큰 및 사용자 정보를 암호화하는 것을 포함할 수 있다. 예를 들어, 토큰 관리자(546)는 데이터 패키지에서 결제 토큰 및 사용자 정보를 암호화하여 암호화 열쇠를 사용하여 사용자 클라이언트-장치로 전송할 수 있다. 하나 이상의 실시예에서, 토큰 관리자(546)는 결제 시스템(110) 및 사용자 클라이언트-장치(104)에만 액세스하는 암호화 열쇠를 사용한다. 대안으로, 토큰 관리자(546)는 판매자 시스템(106)이 액세스하는 암호화 열쇠를 사용할 수 있다. 토큰 관리자(546)는, 판매자 시스템(106)이 결제 승인 번호로 액세스를 획득하지 않고, 사용자 클라이언트-장치(104)가 데이터 패키지를 판매자 시스템(106)으로 전달하게 하는 방식으로 PCI 표준에 따라서 데이터 패키지를 암호화할 수 있다.
본 명세서의 실시예는 컴퓨터 하드웨어, 가령 예컨대, 아래에서 더 상세히 기술되는 하나 이상의 프로세서 및 시스템 메모리를 포함하는 특수목적용 또는 범용 컴퓨터를 포함하거나 이용할 수 있다. 본 명세서의 범위 내의 실시예는 또한, 컴퓨터-실행가능한 명령어 및/또는 데이터 구조를 수행 또는 저장하기 위한 물리적 및 다른 컴퓨터-판독가능한 매체를 포함한다. 특히, 본 명세서에 기술된 하나 이상의 프로세서는 비-일시적 컴퓨터-판독가능한 매체에 수록되고 하나 이상의 컴퓨팅 장치(예컨대, 본 명세서에 기술된 임의의 미디어 컨텐츠 액세스 장치)에 의해 실행가능한 명령어로서 적어도 부분적으로 구현될 수 있다. 일반적으로, 프로세서(예컨대, 마이크로프로세서)는 비-일시적 컴퓨터-판독가능한 매체(예컨대, 메모리 등)로부터 명령어를 수신하고, 이러한 명령어를 실행하며, 그럼으로써 본 명세서에 기술된 하나 이상의 프로세스를 포함하는 하나 이상의 프로세스를 수행한다.
컴퓨터 판독가능한 매체는 일반 목적 또는 특수 목적용 컴퓨터 시스템에 의해 접근될 수 있는 임의의 사용가능한 미디어일 수 있다. 컴퓨터-실행가능한 명령어를 저장하는 컴퓨터-판독가능한 매체는 비-일시적 컴퓨터-판독가능한 저장 매체(장치들)이다. 컴퓨터-실행가능한 명령어를 운반하는 컴퓨터-판독가능한 매체는 전송 매체이다. 따라서, 예로서 제한 없이, 본 명세서의 실시예는 적어도 2개의 구별되는 상이한 종류의 컴퓨터-판독가능한 매체: 비-일시적 컴퓨터-판독가능한 저장 매체(장치들) 및 전송 매체를 포함할 수 있다.
비-일시적 컴퓨터-판독가능한 저장 매체(장치들)는 RAM, ROM, EEPROM, CD-ROM, SSDs(solid state drives)(예컨대, RAM 기반), 플래시 메모리, PCM(phase-change memory), 다른 타입의 메모리, 다른 광디스크 저장소, 자기 디스크 저장소나 다른 자기 저장 장치, 또는 컴퓨터-실행가능한 명령어나 데이터 구조의 형태로 소정의 프로그램 코드 수단을 저장하는데 사용될 수 있고, 범용 또는 특수목적용 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함한다.
"네트워크"는 컴퓨터 시스템 및/또는 모듈 및/또는 다른 전자 장치 사이에서 전자 데이터의 운반을 가능하게 하는 하나 이상의 데이터 링크로 정의된다. 정보가 네트워크 또는 다른 통신 연결(유선, 무선, 또는 유선이나 무선의 조합)상에서 컴퓨터로 전달되거나 제공될 때, 컴퓨터는 연결을 전송 매체로서 적절히 간주한다. 전송 매체는 컴퓨터-실행가능한 명령어나 데이터 구조의 형태로 소정의 프로그램 코드 수단을 운반하는데 사용될 수 있고, 범용 또는 특수목적용 컴퓨터에 의해 액세스될 수 있는 네트워크 및/또는 데이터 링크를 포함할 수 있다. 상기의 조합이 또한, 컴퓨터-판독가능한 매체의 범위 내에 포함되어야 한다.
추가로, 다양한 컴퓨터 시스템 컴포넌트들에 도달하면, 컴퓨터-실행가능한 명령어 또는 데이터 구조의 형태인 프로그램 코드 수단은 전송 매체로부터 비-일시적 컴퓨터-판독가능한 저장 매체(장치들)로 (혹은 그 반대로) 자동으로 전달될 수 있다. 예를 들어, 네트워크 또는 데이터 링크를 거쳐 수신된 컴퓨터 실행가능한 명령어 또는 데이터 구조는 네트워크 인터페이스 모듈(예컨대, "NIC") 내의 RAM에 버퍼링될 수 있고 최종적으로 컴퓨터 시스템 RAM 및/또는 컴퓨터 시스템에서 덜 휘발적인 컴퓨터 저장 매체(장치)로 전송될 수 있다. 그러므로, 비-일시적 컴퓨터 판독가능한 저장 매체(장치)는 전송 매체 또한(또는 주로) 이용하는 컴퓨터 시스템 컴포넌트에 포함될 수 있음이 이해될 것이다.
예컨대, 컴퓨터-실행가능한 명령어는 프로세서에 실행될 때, 범용 컴퓨터, 특수 목적용 컴퓨터 또는 특수 목적용 프로세싱 장치로 하여금 특정 기능 또는 기능들의 그룹을 수행하도록 하는 명령어 및 데이터를 포함한다. 하나 이상의 실시예에서, 컴퓨터-실행가능한 명령어는 일반 목적 컴퓨터상에서 실행되어 일반 목적 컴퓨터를 본 명세서의 요소를 구현하는 특수 목적 컴퓨터로 바꿀 수 있다. 컴퓨터 실행가능한 명령어는 예컨대, 이진수, 중간 포맷 명령어 가령 어셈블리 언어, 또는 심지어는 소스 코드일 수 있다. 발명의 대상은 구조적 특징 및/또는 방법의 행위들에 특정적인 언어로 기술되었으나, 첨부되는 청구범위에서 정의되는 발명의 대상은 상기에 기술되는 특징이나 행위로 필수적으로 제한되는 것이 아님이 이해될 것이다. 그보다는, 기술된 특징 및 행위는 청구범위를 구현하는 예시적인 형태로서 기재되는 것이다.
통상의 기술자는 본 명세서가, 개인용 컴퓨터, 데스크탑 컴퓨터, 랩탑 컴퓨터, 메시지 프로세서, 핸드-헬드 장치, 멀티-프로세서 시스템, 마이크로프로세서-기반 또는 프로그램가능한 소비자 전자제품, 네트워크 PCs, 미니컴퓨터, 메인프레임 컴퓨터, 모바일 전화, PDAs, 태블릿, 호출기, 라우터, 스위치 등을 포함하는 다수의 타입의 컴퓨터 시스템 구성을 갖는 네트워크 컴퓨팅 환경에서 실시될 수 있음을 인식할 것이다. 본 명세서는 또한, 네트워크를 통해 (유선 데이터 링크, 무선 데이터 링크 또는 유선 및 무선 데이터 링크의 조합에 의해) 링크된 로컬 및 원격 컴퓨터 시스템이 모두 작업을 수행하는 분산형 시스템 환경에서 실시될 수 있다. 분산형 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 모두에 위치할 수 있다.
본 명세서의 실시예는 또한, 클라우드 컴퓨팅 환경에서 구현될 수 있다. 본 설명에서, "클라우드 컴퓨팅"은 구성가능한 컴퓨팅 자원들의 공유된 풀로의 온-디맨드 네트워크 액세스를 가능하게 하기 위한 모델로 정의된다. 예를 들어, 클라우드 컴퓨팅은 유비쿼터스와 구성가능한 컴퓨팅 장원의 공유된 풀에 편리한 주문형 네트워크 접근을 제안하는 마켓플레이스에 채용될 수 있다. 구성가능한 컴퓨팅 자원의 공유된 풀은 가상화를 통해 빠르게 제공될 수 있고 적은 관리 노력이나 서비스 제공자의 상호작용으로 배포될 수 있고, 이후 그에 따라 스케일링될 수 있다.
클라우드-컴퓨팅 모델은 다양한 특징, 가령 예컨대, 온-디맨드 셀프-서비스, 넓은 네트워크 액세스, 자원 풀링, 빠른 민첩성, 측정된 서비스 등으로 구성될 수 있다. 클라우드-컴퓨팅 모델은 또한, 다양한 서비스 모델, 가령 예컨대, SaaS(Software as a Service), PaaS(Platform as a Service), 및 IaaS(Infrastructure as a Service)를 노출시킬 수 있다. 클라우드-컴퓨팅 모델은 또한, 상이한 배치 모델, 가령 사설 클라우드, 커뮤니티 클라우드, 공용 클라우드, 하이브리드 클라우드 등을 사용하여 배치될 수 있다. 본 설명 및 청구범위에서, "클라우드-컴퓨팅 환경"은 클라우드 컴퓨팅이 이용되는 환경이다.
도 6은 전술한 하나 이상의 프로세스를 수행하도록 구성될 수 있는 예시적인 컴퓨팅 장치(600)의 블록도를 도시한다. 통상의 기술자는 하나 이상의 컴퓨팅 장치, 가령 컴퓨팅 장치(600)가 개인 비서 서비스 시스템(100)을 구현할 수 있음을 인식할 것이다. 도 6에 도시되는 것처럼, 컴퓨팅 장치(600)는, 통신 인프라구조(612)에 의해 통신가능하게 연결될 수 있는 프로세서(602), 메모리(604), 저장 장치(606), I/O 인터페이스(608) 및 통신 인터페이스(610)를 포함할 수 있다. 예시적인 컴퓨팅 장치(600)가 도 6에 도시되나, 도 6에 도시된 컴포넌트는 제한하는 의도가 아니다. 추가 또는 대안적 컴포넌트들이 다른 실시예에서 사용될 수 있다. 나아가, 특정 실시예에서, 컴퓨팅 장치(600)는 도 6에 도시된 것보다 적은 컴포넌트를 포함할 수 있다. 도 6에 도시된 컴퓨팅 장치(600)의 컴포넌트들은 이제 추가로 상세히 기술될 것이다.
하나 이상의 실시예에서, 프로세서(602)는 명령어, 가령 컴퓨터 프로그램을 구성하는 것들을 실행하기 위한 하드웨어를 포함한다. 예로서 제한 없이, 명령어를 실행하기 위해, 프로세서(들)(602)는 내부 레지스터, 내부 캐시, 메모리(604) 또는 저장 장치(606)로부터 명령어를 검색(또는 페치(fetch))할 수 있고, 명령어를 디코딩하고 실행할 수 있다. 하나 이상의 실시예에서, 프로세서(602)는 데이터, 명령어 또는 주소를 위한 하나 이상의 내부 캐시를 포함할 수 있다. 예로서 제한 없이, 프로세서(602)는 하나 이상의 명령어 캐시, 하나 이상의 데이터 캐시, 및 하나 이상의 TLBs(translation lookaside buffers)를 포함할 수 있다. 명령어 캐시에 저장된 명령어들은 메모리(604)나 저장소(606) 내 명령어들의 사본일 수 있다.
메모리(604)는 데이터, 메타데이터, 프로세서(들)에 의한 실행을 위한 프로그램을 저장하기 위해 사용될 수 있다. 메모리(604)는 하나 이상의 휘발성 및 비-휘발성 메모리, 가령 RAM(Random Access Memory), ROM(Read Only Memory), SSD(solid state drive), 플래시, PCM(Phase Change Memory), 또는 다른 타입의 데이터 저장소를 포함할 수 있다. 메모리(604)는 내부 또는 분산형 메모리일 수 있다.
저장 장치(606)는 데이터나 명령어를 저장하기 위한 저장소를 포함한다. 예로서 제한 없이, 저장 장치(606)는 상술한 비-일시적 저장 매체를 포함할 수 있다. 저장 장치(606)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광디스크, 자기-광학 디스크, 자성 테이프, 또는 USB(Universal Serial Bus) 드라이브나 둘 이상의 이들의 조합을 포함할 수 있다. 적절한 경우, 저장 장치(606)는 착탈식 또는 비-착탈식(또는 고정식) 매체를 포함할 수 있다. 저장 장치(606)는 컴퓨팅 장치(600)에 내부 또는 외부에 있을 수 있다. 하나 이상의 실시예로, 저장 장치(606)는 비휘발성, 고체-상태(solid-state) 메모리이다. 다른 실시예로, 저장 장치(606)는 읽기 전용 메모리(ROM)을 포함한다. 적절한 경우, 이 ROM은 마스크 프로그램된(mask programmed) ROM, 프로그램가능한 ROM(PROM), 삭제가능한 PROM(EPROM), 전기적으로 삭제가능한 PROM(EEPROM), 전기적으로 변경가능한 ROM(EAROM)이나 플래시 메모리 또는 둘 이상의 이들의 조합일 수 있다.
I/O 인터페이스(608)는 사용자가 입력을 제공하고, 출력을 수신하고, 다르게 컴퓨팅 장치(600)와 데이터를 주고받을 수 있게 한다. I/O 장치/인터페이스(608)는 마우스, 키패드 또는 키보드, 터치스크린, 카메라, 광학식 스캐너, 네트워크 인터페이스, 모뎀, 기타 알려진 I/O 장치 또는 이러한 I/O 인터페이스의 조합을 포함할 수 있다. I/O 인터페이스(608)는 그래픽 엔진, 디스플레이(예컨대, 디스플레이 스크린), 하나 이상의 출력 드라이버(예컨대, 디스플레이 드라이버), 하나 이상의 오디오 스피커, 및 하나 이상의 오디오 드라이버를 포함하지만 이들로 제한되지 않는 사용자에게 출력을 제시하기 위한 하나 이상의 장치를 포함할 수 있다. 특정 실시예에서, I/O 인터페이스(608)는 사용자에게 표시하기 위하여 디스플레이에 그래픽 데이터를 제공하도록 구성된다. 그래픽 데이터는 특정 구현을 제공할 수 있는 하나 이상의 그래픽 사용자 인터페이스 및/또는 임의의 다른 그래픽 컨텐츠를 표현할 수 있다.
통신 인터페이스(610)는 하드웨어, 소프트웨어 또는 양자를 포함할 수 있다. 어떤 경우에도, 통신 인터페이스(610)는 컴퓨팅 장치(600)와 하나 이상의 다른 컴퓨팅 장치나 네트워크 사이의 통신(가령, 예컨대 패킷-기반 통신)을 위한 하나 이상의 인터페이스를 제공할 수 있다. 예로서 제한 없이, 통신 인터페이스(610)는 이더넷이나 다른 유선-기반 네트워크로 통신하기 위한 네트워크 인터페이스 제어장치(NIC)나 네트워크 어댑터 또는 가령 WI-FI와 같이 무선 네트워크로 통신하기 위한 무선 NIC(WNIC)나 무선 어댑터를 포함할 수 있다.
추가로 또는 대안으로, 통신 인터페이스(610)는 애드 혹 네트워크, PAN(personal area network), LAN(local area network), WAN(wide area network), MAN(metropolitan area network)이나 하나 이상의 인터넷의 부분들 또는 둘 이상의 이들의 조합으로 통신을 용이하게 할 수 있다. 하나 이상의 이런 네트워크의 하나 이상의 부분은 유선 또는 무선일 수 있다. 예컨대, 통신 인터페이스(610)는 무선 PAN(WPAN)(가령 예컨대, BLUETOOTH WPAN), WI-FI 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(가령 예컨대, GSM(Global System for Mobile communications) 네트워크)나 다른 적절한 무선 네트워크 또는 이들의 조합으로 통신을 용이하게 할 수 있다.
추가로, 통신 인터페이스(610)는 다양한 통신 프로토콜을 사용하여 통신을 용이하게 할 수 있다. 사용될 수 있는 통신 프로토콜의 예는, 데이터 전송 매체, 통신 장치, Transmission Control Protocol("TCP"), Internet Protocol("IP"), File Transfer Protocol("FTP"), Telnet, Hypertext Transfer Protocol("HTTP"), Hypertext Transfer Protocol Secure("HTTPS"), Session Initiation Protocol("SIP"), Simple Object Access Protocol("SOAP"), Extensible Mark-up Language("XML")와 그 변형, Simple Mail Transfer Protocol("SMTP"), Real-Time Transport Protocol("RTP"), User datagram Protocol("UDP"), Global System for Mobile communications("GSM") 기술, Code Division Multiple Access("CDMA") 기술, Time Division Multiple Access("TDMA") 기술, Short Message Service("SMS"), Multimedia Message Service("MMS"), radio frequency("RF") 신호 기술, Long Term Evolution("LTE") 기술, 무선 통신 기술, 인-밴드 및 아웃-오브-밴드 신호 기술, 및 다른 적절한 통신 네트워크와 기술을 포함하지만 이들로 제한되지 않는다.
통신 인프라(612)는 컴퓨팅 장치(600)의 컴포넌트를 서로 연결하는 하드웨어, 소프트웨어 또는 이들 모두를 포함할 수 있다. 예로서 제한 없이, 통신 인프라구조(612)는 AGP(Accelerated Graphics Port)나 다른 그래픽 버스, EISA(Enhanced Industry Standard Architecture) 버스, FSB(front-side bus), HT(HYPERTRANSPORT) 상호연결, ISA(Industry Standard Architecture) 버스, INFINIBAND 상호연결, LPC(low-pin-count) 버스, 메모리 버스, MCA(Micro Channel Architecture) 버스, PCI(Peripheral Component Interconnect) 버스, PCIe(PCI-Express) 버스, SATA(serial advanced technology attachment) 버스, VLB(Video Electronics Standards Association local) 버스나 다른 적절한 버스 또는 이들의 조합을 포함할 수 있다.
위에서 언급한 바와 같이, 결제 시스템(110)은 소셜 네트워킹 시스템을 포함할 수 있다. 소셜 네트워킹 시스템은 사용자들(가령 사람이나 단체)이 시스템 및 서로와 상호작용하는 것을 가능하게 할 수 있다. 소셜 네트워킹 시스템은, 사용자로부터의 입력으로, 사용자와 관련된 사용자 프로필을 소셜 네트워킹 시스템에서 생성하고 저장할 수 있다. 사용자 프로필은 인구통계 정보, 통신 채널 정보, 및 사용자의 개인 관심사에 대한 정보를 포함할 수 있다. 소셜 네트워킹 시스템은 또한, 사용자로부터의 입력으로, 소셜 네트워킹 시스템의 다른 사용자들과의 사용자의 관계의 기록을 생성하고 저장할 뿐만 아니라, 사용자들 간의 소셜 상호작용을 용이하게 하기 위한 서비스(예컨대, 담벼락 게시물, 사진-공유, 온라인 달력 및 이벤트 조직화, 메시징, 게임, 또는 광고)를 제공할 수 있다. 또한, 소셜 네트워킹 시스템은 사용자들이 사용자의 프로필 페이지(통상적으로 "담벼락 게시물" 또는 "타임라인 게시물로 알려짐) 또는 사진 앨범에 사진과 다른 멀티미디어 컨텐츠 아이템들을 게시하도록 하고, 이들 양자는 사용자의 구성된 개인정보 설정에 따라 소셜 네트워킹 시스템의 다른 사용자들에게 액세스가능할 수 있다.
도 7은 소셜 네트워킹 시스템의 예시적인 네트워크 환경(700)을 도시한다. 네트워크 환경(700)은 네트워크(704)를 통해 서로 연결되는 클라이언트 시스템(706), 소셜 네트워킹 시스템(702) 및 제3자 시스템(708)을 포함한다. 도 7은 클라이언트 시스템(706), 소셜 네트워킹 시스템(702), 제3자 시스템(708) 및 네트워크(704)의 특정한 구성을 도시하지만, 본 명세서는 클라이언트 시스템(706), 소셜 네트워킹 시스템(702), 제3자 시스템(708) 및 네트워크(704)의 임의의 적절한 구성을 고려한다. 예로서 제한 없이, 클라이언트 시스템(706), 소셜 네트워킹 시스템(702) 및 제3자 시스템(708) 중 둘 이상은 네트워크(704)를 우회하여 서로 직접적으로 연결될 수 있다. 또 다른 예로서, 클라이언트 시스템(706), 소셜 네트워킹 시스템(702) 및 제3자 시스템(708) 중 둘 이상은 전체적으로 또는 부분적으로 서로 물리적으로 또는 논리적으로 같은 장소에 배치될 수 있다. 게다가, 도 7은 특정한 수의 클라이언트 시스템(706), 소셜 네트워킹 시스템(702), 제3자 시스템(708) 및 네트워크(704)를 도시하지만, 본 명세서는 임의의 적절한 수의 클라이언트 시스템(706), 소셜 네트워킹 시스템(702), 제3자 시스템(708) 및 네트워크(704)를 고려한다. 예로서 제한 없이, 네트워크 환경(700)은 다수의 클라이언트 시스템(706), 소셜 네트워킹 시스템(702), 제3자 시스템(708) 및 네트워크(704)를 포함할 수 있다.
본 명세서는 임의의 적절한 네트워크(704)를 고려한다. 예로서 제한 없이, 네트워크(704)의 하나 이상의 부분은 애드 혹 네트워크(ad hoc network), 인트라넷, 엑스트라넷, 가상 사설 네트워크(VPN), 근거리 네트워크(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 대도시 네트워크(MAN), 인터넷의 일부, 공중 전화망(PSTN)의 일부, 셀룰러 전화 네트워크, 또는 2 이상의 이들의 조합을 포함할 수 있다. 네트워크(704)는 하나 이상의 네트워크(704)를 포함할 수 있다.
링크는 통신 네트워크(704)에 클라이언트 시스템(706), 소셜 네트워킹 시스템(702) 및 제3자 시스템(708)을 연결하거나 서로 연결할 수 있다. 본 명세서는 임의의 적절한 링크를 고려한다. 특정 실시예에서, 하나 이상의 링크는 하나 이상의 유선(가령, DSL(Digital Subscriber Line) 또는 DOCSIS(데이터 Over Cable Service Interface Specification)), 무선(가령, Wi-Fi 또는 WiMax(Worldwide Interoperability for Microwave Access)), 광학(가령, SONET(Synchronous Optical Network) 또는 SDH(Synchronous Digital Hierarchy)) 링크를 포함한다. 특정 실시예에서, 하나 이상의 링크 각각은 애드혹 네트워크, 인트라넷, 익스트라넷, VPN, LAN, WLAN, WAN, WWAN, MAN, 인터넷의 부분, PSTN의 부분, 셀룰러 기술-기반 네트워크, 위성 통신 기술-기반 네트워크, 다른 링크 또는 이런 링크의 2 이상의 조합을 포함한다. 링크는 네트워크 환경(700) 전체에 걸쳐 반드시 동일할 필요는 없다. 하나 이상의 제1 링크는 하나 이상의 제2 링크와 하나 이상의 측면에서 상이할 수 있다.
특정 실시예로, 클라이언트 시스템(706)은 하드웨어, 소프트웨어 또는 임베디드 로직 컴포넌트나 이들의 2 이상의 컴포넌트의 조합을 포함하고 클라이언트 시스템(706)에 의해 구현되거나 지원되는 적절한 기능을 수행할 수 있는 전자식 장치일 수 있다. 예로서 제한 없이, 클라이언트 시스템(706)은, 도 6과 관련하여 위에서 논의된 임의의 컴퓨팅 장치들을 포함할 수 있다. 클라이언트 시스템(706)은 클라이언트 시스템(706)에서 네트워크 사용자가 네트워크(704)에 액세스하도록 할 수 있다. 클라이언트 시스템(706)은 그것의 사용자가 다른 클라이언트 시스템들(706)에서 다른 사용자들과 통신하게 할 수 있다.
특정 실시예로, 클라이언트 시스템(706)은 웹 브라우저(932), 가령 MICROSOFT INTERNET EXPLORER, GOOGLE CHROME 또는 MOZILLA FIREFOX를 포함할 수 있고, 하나 이상의 애드-온, 플러그-인 또는 다른 확장자, 가령 TOOLBAR 또는 YAHOO TOOLBAR를 가질 수 있다. 클라이언트 시스템(706)에서의 사용자는 웹 브라우저를 특정 서버(가령, 서버나 제3자 시스템(708)과 연관된 서버)로 지시하는 URL(Uniform Resource Locator)이나 다른 주소를 입력할 수 있고, 웹 브라우저는 HTTP(Hyper Text Transfer Protocol) 요청을 생성하고 HTTP 요청을 서버로 통신할 수 있다. 서버는 HTTP 요청을 수락하고 HTTP 요청에 응답하여 하나 이상의 HTML(Hyper Text Markup Language) 파일을 클라이언트 시스템(706)으로 통신할 수 있다. 클라이언트 시스템(706)은 사용자에게 제시하기 위해 서버로부터의 HTML 파일들에 기반하여 웹페이지를 렌더링할 수 있다. 본 명세서는 임의의 적절한 웹페이지 파일을 고려한다. 예로서 제한 없이, 웹페이지는 특정한 필요에 따라 HTML 파일, 확장형 하이퍼텍스트 마크업 언어(XHTML) 파일 또는 확장형 마크업 언어(XML) 파일로부터 렌더링할 수 있다. 또한, 이런 페이지는, 예로서 제한 없이 JAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT, 가령 AJAX(비동기식 JAVASCRIPT 및 XML)와 같은 마크업 언어와 스크립트의 조합 등과 같은 스크립트를 실행할 수 있다. 본 명세서에서, 웹페이지에 대한 언급은 적절한 경우(브라우저가 웹페이지를 렌더링하는데 사용할 수 있는) 하나 이상의 해당 웹페이지 파일 및 그 반대의 경우를 포괄한다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 온라인 소셜 네트워크를 호스팅할 수 있는 네트워크-주소화 컴퓨팅 시스템일 수 있다. 소셜 네트워킹 시스템(702)은 소셜 네트워킹 데이터, 가령 예컨대, 사용자-프로필 데이터, 컨셉-프로필 데이터, 소셜 그래프 정보, 또는 온라인 소셜 네트워크와 관련된 다른 적절한 데이터를 생성, 저장, 수신, 및 전송할 수 있다. 소셜 네트워킹 시스템(702)은 직접 또는 네트워크(704)를 통해 네트워크 환경(700)의 다른 컴포넌트들에 의해 액세스될 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 하나 이상의 서버를 포함할 수 있다. 각각의 서버는 일체형 서버 또는 다수의 컴퓨터 또는 다수의 데이터 센터에 걸쳐진 분산형 서버일 수 있다. 서버는 다양한 타입, 가령 예로서 제한 없이, 웹 서버, 뉴스 서버, 메일 서버, 메시지 서버, 광고 서버, 파일 서버, 애플리케이션 서버, 교환 서버, 데이터베이스 서버, 프록시 서버, 본 명세서에 기술된 기능 또는 프로세스를 수행하기에 적절한 다른 서버, 또는 이들의 임의의 조합일 수 있다. 특정 실시예로, 각 서버는 하드웨어, 소프트웨어 또는 임베디드 논리 컴포넌트들 또는 서버에 의해 지원되거나 구현되는 적절한 기능을 수행하기 위한 이러한 컴포넌트들 둘 이상의 조합을 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 하나 이상의 데이터 스토어를 포함할 수 있다. 데이터 스토어는 다양한 타입의 정보를 저장하는데 사용될 수 있다. 특정 실시예로, 데이터 스토어에 저장된 정보는 특정 데이터 구조에 따라 조직화될 수 있다. 특정 실시예로, 각각의 데이터 스토어는 관계형, 컬럼형, 상관관계형, 또는 다른 적절한 데이터베이스일 수 있다. 본 명세서는 특정 타입의 데이터베이스를 기술 또는 도시하지만, 본 명세서는 임의의 적절한 타입의 데이터베이스를 고려한다. 특정 실시예는 클라이언트 시스템(706), 소셜 네트워킹 시스템(702), 또는 제3자 시스템(708)이 데이터 스토어에 저장된 정보를 관리, 검색, 수정, 추가 또는 삭제하도록 할 수 있는 인터페이스를 제공할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 하나 이상의 데이터 스토어에 하나 이상의 소셜 그래프를 저장할 수 있다. 특정 실시예로, 소셜 그래프는 다수의 사용자 노드(각각은 특정 사용자에 해당함) 또는 다수의 컨셉 노드(각각은 특정 컨셉에 해당함)를 포함할 수 있는 다수의 노드 및 노드를 연결하는 다수의 에지를 포함할 수 있다. 소셜 네트워킹 시스템(702)은 온라인 소셜 네트워크의 사용자에게 다른 사용자들과 통신하고 상호작용하는 능력을 제공할 수 있다. 특정 실시예로, 사용자는 소셜 네트워킹 시스템(702)을 통해 온라인 소셜 네트워크에 가입할 수 있고, 이후 연결되고자 하는 소셜 네트워킹 시스템(702)의 다수의 다른 사용자들로의 연결(예컨대, 관계)을 추가할 수 있다. 본 명세서에서, 용어 "친구"는 사용자가 소셜 네트워킹 시스템(702)을 통해 연결, 연관, 또는 관계를 형성한 소셜 네트워킹 시스템(702)의 임의의 다른 사용자를 의미할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 소셜 네트워킹 시스템(702)에 의해 지원되는 다양한 타입의 아이템 또는 객체에 대한 행위를 취하는 능력을 사용자에게 제공할 수 있다. 예로서 제한 없이, 아이템 및 객체는 소셜 네트워킹 시스템(702)의 사용자들이 속할 수 있는 그룹 또는 소셜 네트워크, 사용자가 관심 있을 수 있는 이벤트나 캘린더 엔트리, 사용자가 사용할 수 있는 컴퓨터-기반 애플리케이션, 사용자가 서비스를 통해 아이템을 사고 팔 수 있도록 하는 거래, 사용자가 수행할 수 있는 광고와의 상호작용, 또는 다른 적절한 아이템이나 객체를 포함할 수 있다. 사용자는 소셜 네트워킹 시스템(702)으로부터 분리되고 소셜 네트워킹 시스템(702)에 네트워크(704)를 통해 연결된 제3자 시스템(708)의 외부 시스템이나 소셜 네트워킹 시스템(702)에서 표현될 수 있는 어떠한 것과도 상호작용할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 다양한 엔티티들을 링크할 수 있다. 예로서 제한 없이, 소셜 네트워킹 시스템(702)은 사용자들이 서로와 상호작용하도록 할 뿐만 아니라 제3자 시스템(708)이나 다른 엔티티로부터 컨텐츠를 수신하도록 하거나, 사용자들이 애플리케이션 프로그래밍 인터페이스(API)나 다른 통신 채널을 통해 이러한 엔티티들과 상호작용하도록 할 수 있다.
특정 실시예로, 제3자 시스템(708)은 하나 이상의 타입의 서버, 하나 이상의 데이터 스토어, API를 포함하지만 이로 제한되지 않는 하나 이상의 인터페이스, 또는 예컨대, 서버가 통신을 할 수 있는 임의의 다른 적절한 컴포넌트를 포함할 수 있다. 제3자 시스템(708)은 소셜 네트워킹 시스템(702)을 동작하는 엔티티와는 상이한 엔티티에 의해 동작될 수 있다. 하지만, 특정 실시예로, 소셜 네트워킹 시스템(702) 및 제3자 시스템(708)은 소셜 네트워킹 시스템(702) 또는 제3자 시스템(708)의 사용자들에게 소셜 네트워킹 서비스를 제공하기 위해 서로 연계하여 동작할 수 있다. 이러한 관점에서, 소셜 네트워킹 시스템(702)은 다른 시스템, 가령 제3자 시스템(708)이 인터넷상에서 사용자에게 소셜 네트워킹 서비스 및 기능을 제공하는데 사용할 수 있는 플랫폼 또는 백본을 제공할 수 있다.
특정 실시예로, 제3자 시스템(708)은 제3자 컨텐츠 객체 제공자를 포함할 수 있다. 제3자 컨텐츠 객체 제공자는, 클라이언트 시스템(706)으로 통신될 수 있는 하나 이상의 컨텐츠 객체의 소스를 포함할 수 있다. 예로서 제한 없이, 컨텐츠 객체는 가령 영화 쇼타임, 영화 리뷰, 레스토랑 리뷰, 레스토랑 메뉴, 제품 정보와 리뷰 또는 다른 적절한 정보와 같이 사용자가 관심 있는 사물이나 활동에 관한 정보를 포함할 수 있다. 다른 예로서 제한 없이, 컨텐츠 객체는 인센티브 컨텐츠 객체, 가령 쿠폰, 할인 티켓, 상품권, 또는 다른 적절한 인센티브 객체를 포함할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 또한, 소셜 네트워킹 시스템(702)과의 사용자 상호작용을 강화할 수 있는 사용자-생성된 컨텐츠 객체를 포함한다. 사용자-생성된 컨텐츠는 사용자가 소셜 네트워킹 시스템(702)에 추가, 업로드, 전송, 또는 "게시"할 수 있는 어떠한 것도 포함할 수 있다. 예로서 제한 없이, 사용자는 클라이언트 시스템(706)으로부터 소셜 네트워킹 시스템(702)으로 게시물을 통신한다. 게시물은 데이터, 가령 상태 업데이트나 다른 텍스트 데이터, 위치 정보, 사진, 비디오, 링크, 음악이나 다른 유사 데이터 또는 미디어를 포함할 수 있다. 컨텐츠는 또한, "통신 채널", 가령 뉴스피드 또는 스트림을 통해 제3자에 의해 소셜 네트워킹 시스템(702)에 추가될 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 다양한 서버, 서브-시스템, 프로그램, 모듈, 로그, 및 데이터 스토어를 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은: 웹 서버, 행위 로거, API-요청 서버, 관련도 및 순위화 엔진, 컨텐츠-객체 분류기, 알림 컨트롤러, 행위 로그, 제3자 컨텐츠 객체 노출 로그, 추론 모듈, 인증/개인정보 서버, 검색 모듈, 광고-타겟팅 모듈, 사용자-인터페이스 모듈, 사용자-프로필 스토어, 연결 스토어, 제3자 컨텐츠 스토어, 또는 위치 스토어 중 하나 이상을 포함할 수 있다. 소셜 네트워킹 시스템(702)은 또한, 적절한 컴포넌트, 가령 네트워크 인터페이스, 보안 메커니즘, 부하 균형기, 장애복구 서버, 관리-및-네트워크 운영 콘솔, 다른 적절한 컴포넌트, 또는 이들의 임의의 적절한 조합을 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 사용자 프로필을 저장하기 위한 하나 이상의 사용자 프로필 스토어를 포함할 수 있다. 사용자 프로필은 예컨대, 인명 정보, 인구학적 정보, 행동 정보, 소셜 정보, 또는 가령 이력, 학력, 취미 또는 선호도, 관심사, 친밀도, 또는 위치와 같은 다른 타입의 기술적 정보를 포함할 수 있다. 관심사 정보는 하나 이상의 카테고리와 관련된 관심사를 포함할 수 있다. 카테고리는 일반적이거나 구체적일 수 있다. 예로서 제한 없이, 사용자가 신발 브랜드에 관한 기사를 "좋아한다"면, 카테고리는 그 브랜드일 수 있거나 "신발" 또는 "옷"의 일반 카테고리일 수 있다. 연결 스토어는 사용자들에 관한 연결 정보를 저장하기 위해 사용될 수 있다. 연결 정보는 유사하거나 공통된 이력, 그룹 멤버쉽, 취미, 학력을 갖거나 또는 임의의 방식으로 관련되거나 공통의 속성을 공유하는 사용자들을 표시할 수 있다. 연결 정보는 또한, 상이한 사용자들 및 컨텐츠(내부 및 외부 둘 다) 사이의 사용자-정의된 연결을 포함할 수 있다. 웹 서버는 소셜 네트워킹 시스템(702)을 네트워크(704)를 통해 하나 이상의 클라이언트 시스템(706) 또는 하나 이상의 제3자 시스템(708)으로 링크하는데 사용될 수 있다. 웹 서버는 소셜 네트워킹 시스템(702) 및 하나 이상의 클라이언트 시스템(706) 사이에서 메시지를 수신하고 라우팅하기 위한 메일 서버 또는 다른 메시징 기능을 포함할 수 있다. API-요청 서버는 제3자 시스템(708)이 하나 이상의 APIs를 호출함으로써 소셜 네트워킹 시스템(702)으로부터 정보를 액세스하게 할 수 있다. 행위 로거는 소셜 네트워킹 시스템(702)의 내부 또는 외부에서의 사용자의 행위에 관한 통신을 웹 서버로부터 수신하는데 사용될 수 있다. 행위 로그와 함께, 제3자 컨텐츠 객체 로그에서는 제3자 컨텐츠 객체에 대한 사용자 노출이 관리될 수 있다. 알림 컨트롤러는 컨텐츠 객체와 관련된 정보를 클라이언트 시스템(706)으로 제공할 수 있다. 정보는 알림으로서 클라이언트 시스템(706)으로 푸시되거나, 또는 정보는 클라이언트 시스템(706)으로부터 수신된 요청에 응답하여 클라이언트 시스템(706)으로부터 풀링될 수 있다. 인증 서버는 소셜 네트워킹 시스템(702)의 사용자의 하나 이상의 개인정보 설정을 강제하는데 사용될 수 있다. 사용자의 개인정보 설정은 어떻게 사용자와 관련된 특정 정보가 공유될 수 있는지를 결정한다. 인증 서버는, 가령 예컨대, 적절한 개인정보 설정을 설정함으로써, 사용자가 소셜 네트워킹 시스템(702)에 의해 그들의 행위가 로그되는 것 또는 다른 시스템(예컨대, 제3자 시스템(708))과 공유되는 것에 참여하거나 참여하지 않게 할 수 있다. 제3자 컨텐츠 객체 스토어는 제3자, 가령 제3자 시스템(708)으로부터 수신된 컨텐츠 객체를 저장하는데 사용될 수 있다. 위치 스토어는 클라이언트 시스템(706)으로부터 수신되고 사용자와 관련되는 위치 정보를 저장하기 위해 사용될 수 있다. 광고 가격결정 모듈은 소셜 정보, 현재시간, 위치 정보 또는 다른 적절한 정보를 결합하여 알림의 형태로 사용자에게 관련 광고를 제공할 수 있다.
도 8은 예시적인 소셜 그래프(800)를 도시한다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 하나 이상의 데이터 스토어에 하나 이상의 소셜 그래프(800)를 저장할 수 있다. 특정 실시예로, 소셜 그래프(800)는 다수의 사용자 노드(802)나 다수의 컨셉 노드(804)를 포함할 수 있는 다수의 노드 및 노드를 연결하는 다수의 에지(806)를 포함할 수 있다. 도 8에 도시된 예시적인 소셜 그래프(800)는 훈시적 목적상 2차원 시각적 지도 표현으로 도시된다. 특정 실시예로, 소셜 네트워킹 시스템(702), 클라이언트 시스템(706) 또는 제3자 시스템(708)은 소셜 그래프(800) 및 적절한 애플리케이션에 대한 관련 소셜-그래프 정보에 접근할 수 있다. 소셜 그래프(800)의 노드 및 에지는 예컨대, 데이터 스토어(가령, 소셜 그래프 데이터베이스)에 데이터 객체로서 저장될 수 있다. 이런 데이터 스토어는 소셜 그래프(800)의 노드 또는 에지의 하나 이상의 검색가능하거나 질의가능한 인덱스를 포함할 수 있다.
특정 실시예로, 사용자 노드(802)는 소셜 네트워킹 시스템(702)의 사용자에 해당할 수 있다. 예로서 제한 없이, 사용자는 개인(사람인 사용자), 엔티티(예컨대, 기업, 사업체 또는 제3자 애플리케이션) 또는 소셜 네트워킹 시스템(702)과 상호작용하거나 소셜 네트워킹 시스템에서 통신하는 (예컨대, 개인 또는 엔티티의) 그룹일 수 있다. 특정 실시예로, 사용자가 소셜 네트워킹 시스템(702)에서 계정을 등록하면, 소셜 네트워킹 시스템(702)은 사용자에 해당하는 사용자 노드(802)를 생성할 수 있고, 하나 이상의 데이터 스토어에 사용자 노드(802)를 저장할 수 있다. 적절한 경우, 본 명세서에 기술되는 사용자들 및 사용자 노드들(802)은 등록 사용자들 및 등록 사용자들과 관련된 사용자 노드들(802)을 지칭할 수 있다. 추가로 또는 대안으로, 본 명세서에 기술되는 사용자들 및 사용자 노드들(802)은 적절한 경우 소셜 네트워킹 시스템(702)에 등록되지 않은 사용자들을 말할 수 있다. 특정 실시예로, 사용자 노드(802)는 사용자가 제공한 정보 및 소셜 네트워킹 시스템(702)을 포함하는 다양한 시스템이 수집한 정보와 관련될 수 있다. 예로서 제한 없이, 사용자는 그들의 이름, 프로필 사진, 연락처, 생일, 성별, 혼인 여부, 가족 관계, 직장, 학력, 기호, 관심사 또는 다른 신상 정보를 제공할 수 있다. 소셜 그래프의 각각의 사용자 노드는 해당 웹 페이지(통상적으로 프로필 페이지로 알려짐)를 가질 수 있다. 사용자 이름을 포함하는 요청에 응답하여, 소셜 네트워킹 시스템은 사용자 이름에 해당하는 사용자 노드에 액세스할 수 있고, 사용자와 관련된 이름, 프로필 사진, 및 다른 정보를 포함하는 프로필 페이지를 구성할 수 있다. 제1 사용자의 프로필 페이지는 제1 사용자에 의한 하나 이상의 개인정보 설정 및 제1 사용자와 제2 사용자 간의 관계에 기반하여 제1 사용자의 정보의 전부 또는 일부를 제2 사용자에게 디스플레이할 수 있다.
특정 실시예로, 컨셉 노드(804)는 컨셉에 해당할 수 있다. 예로서 제한 없이, 컨셉은 장소(가령, 예컨대, 영화관, 레스토랑, 명소 또는 도시); 웹사이트(가령, 예컨대, 소셜 네트워크 시스템(702)과 관련된 웹사이트 또는 웹-애플리케이션 서버와 관련된 제3자 웹사이트); 엔티티(가령, 예컨대, 사람, 사업체, 그룹, 스포츠 팀 또는 유명인사); 소셜 네트워킹 시스템(702) 또는 가령 웹-애플리케이션 서버와 같은 외부 서버에 위치할 수 있는 자원(가령, 예컨대, 오디오 파일, 비디오 파일, 디지털 사진, 텍스트 파일, 구조화된 문서 또는 애플리케이션); 물적 재산권 또는 지적 재산권(가령, 예컨대, 조각품, 미술품, 영화, 게임, 노래, 아이디어, 사진 또는 저서); 게임; 활동; 아이디어나 이론; 또 다른 적절한 컨셉; 또는 2 이상의 이런 컨셉들에 해당할 수 있다. 컨셉 노드(804)는 사용자에 의해 제공된 컨셉의 정보 또는 소셜 네트워킹 시스템(702)을 포함하는 다양한 시스템에 의해 수집된 정보와 관련될 수 있다. 예로서 제한 없이, 컨셉의 정보는 이름이나 제목; 하나 이상의 이미지(예컨대, 책의 커버 페이지의 이미지); 위치(예컨대, 주소 또는 지리적 위치); (URL과 연관될 수 있는) 웹사이트; 연락 정보(예컨대, 전화번호 또는 이메일 주소); 다른 적절한 컨셉 정보; 또는 이런 정보의 임의의 적절한 조합을 포함할 수 있다. 특정 실시예로, 각각의 컨셉 노드(804)는 컨셉 노드(804)와 관련된 정보에 해당하는 하나 이상의 데이터 객체와 관련될 수 있다. 특정 실시예로, 각각의 컨셉 노드(804)는 웹페이지에 해당할 수 있다.
특정 실시예로, 소셜 그래프(800)에서 노드는 ("프로필 페이지"라고 할 수 있는) 웹페이지를 표현하거나, 그 웹페이지로 표현될 수 있다. 프로필 페이지는 소셜 네트워킹 시스템(702)에 의해 호스트될 수 있거나, 접근될 수 있다. 또한, 프로필 페이지는 제3자 서버(708)와 관련된 제3자 웹사이트에 호스트될 수 있다. 예로서 제한 없이, 특정한 외부 웹페이지에 해당하는 프로필 페이지는 특정한 외부 웹페이지일 수 있고, 이런 프로필 페이지는 특정 컨셉 노드(804)에 해당할 수 있다. 프로필 페이지는 모든 또는 선택된 서브세트의 다른 사용자들에 의해 열람될 수 있다. 예로서 제한 없이, 사용자 노드(802)는 해당 사용자가 컨텐츠를 추가할 수 있고, 선언을 할 수 있으며, 그렇지 않으면 그들 자신을 표현할 수 있는 해당 사용자 프로필-페이지를 가질 수 있다. 또 다른 예로서 제한 없이, 컨셉 노드(804)는 특히 컨셉 노드(804)에 해당하는 컨셉과 관련하여 하나 이상의 사용자들이 컨텐츠를 추가할 수 있거나, 선언을 할 수 있거나, 그들 자신을 표현할 수 있는 해당 컨셉-프로필 페이지를 가질 수 있다.
특정 실시예로, 컨셉 노드(804)는 제3자 시스템(708)에 의해 호스팅된 제3자 웹페이지 또는 자원을 표현할 수 있다. 제3자 웹페이지 또는 자원은 다른 요소들 중에서 행위 또는 활동을 표현하는 (예컨대, JavaScript, AJAX 또는 PHP 코드로 구현될 수 있는) 컨텐츠, 선택가능하거나 다른 아이콘 또는 상호작용가능한 객체를 포함할 수 있다. 예로서 제한 없이, 제3자 웹페이지는 가령 "좋아요", "체크인", "식사하기(eat)", "추천하기" 또는 다른 적절한 행위나 활동과 같은 선택가능한 아이콘을 포함할 수 있다. 제3자 웹페이지를 열람하는 사용자는 아이콘들 중 하나(예컨대, "식사하기")를 선택하여 행위를 수행할 수 있고, 클라이언트 시스템(706)이 사용자의 행위를 표시하는 메시지를 소셜 네트워킹 시스템(702)으로 전송하게 할 수 있다. 그 메시지에 응답하여, 소셜 네트워킹 시스템(702)은 사용자에 해당하는 사용자 노드(802)와 제3자 웹페이지 또는 자원에 해당하는 컨셉 노드(804) 사이의 에지(예컨대, "식사하기" 에지)를 생성할 수 있고, 하나 이상의 데이터 스토어에 에지(806)를 저장할 수 있다.
특정 실시예로, 소셜 그래프(800)에서 노드 쌍은 하나 이상의 에지(806)에 의해 서로 연결될 수 있다. 노드 쌍을 연결하는 에지(806)는 노드 쌍 사이의 관계를 표현할 수 있다. 특정 실시예로, 에지(806)는 노드 쌍 사이의 관계에 해당하는 하나 이상의 데이터 객체나 속성을 포함하거나 표현할 수 있다. 예로서 제한 없이, 제1 사용자는 제2 사용자가 제1 사용자의 "친구"라고 표시할 수 있다. 이런 표시에 응답하여, 소셜 네트워킹 시스템(702)은 "친구 요청"을 제2 사용자에게 전송할 수 있다. 제2 사용자가 "친구 요청"을 확인하면, 소셜 네트워킹 시스템(702)은 소셜 그래프(800)에서 제1 사용자의 사용자 노드(802)와 제2 사용자의 사용자 노드(802)를 연결하는 에지(806)를 생성할 수 있고, 하나 이상의 데이터 스토어에 소셜-그래프 정보로서 에지(806)를 저장할 수 있다. 도 8의 예에서, 소셜 그래프(800)는 사용자 "A"와 사용자 "B"의 사용자 노드(802)들 사이의 친구 관계를 표시하는 에지(806)를 그리고 사용자 "C"와 사용자 "B"의 사용자 노드(802) 사이의 친구 관계를 표시하는 에지를 포함한다. 본 명세서가 특정 사용자 노드(802)를 연결하는 특정 속성을 가진 특정 에지(806)를 기술하거나 도시하지만, 본 명세서는 사용자 노드(802)를 연결하는 임의의 적절한 속성을 가진 임의의 적절한 에지(806)를 고려한다. 예로서 제한 없이, 에지(806)는 친구관계, 가족관계, 사업이나 고용 관계, 팬 관계, 팔로워 관계, 방문자 관계, 구독자 관계, 상위/하위 관계, 호혜 관계, 비-상호 관계, 또 다른 적절한 타입의 관계 또는 2 이상의 이런 관계들을 표현할 수 있다. 게다가, 본 명세서는 일반적으로 노드들이 연결되는 것을 기술하지만, 본 명세서는 또한 사용자 또는 컨셉이 연결되는 것을 기술한다. 본 명세서에서, 사용자 또는 컨셉이 연결되는 것에 대한 언급은 적절한 경우 이들 사용자 또는 컨셉에 해당하는 노드가 하나 이상의 에지(806)에 의해 소셜 그래프(800)에서 연결되는 것을 지칭할 수 있다.
특정 실시예로, 사용자 노드(802)와 컨셉 노드(804) 사이의 에지(806)는 컨셉 노드(804)와 관련된 컨셉에 대해 사용자 노드(802)의 사용자가 수행한 특정 행위 또는 활동을 표현할 수 있다. 예로서 제한 없이, 도 8에 도시된 바와 같이, 사용자는 컨셉을 "좋아요(like)", "참여했음(attended)", "실행했음(played)", "청취했음(listened)", "요리했음(cooked)", "근무했음(worked at)", 또는 "시청했음(watched)"을 할 수 있고, 이들 각각은 에지 타입이나 서브타입에 해당할 수 있다. 컨셉 노드(804)에 해당하는 컨셉-프로필 페이지는 예컨대 선택가능한 "체크인" 아이콘(가령, 예컨대, 클릭가능한 "체크인" 아이콘) 또는 선택가능한 "즐겨찾기에 추가(add to favorites)" 아이콘을 포함할 수 있다. 마찬가지로, 사용자가 이런 아이콘을 클릭한 후, 소셜 네트워킹 시스템(702)은 각각의 행위에 해당하는 사용자의 행위에 응답하여 "즐겨찾기" 에지 또는 "체크인" 에지를 생성할 수 있다. 또 다른 예로서 제한 없이, 사용자(사용자 "C")는 특정 애플리케이션(온라인 음악 애플리케이션인 SPOTIFY)을 사용하여 특정 노래("Ramble On")를 들을 수 있다. 이 경우, 소셜 네트워킹 시스템(702)은 사용자에 해당하는 사용자 노드(802)와 노래 및 애플리케이션에 해당하는 컨셉 노드(804) 사이에 "청취했음(listened)" 에지(806) 및 "사용했음(used)" 에지(도 8에 도시)를 생성하여, 사용자가 그 노래를 들었고 그 애플리케이션을 사용했음을 표시할 수 있다. 게다가, 소셜 네트워킹 시스템(702)은 노래와 애플리케이션에 해당하는 컨셉 노드(804) 사이에서 "실행했음(played)" 에지(806)(도 8에 도시)를 생성하여 특정 노래가 특정 애플리케이션에 의해 실행되었음을 표시할 수 있다. 이 경우, "실행했음(played)" 에지(806)는 외부 오디오 파일(노래 "Imagine")에 대해 외부 애플리케이션(SPOTIFY)이 수행한 행위에 해당한다. 본 명세서는 사용자 노드(802)와 컨셉 노드(804)를 연결하는 특정 속성을 가진 에지(806)를 기술하지만, 본 명세서는 사용자 노드(802)와 컨셉 노드(804)를 연결하는 임의의 적절한 속성을 가진 임의의 적절한 에지(806)를 고려한다. 게다가, 본 명세서는 단일의 관계를 표현하는 사용자 노드(802)와 컨셉 노드(804) 사이의 에지를 기술하지만, 본 명세서는 하나 이상의 관계를 표현하는 사용자 노드(802)와 컨셉 노드(804) 사이의 에지를 고려한다. 예로서 제한 없이, 에지(806)는 사용자가 특정 컨셉에서 좋아요 하고 사용했음을 모두 표현할 수 있다. 대안으로, 또 다른 에지(806)는 사용자 노드(802)와 컨셉 노드(804) 사이(도 8에 도시된 바와 같이, 사용자 "E"에 대한 사용자 노드(802)와 "SPOTIFY"에 대한 컨셉 노드(804) 사이)의 각 타입의 관계(또는 다수의 단일 관계)를 표현할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 소셜 그래프(800)에서 사용자 노드(802)와 컨셉 노드(804) 사이의 에지(806)를 생성할 수 있다. 예로서 제한 없이 (가령, 예컨대, 사용자의 클라이언트 시스템(706)에 의해 호스팅되는 웹 브라우저 또는 특수목적 애플리케이션을 사용하여) 사용자가 컨셉-프로필 페이지를 열람하는 것은 사용자가 "좋아요" 아이콘을 클릭하거나 선택하여 컨셉 노드(804)가 표현한 컨셉을 좋아함을 나타낼 수 있는데, "좋아요" 아이콘은 사용자의 클라이언트 시스템(706)이 컨셉-프로필 페이지와 관련된 컨셉을 사용자가 좋아요 했다고 표시한 메시지를 소셜 네트워킹 시스템(702)으로 전송하게 할 수 있다. 그 메시지에 응답하여, 소셜 네트워킹 시스템(702)은 사용자와 컨셉 노드(804) 사이의 "좋아요" 에지(806)로 도시된 바와 같이 사용자와 관련된 사용자 노드(802)와 컨셉 노드(804) 사이의 에지(806)를 생성할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 하나 이상의 데이터 스토어에 에지(806)를 저장할 수 있다. 특정 실시예로, 에지(806)는 특정 사용자 행위에 응답하여 소셜 네트워킹 시스템(702)에 의해 자동 형성될 수 있다. 예로서 제한 없이, 제1 사용자가 사진을 업로드하거나, 영화를 시청하거나, 노래를 듣는다면, 에지(806)는 제1 사용자에 해당하는 사용자 노드(802)와 이런 컨셉에 해당하는 컨셉 노드(804) 사이에 형성될 수 있다. 본 명세서는 특정 방식으로 특정 에지(806)를 형성하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 임의의 적절한 에지(806)를 형성하는 것을 고려한다.
특정 실시예로, 광고는 텍스트(HTML-링크될 수 있음), 하나 이상의 이미지(HTML-링크될 수 있음), 하나 이상의 비디오, 오디오, 하나 이상의 ADOBE FLASH 파일, 이들의 적절한 조합, 또는 사용자에 의해 요청되는 검색 결과와 연계하여 또는 하나 이상의 이메일 내에서 하나 이상의 웹페이지 상에 제시되는 임의의 적절한 디지털 포맷인 임의의 다른 적절한 광고일 수 있다. 추가로 또는 대안으로, 광고는 하나 이상의 스폰서된 소식(예컨대, 소셜 네트워킹 시스템(702)상의 뉴스-피드나 티커 아이템)일 수 있다. 스폰서된 소식은, 광고주가 예컨대, 소셜 행위를 사용자의 프로필 페이지나 다른 페이지의 기-결정된 영역 내에 제시되게 하거나, 광고주와 관련된 추가 정보와 함께 제시되거나, 다른 사용자들의 뉴스 피드나 티커 내에 범프-업되거나 아니면 하이라이트됨으로써 프로모션하거나, 아니면 다른 방식으로 프로모션되는 사용자에 의한 소셜 행위(가령, 페이지를 "좋아요"하는 것, 페이지 상의 게시물에 코멘트하거나 "좋아요"하는 것, 페이지와 관련된 이벤트에 RSVP하는 것, 페이지에 게시된 질문에 투표하는 것, 장소로 체크인하는 것, 애플리케이션을 사용하거나 게임을 플레이하는 것, 웹사이트를 "좋아요"하거나 공유하는 것)일 수 있다. 광고주는 소셜 행위가 프로모션되도록 금전을 지불할 수 있다. 예로서 제한 없이, 광고는 검색-결과 페이지의 검색 결과들 사이에 포함될 수 있고, 여기서 스폰서된 컨텐츠는 스폰서되지 않은 컨텐츠에 비해서 프로모션된다.
특정 실시예로, 광고는 소셜 네트워킹 시스템 웹페이지, 제3자 웹페이지, 또는 다른 페이지 내에 디스플레이하기 위해 요청될 수 있다. 광고는 페이지의 전용 부분, 가령 페이지의 상단의 배너 영역, 페이지의 측면의 칼럼, 페이지의 GUI, 팝-업 윈도우, 드롭-다운 메뉴, 페이지의 입력 필드, 페이지의 컨텐츠의 상단 위에, 또는 페이지와 관련된 다른 곳에서 디스플레이될 수 있다. 추가로 또는 대안으로, 광고는 애플리케이션 내에 디스플레이될 수 있다. 광고는 사용자가 페이지에 접근하거나, 애플리케이션을 이용할 수 있기 전에 광고를 상호작용하거나 광고를 시청하도록 사용자에게 요구하는 전용 페이지 내에 디스플레이될 수 있다. 사용자는 예컨대, 광고를 웹 브라우저를 통해 볼 수 있다.
사용자는 임의의 적절한 방식으로 광고와 상호작용할 수 있다. 사용자는 광고를 클릭하거나 아니면 선택할 수 있다. 광고를 선택함으로써, 사용자는 광고와 관련된 페이지로 (또는, 사용자가 사용하는 브라우저 또는 다른 애플리케이션)를 인도될 수 있다. 광고와 관련된 페이지에서, 사용자는 가령 광고와 관련된 제품이나 서비스를 구매하기, 광고와 관련된 정보를 수신하기 또는 광고와 관련된 뉴스레터를 구독하기와 같은 추가의 행위들을 행할 수 있다. 오디오 또는 비디오를 가진 광고는 광고의 컴포넌트를 선택("실행 버튼"을 좋아요)함으로써 실행될 수 있다. 대안으로, 광고를 선택함으로써, 소셜 네트워킹 시스템(702)은 사용자의 특정 행위를 실행하거나 수정할 수 있다.
광고는 또한, 사용자가 상호작용할 수 있는 소셜 네트워킹 시스템 기능을 포함할 수 있다. 예로서 제한 없이, 광고는 사용자가 보증과 관련된 아이콘이나 링크를 선택함으로써 광고를 "좋아요"하거나 아니면 보증하게 할 수 있다. 다른 예로서 제한 없이, 광고는 사용자가 (예컨대, 질의를 실행함으로써) 광고주와 관련된 컨텐츠에 대해 검색하도록 할 수 있다. 유사하게, 사용자는 (예컨대, 소셜 네트워킹 시스템(702)을 통해) 광고를 다른 사용자와 공유하거나, 또는 광고와 관련된 이벤트에 (예컨대, 소셜 네트워킹 시스템(702)을 통해) RSVP할 수 있다. 추가로 또는 대안으로, 광고는 사용자에 관한 소셜 네트워킹 시스템 컨텍스트를 포함할 수 있다. 예로서 제한 없이, 광고는 광고의 주제와 관련된 행위를 수행한 소셜 네트워킹 시스템(702) 내의 사용자의 친구에 관한 정보를 디스플레이할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 서로에 대해 다양한 소셜 그래프 엔티티의 소셜 그래프 친밀성(본 명세서에서는 "친밀성"이라고 할 수 있음)을 결정할 수 있다. 친밀성은 사용자, 컨셉, 컨텐츠, 행위, 광고, 온라인 소셜 네트워크와 연관된 다른 객체 또는 이들의 임의의 적절한 조합과 같이 온라인 소셜 네트워크와 연관된 특정 객체 사이의 관계의 강도 또는 관심의 정도를 표현할 수 있다. 또한, 친밀성은 제3자 시스템(708)이나 다른 적절한 시스템들과 관련된 객체에 대하여 결정될 수 있다. 각각의 사용자, 주제, 또는 컨텐츠의 타입에 대한 소셜 그래프 엔티티의 전체 친밀성이 확립될 수 있다. 전체 친밀성은 소셜 그래프 엔티티와 연관된 행위 또는 관계에 대한 지속적인 모니터링에 기초하여 변경될 수 있다. 본 명세서는 특정 방식으로 특정 친밀성을 결정하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 임의의 적절한 친밀성을 결정하는 것을 기술한다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 친밀성 계수(본 명세서에서는 "계수"라고 할 수 있음)를 사용하여 소셜 그래프 친밀성을 측정하거나 수량화할 수 있다. 계수는 온라인 소셜 네트워크와 연관된 특정 객체 사이의 관계의 강도를 표현하거나 수량화할 수 있다. 계수는 또한, 행위에 대한 사용자의 관심에 기초하여 사용자가 특정 행위를 수행할 예측된 확률을 측정하는 확률 또는 함수를 표현할 수 있다. 이러한 방식으로, 사용자의 미래의 행위는 사용자의 과거의 행위에 기초하여 예측될 수 있고, 여기서 계수는 사용자의 행위의 이력에 적어도 부분적으로 기초하여 계산될 수 있다. 계수는 온라인 소셜 네트워크 내부 또는 외부일 수 있는 임의의 개수의 행위를 예측하는데 사용될 수 있다. 예로서 제한 없이, 이러한 행위는 메시지 전송, 컨텐츠 게시 또는 컨텐츠에 대해 코멘트하기와 같은 다양한 타입의 통신; 프로필 페이지, 미디어 또는 다른 적절한 컨텐츠에 액세스하거나 열람하는 것과 같은 다양한 타입의 관찰 행위; 동일한 그룹에 있거나, 동일한 사진에 태그되거나, 동일한 위치에 체크인되거나, 동일한 이벤트에 참석하는 것과 같은 둘 이상의 소셜 그래프 엔티티들에 관한 다양한 타입의 일치 정보(coincidence information); 또는 다른 적절한 행위를 포함할 수 있다. 본 명세서는 특정 방식으로 친밀성을 측정하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 친밀성을 측정하는 것을 고려한다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 다양한 인자를 사용하여 계수를 계산할 수 있다. 이러한 인자는 예컨대, 사용자 행위, 객체, 위치 정보, 다른 적절한 인자, 또는 이들의 임의의 조합을 포함할 수 있다. 특정 실시예로, 상이한 인자는 계수를 계산할 때 다른 가중치가 적용될 수 있다. 각각의 인자에 대한 가중치는 일정하거나, 또는 가중치는 예컨대, 사용자, 관계의 타입, 행위의 타입, 사용자의 위치 등에 따라 변경될 수 있다. 인자에 대한 등급(rating)은 사용자를 위한 전체 계수를 결정하기 위해 그들의 가중치에 따라 조합될 수 있다. 예로서 제한 없이, 특정 사용자 행위에는 등급 및 가중치 모두가 할당되는 한편, 특정 사용자 행위와 연관된 관계에는 등급 및 상관 가중치(예컨대, 가중치가 총 100%가 됨)가 할당된다. 특정 객체에 대한 사용자의 계수를 계산하기 위해, 사용자의 행위에 할당된 평점은 예컨대 총 계수의 60%를 포함할 수 있는 한편, 사용자와 객체 사이의 관계는 총 계수의 40%를 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은, 예컨대 정보에 접근한 이후의 시간, 감쇠 인자(decay factors), 접근 빈도, 정보에 대한 관계 또는 정보에 접근한 객체에 대한 관계, 객체와 연결된 소셜 그래프 엔티티에 대한 관계, 사용자 행위의 단기적 또는 장기적 평균, 사용자 피드백, 다른 적절한 변수들 또는 이들의 임의의 조합과 같이, 계수를 계산하는데 사용되는 다양한 인자들에 대한 가중치를 결정할 때 다양한 변수를 고려할 수 있다. 예로서 제한 없이, 더 최근의 행위가 계수를 계산할 때 더 관련되도록, 계수는 특정 행위가 제공한 신호의 세기가 시간에 따라 감쇠하게 하는 감쇠 인자를 포함할 수 있다. 등급 및 가중치는 계수가 기초로 하는 행위에 대한 지속적인 추적에 기초하여 연속으로 업데이트될 수 있다. 임의의 타입의 프로세스 또는 알고리즘은 각 인자에 대한 평점 및 인자에 할당된 가중치를 할당, 결합, 평균화 등을 하는데 이용될 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 이력 행위 및 과거 사용자 응답 또는 다양한 옵션에 사용자를 노출시키고 응답을 측정하여 사용자로부터 파밍된(farmed) 데이터에 대하여 훈련되는 기계-학습 알고리즘을 사용하여 계수를 결정할 수 있다. 본 명세서는 특정 방식으로 계수를 계산하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 계수를 계산하는 것을 고려한다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 사용자의 행위에 기초하여 계수를 계산할 수 있다. 소셜 네트워킹 시스템(702)은 온라인 소셜 네트워크에서, 제3자 시스템(708)에서, 다른 적절한 시스템들에서 또는 이들의 임의의 조합에서 이런 행위들을 모니터할 수 있다. 임의의 타입의 사용자 행위가 추적되거나 모니터링될 수 있다. 전형적인 사용자 행위는 프로필 페이지 보기, 컨텐츠 생성 또는 게시, 컨텐츠와 상호작용, 그룹에 가입, 이벤트의 참석을 리스팅하고 확인하기, 위치에 체크인하기, 특정 페이지를 좋아하기, 페이지를 생성하기, 및 소셜 행위를 용이하게 하는 다른 작업을 수행하기를 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 특정 타입의 컨텐츠를 가진 사용자의 행위에 기초하여 계수를 계산할 수 있다. 컨텐츠는 온라인 소셜 네트워크, 제3자 시스템(708), 또는 다른 적절한 시스템과 연관될 수 있다. 컨텐츠는 사용자, 프로필 페이지, 게시물, 뉴스 소식, 헤드라인, 인스턴트 메시지, 채팅방 대화, 이메일, 광고, 사진, 비디오, 음악, 다른 적절한 객체, 또는 이들의 임의의 조합을 포함할 수 있다. 소셜 네트워킹 시스템(702)은 하나 이상의 행위들이 주제, 컨텐츠, 다른 사용자들 등에 대한 친밀성을 표시하는지를 결정하도록 사용자의 행위를 분석할 수 있다. 예로서 제한 없이, 사용자가 "커피" 또는 그 유사물에 관한 컨텐츠를 빈번히 게시할 수 있다면, 소셜 네트워킹 시스템(702)은 컨셉 "커피"에 대하여 사용자가 높은 계수를 가진다고 결정할 수 있다. 특정 행위 또는 행위 타입은 다른 행위들보다 더 높은 가중치 및/또는 평점을 할당받을 수 있으며, 이는 계산되는 총 계수에 영향을 줄 수 있다. 예로서 제한 없이, 제1 사용자가 제2 사용자에게 이메일 하는 경우, 그 행위에 대한 가중치 또는 평점은 제1 사용자가 제2 사용자에 대한 사용자 프로필 페이지를 단순히 열람한 경우보다 더 높을 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 특정 객체들 사이의 관계의 타입에 기초하여 계수를 계산할 수 있다. 소셜 그래프(800)를 참조하면, 소셜 네트워킹 시스템(702)은 계수를 계산할 때 특정 사용자 노드(802)와 컨셉 노드(804)를 연결하는 에지(806)의 수 및/또는 타입을 분석할 수 있다. 예로서 제한 없이, (2명의 사용자가 결혼했음을 표현하는) 배우자-타입 에지(spouse-type edge)로 연결되는 사용자 노드(802)는 친구-타입 에지로 연결되는 사용자 노드(802)보다 더 높은 계수를 할당받을 수 있다. 즉, 특정 사용자에 대한 행위 및 관계에 할당된 가중치에 따라, 총 친밀성은 사용자의 친구에 대한 컨텐츠보다 사용자의 배우자에 대한 컨텐츠에 대하여 더 높도록 결정될 수 있다. 특정 실시예로, 사용자가 또 다른 객체와 맺은 관계는 그 객체에 대한 계수를 계산할 때 사용자의 행위의 가중치 및/또는 평점에 영향을 줄 수 있다. 예로서 제한 없이, 사용자가 제1 사진에 태그되지만 단지 제2 사진만을 좋아한다면, 컨텐츠와 태그-타입(tagged-in-type) 관계를 가지는 것이 컨텐츠와 좋아요-타입 관계를 가지는 것보다 더 높은 가중치 및/또는 평점을 할당받을 수 있기 때문에, 소셜 네트워킹 시스템(702)은 사용자가 제2 사진보다 제1 사진에 대하여 더 높은 계수를 가진다고 결정할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 한 명 이상의 제2 사용자가 특정 객체와 맺은 관계에 기초하여 제1 사용자에 대한 계수를 계산할 수 있다. 즉, 다른 사용자가 객체에 대해 갖는 연결 및 계수는 제1 사용자의 객체에 대한 계수에 영향을 줄 수 있다. 예로서 제한 없이, 제1 사용자가 하나 이상의 제2 사용자들에 연결되거나 그들에 대한 높은 계수를 갖고, 이들 제2 사용자가 특정 객체와 연결되거나 특정 객체에 대해 높은 계수를 갖는다면, 소셜 네트워킹 시스템(702)은 제1 사용자가 또한, 특정 객체에 대해 상대적으로 높은 계수를 가져야 한다고 결정할 수 있다. 특정 실시예로, 계수는 특정 객체 사이의 이격도에 기초할 수 있다. 임의의 2개의 노드들 사이의 이격도는 하나의 노드로부터 다른 노드로 소셜 그래프를 횡단하는데 요구되는 최소 개수의 홉(hop)으로 정의된다. 2개의 노드들 사이의 이격도는 소셜 그래프에서 2개의 노드에 의해 표현되는 사용자 또는 컨셉 사이의 관련도로 간주될 수 있다. 예컨대, 에지에 의해 직접 연결되는 사용자 노드들(즉, 1차 노드들)을 갖는 2명의 사용자는 "연결된 사용자들" 또는 "친구들"로 기술될 수 있다. 유사하게, 오로지 다른 사용자 노드를 통해서만 연결되는 사용자 노드들(즉, 2차 노드들)을 갖는 2명의 사용자는 "친구의 친구들"로 기술될 수 있다. 더 낮은 계수는 제1 사용자가 소셜 그래프(800)에서 제1 사용자와 간접적으로 연결되는 사용자의 컨텐츠 객체에 대한 관심을 공유할 가능성이 감소함을 표현할 수 있다. 예로서 제한 없이, 소셜 그래프(800)에서 더 가까운(즉, 더 적은 이격도의) 소셜 그래프 엔티티들은 소셜 그래프(800)에서 더 멀리 떨어져 있는 엔티티들보다 더 높은 계수를 가질 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 위치 정보에 기초하여 계수를 계산할 수 있다. 서로 지리적으로 더 가까운 객체들은 더 먼 객체들보다 서로 더 관련이 있거나 더 관심이 있다고 간주될 수 있다. 특정 실시예로, 특정 객체에 대한 사용자의 계수는 사용자와 관련된 현재 위치(또는 사용자의 클라이언트 시스템(706)의 위치)에 대한 객체의 위치의 근접성을 기초로 할 수 있다. 제1 사용자는 제1 사용자와 더 가까운 다른 사용자들이나 컨셉들에 더 관심이 있을 수 있다. 예로서 제한 없이, 사용자가 공항으로부터는 1마일 그리고 주유소로부터는 2마일 떨어져 있다면, 소셜 네트워킹 시스템(702)은 사용자와 공항의 근접성에 기초하여 사용자가 주유소보다 공항에 대해 더 높은 계수를 가진다고 결정할 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 계수 정보에 기초하여 사용자에 대해 특정 행위를 수행할 수 있다. 계수는 사용자의 행위에 대한 관심에 기초하여 사용자가 특정 행위를 수행할 것인지 여부를 예측하는데 사용될 수 있다. 계수는, 사용자에 대해 임의의 타입의 객체 가령, 광고, 검색 결과, 뉴스 소식, 미디어, 메시지, 알림, 또는 다른 적절한 객체들을 생성 또는 제시할 때 사용될 수 있다. 계수는 또한, 적절한 경우 이러한 객체들을 순위화하고 정렬하는데 이용될 수 있다. 이 방식으로, 소셜 네트워킹 시스템(702)은 사용자의 관심 및 현재 상황과 관련이 있는 정보를 제공할 수 있고, 사용자들이 관심을 가질 이런 정보를 찾을 가능성을 증가시킨다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 계수 정보에 기반하여 컨텐츠를 생성할 수 있다. 컨텐츠 객체는 사용자 고유의 계수에 기초하여 제공되거나 선택될 수 있다. 예로서 제한 없이, 계수는 사용자를 위한 미디어를 생성하는데 사용될 수 있으며, 여기서 사용자에게는, 사용자가 미디어 객체에 관해 높은 전체 계수를 갖는 미디어가 제시될 수 있다. 또 다른 예로서 제한 없이, 계수는 사용자에 대한 광고를 생성하는데 사용될 수 있는데, 이때 사용자는 사용자가 광고된 객체에 대해 높은 총 계수를 가지는 광고를 제시받을 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 계수 정보에 기초하여 검색 결과를 생성할 수 있다. 특정 사용자에 대한 검색 결과는 질의중인 사용자에 대하여 검색 결과와 관련된 계수에 기초하여 점수화되거나 순위화될 수 있다. 예로서 제한 없이, 더 높은 계수를 갖는 객체에 대응하는 검색 결과는 더 낮은 계수를 갖는 객체에 대응하는 결과보다 검색-결과 페이지에서 더 높게 순위화될 수 있다.
특정 실시예로, 소셜 네트워킹 시스템(702)은 특정 시스템이나 프로세스로부터의 계수에 대한 요청에 응답하여 계수를 계산할 수 있다. 사용자가 소정의 상황에서 행할 수 있는(주제일 수 있는) 가능한 행위를 예측하기 위해, 임의의 프로세스는 사용자에 대해 계산된 계수를 요청할 수 있다. 요청은 또한, 계수를 계산하는데 사용되는 다양한 인자를 위해 사용할 가중치의 세트를 포함할 수 있다. 이 요청은 온라인 소셜 네트워크에서 실행하는 프로세스로부터, (예컨대, API 또는 다른 통신 채널을 통해) 제3자 시스템(708)으로부터 또는 다른 적절한 시스템으로부터 비롯될 수 있다. 그 요청에 응답하여, 소셜 네트워킹 시스템(702)은 계수를 계산(또는 이미 계산되고 저장되었다면 계수 정보에 접근)할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(702)은 특정 프로세스에 대한 친밀성을 측정할 수 있다. (온라인 소셜 네트워크 내부와 외부 모두의) 다른 프로세스들은 특정 객체 또는 객체들의 세트에 대한 계수를 요청할 수 있다. 소셜 네트워킹 시스템(702)은 친밀성의 측정을 요청한 특정 프로세스에 관련되는 친밀성의 측정을 제공할 수 있다. 이 방식으로, 각 프로세스는 프로세스가 친밀도를 사용하는 다른 컨텍스트에 대하여 맞춤화되는 친밀도를 수신한다.
소셜 그래프 친밀성 및 친밀성 계수와 관련하여, 특정 실시예들은 참조로 각각 통합되는: 2006년 8월 11일자로 출원된 미국특허출원 제11/503093호, 2010년 12월 22일자로 출원된 미국특허출원 제12/977027호, 2010년 12월 23일자로 출원된 미국특허출원 제12/978265호 및 2012년 10월 1일자로 출원된 미국특허출원 제13/642869호에 개시되는 하나 이상의 시스템, 컴포넌트, 컴포넌트, 기능, 방법, 동작 또는 단계를 이용할 수 있다.
특정 실시예로, 온라인 소셜 네트워크의 하나 이상의 컨텐츠 객체는 개인정보 설정과 관련될 수 있다. 객체에 대한 개인정보 설정 (또는 "액세스 설정)은, 가령 예컨대 객체와 관련하여, 인증 서버에서 인덱스에, 임의의 적절한 방식으로, 또는 이들의 임의의 조합과 같은 임의의 적절한 방식으로 저장될 수 있다. 객체의 프라이버시 설정은 객체(또는 객체와 관련된 특정 정보)가 온라인 소셜 네트워크를 사용하여 어떻게 접근(예컨대, 열람 또는 공유)될 수 있는지를 명시할 수 있다. 객체에 대한 프라이버시 설정이 특정 사용자가 그 객체에 접근할 수 있게 하는 경우, 객체는 그 사용자에 대하여 "보이는 것(visible)"으로 기술될 수 있다. 예로서 제한 없이, 온라인 소셜 네트워크의 사용자는 사용자 프로필 페이지에서 경력 정보에 접근할 수 있는 사용자 세트를 확인하는 사용자 프로필 페이지에 대한 프라이버시 설정을 특정할 수 있고, 따라서 다른 사용자들이 정보에 접근하는 것을 배제할 수 있다. 특정 실시예로, 프라이버시 설정은 객체와 관련된 임의의 정보를 접근하도록 허용되지 않아야 하는 사용자의 "차단 리스트(blocked list)"를 명시할 수 있다. 즉, 차단 리스트는 객체가 가시적이지 않은 한 명 이상의 사용자들 또는 엔티티들을 특정할 수 있다. 예로서 제한 없이, 사용자는 사용자와 관련된 사진 앨범을 액세스할 수 없는 사용자들의 세트를 특정할 수 있고, 그럼으로써 그 사용자들이 사진 앨범에 액세스하는 것을 배제하는 (한편, 가능하다면 사용자들의 세트 내에 있지 않은 특정 사용자들이 사진 앨범에 액세스하는 것을 허용할 수 있다). 특정 실시예로, 개인정보 설정은 특정 소셜 그래프 요소와 관련될 수 있다. 소셜 그래프 요소, 가령 노드 또는 에지의 개인정보 설정은, 어떻게 소셜 그래프 요소, 소셜 그래프 요소와 관련된 정보, 또는 소셜 그래프 요소와 관련된 컨텐츠 객체가 온라인 소셜 네트워크를 사용하여 액세스될 수 있는지를 특정할 수 있다. 예로서 제한 없이, 특정 사진에 해당하는 특정 컨셉 노드(804)는 사진이 사진에 태그된 사용자 및 그들의 친구들에 의해서만 액세스될 수 있다고 특정하는 개인정보 설정을 가질 수 있다. 특정 실시예로, 개인정보 설정은 사용자들이 그들의 행위가 소셜 네트워킹 시스템(702)에 의해 로그되거나 다른 시스템(예컨대, 제3자 시스템(708))에 의해 공유되는 것에 참여하거나 참여하지 않도록 허용할 수 있다. 특정 실시예로, 객체와 관련된 프라이버시 설정은 임의의 적절하게 세분화된 접근 허용 또는 접근 거절을 명시할 수 있다. 예로서 제한 없이, 접근 또는 접근의 거절은 특정 사용자들(예컨대, 오직 자신만, 나의 동거인 및 나의 상사), 특정 이격도 내의 사용자들(예컨대, 친구 또는 친구의 친구), 사용자 그룹(예컨대, 게임 그룹, 나의 가족), 사용자 네트워크(예컨대, 특정 회사의 사원들, 특정 대학의 학생들이나 동창생들), 모든 사용자("공개(public)"), 사용자 없음("비밀(private)"), 제3자 시스템(708)의 사용자, 특정 애플리케이션(예컨대, 제3자 애플리케이션, 외부 웹사이트), 다른 적절한 사용자나 엔티티 또는 이들의 임의의 조합에 대해 명시될 수 있다. 본 명세서는 특정 방식으로 특정 개인정보 설정을 사용하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 임의의 적절한 개인정보 설정을 사용하는 것을 고려한다.
특정 실시예로, 하나 이상의 서버는 개인정보 설정을 강제하기 위한 인증/개인정보 서버일 수 있다. 데이터 스토어에 저장된 특정 객체에 대한 사용자(또는 다른 엔티티)로부터의 요청에 응답하여, 소셜 네트워킹 시스템(702)은 객체에 대한 요청을 데이터 스토어로 전송할 수 있다. 요청은, 요청과 연관된 사용자를 확인할 수 있고, 인증 서버가 객체와 연관된 개인정보 설정에 기반하여 사용자가 객체에 액세스하는 것이 인증된다고 결정한다면 오로지 그 사용자 (또는 그 사용자의 클라이언트 시스템(706))으로만 전송될 수 있다. 요청 중인 사용자가 객체에 접근하도록 인증되지 않는다면, 인증 서버는 요청된 객체가 데이터 스토어로부터 검색되는 것을 차단하거나, 요청된 객체가 사용자에게 송신되는 것을 차단할 수 있다. 검색 질의 컨텍스트에서, 객체는 질의하는 사용자가 객체에 액세스하는 것이 인증되는 경우에만 검색 결과로 생성될 수 있다. 즉, 객체는 질의하는 사용자에게 가시적인 가시성(visibility)을 가져야만 한다. 객체가 사용자에게 보이지 않는 가시성을 가진다면, 객체는 검색 결과로부터 배제될 수 있다. 본 명세서는 특정 방식으로 개인정보 설정을 강제하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 개인정보 설정을 강제하는 것을 고려한다.
전술한 명세서는 그것의 구체적이고 예시적인 실시예를 참조하여 기술된다. 본 명세서의 다양한 실시예 및 양태는 본 명세서에서 논의되는 세부사항을 참조하여 기술되며, 첨부되는 도면들은 다양한 실시예를 도시한다. 상기의 설명 및 도면은 예시적인 것이며, 제한하려는 것으로 해석되지 않는다. 많은 수의 구체적인 세부사항들은 다양한 실시예의 완전한 이해를 제공하기 위해 기술된다.
추가적 또는 대안적 실시예는 그것의 정신이나 필수적인 특징으로부터 벗어남이 없는 다른 구체적인 형태로 실현될 수 있다. 기술된 실시예는 모든 관점에 있어서 오로지 예시적인 것이며 제한적이지 않는 것으로 간주된다. 따라서, 본 명세서의 범위는 전술한 설명에 의하는 것이 아니라 첨부되는 청구범위에 의해 나타난다. 청구범위의 균등물의 의미 및 범위 내에 속하는 모든 변경은 그들의 범위 내에서 포괄될 것이다.

Claims (34)

  1. 하나 이상의 서버에 의해 사용자와 연관된 사용자 클라이언트-장치로부터 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하는 단계;
    하나 이상의 서버에 의해 사용자를 위해 사용자 계정과 연관된 결제 승인 번호를 확인하는 단계;
    하나 이상의 서버에 의해, 결제 거래에 상응하는 결제 승인 번호를 나타내는 결제 토큰을 획득하는 단계;
    하나 이상의 서버에 의해, 결제 승인 번호를 나타내는 결제 토큰을 암호화하는 단계; 및
    하나 이상의 서버에 의해, 사용자 클라이언트-장치를 위해 암호화된 결제 토큰을 사용자-클라이언트 장치로 전송하여 결제 거래에 관하여 판매자와 연관된 판매자 시스템에 제공하는 단계
    를 포함하는 방법.
  2. 제 1 항에 있어서,
    사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하는 단계는 사용자 클라이언트-장치로부터 판매자와 연관된 어플리케이션 인터페이스를 통하여 자바스크립트 요청을 수신하는 단계를 포함하는 방법.
  3. 제 2 항에 있어서,
    결제 승인 번호와 연관된 사용자 정보를 확인하는 단계; 및 암호화된 결제 토큰으로 사용자 정보를 사용자 클라이언트-장치로 전송하는 단계를 더 포함하는 방법.
  4. 제 3 항에 있어서,
    암호화된 결제 토큰 및 사용자 정보를 포함하는 결제 메시지를 생성하는 단계; 및 판매자와 연관된 결제 형식을 자동완성하기 위해 결제 메시지를 전송하는 단계를 더 포함하는 방법.
  5. 제 2 항에 있어서,
    결제 토큰을 암호화하는 단계는 사용자 클라이언트-장치의 운영 시스템과 관계없이 사용자 및 판매자 사이에 결제 거래를 시작하기 위해 결제 토큰을 암호화하는 단계를 포함하는 방법.
  6. 제 1 항에 있어서,
    결제 토큰을 암호화하는 단계는 사용자 클라이언트-장치에서 결제 토큰을 암호화하기 위해 사용자 클라이언트-장치와 연관된 열쇠로 결제 토큰을 암호화하는 단계를 포함하는 방법.
  7. 제 6 항에 있어서,
    사용자 클라이언트-장치를 위하여 하나 이상의 서버와 연관된 개인 열쇠로 결제 토큰을 서명하는 단계를 더 포함하는 방법.
  8. 제 1 항에 있어서,
    결제 승인 번호를 나타내는 결제 토큰을 획득하는 단계는,
    사용자의 결제 자격과 연결된 결제 승인 번호를 확인하는 단계;
    결제 승인 번호를 나타내는 결제 토큰을 위한 요청 메시지를 사용자의 결제 자격과 연관된 카드 네트워크 시스템으로 전송하는 단계; 및
    카드 네트워크 시스템으로부터 결제 승인 번호를 나타내는 결제 토큰을 수신하는 단계
    를 포함하는 방법.
  9. 제 1 항에 있어서,
    결제 토큰을 암호화하는 단계는 결제 승인 번호의 형식에 따라서 결제 토큰을 암호화하는 단계를 포함하는 방법.
  10. 제 1 항에 있어서,
    사용자를 위하여 사용자 계정과 연관된 결제 승인 번호를 확인하는 단계는 사용자 클라이언트-장치로부터 난독화된 사용자 신원을 수신하는 단계 및 난독화된 사용자 신원을 사용하여 결제 승인 번호를 검색하는 단계를 포함하는 방법.
  11. 제 1 항에 있어서,
    사용자 계정은 소셜 네트워킹 계정인 방법.
  12. 적어도 하나의 프로세서; 및
    적어도 하나의 프로세서에 의해 실행 시, 시스템이,
    사용자와 연관된 사용자 클라이언트-장치로부터 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하게 하고;
    사용자를 위해 사용자 계정과 연관된 결제 승인 번호를 확인하게 하고;
    결제 거래에 상응하는 결제 승인 번호를 나타내는 결제 토큰을 획득하게 하고; 결제 승인 번호를 나타내는 결제 토큰을 암호화하게 하고;
    사용자 클라이언트-장치를 위해 암호화된 결제 토큰을 사용자-클라이언트 장치로 전송하여 결제 거래에 관하여 판매자와 연관된 판매자 시스템에 제공하게 하는
    명령어를 포함하는 비일시적 컴퓨터 판독가능한 저장 매체
    를 포함하는 시스템.
  13. 제 12 항에 있어서,
    시스템은 적어도 하나의 프로세서에 의해 실행 시, 시스템이, 판매자와 연관된 어플리케이션을 통하여 자바스크립트 요청을 사용자 클라이언트-장치로부터 수신함으로써 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하게 하는 명령어를 더 포함하는 시스템.
  14. 제 13 항에 있어서,
    시스템은 적어도 하나의 프로세서에 의해 실행 시, 시스템이, 결제 승인 번호와 연관된 사용자 정보를 확인하게 하고; 및 암호화된 결제 토큰으로 사용자 정보를 사용자 클라이언트-장치로 전송하게 하는 명령어를 더 포함하는 시스템.
  15. 제 13 항에 있어서,
    적어도 하나의 프로세서에 의해 실행 시, 시스템이, 사용자 클라이언트-장치의 운영 시스템과 관계없이 사용자 및 판매자 사이에 결제 거래를 시작하기 위해 결제 토큰을 암호화함으로써 결제 토큰을 암호화하게 하는 명령어를 더 포함하는 시스템.
  16. 제 12 항에 있어서,
    적어도 하나의 프로세서에 의해 실행 시, 시스템이, 결제 거래에 상응하는 단일-사용 암호를 획득하게 하고; 결제 거래에 상응하는 단일-사용 암호를 암호화하게 하고; 및 사용자 클라이언트-장치로 암호화된 결제 토큰을 가진 암호화된 단일-사용 암호를 전송하게 하는 명령어를 더 포함하는 시스템.
  17. 제 12 항에 있어서,
    적어도 하나의 프로세서에 의해 실행 시, 시스템이, 사용자 클라이언트-장치에서 결제 토큰을 복호화하기 위해 사용자 클라이언트-장치와 연관된 열쇠로 결제 토큰을 암호화하게 하는 명령어를 더 포함하는 시스템.
  18. 제 12 항에 있어서,
    적어도 하나의 프로세서에 의해 실행 시, 시스템이, 결제 승인 번호의 형식에 따라서 결제 토큰을 암호화하게 하는 명령어를 더 포함하는 시스템.
  19. 적어도 하나의 프로세서에 의해 실행 시, 컴퓨터 시스템이,
    사용자와 연관된 사용자 클라이언트-장치로부터 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하게 하고;
    사용자를 위해 사용자 계정과 연관된 결제 승인 번호를 확인하게 하고;
    결제 거래에 상응하는 결제 승인 번호를 나타내는 결제 토큰을 획득하게 하고;
    결제 승인 번호를 나타내는 결제 토큰을 암호화하게 하고; 및
    사용자 클라이언트-장치를 위해 암호화된 결제 토큰을 사용자-클라이언트 장치로 전송하여 결제 거래에 관하여 판매자와 연관된 판매자 시스템에 제공하게 하는 명령어를 포함하는 비일시적 컴퓨터 판독가능한 저장 매체.
  20. 제 19 항에 있어서,
    적어도 하나의 프로세서에 의해 실행 시, 컴퓨터 시스템이, 판매자와 연관된 어플리케이션을 통하여 자바스크립트 요청을 사용자 클라이언트-장치로부터 수신함으로써 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하게 하고; 결제 승인 번호와 연관된 사용자 정보를 확인하게 하고; 및 사용자-클라이언트 장치로, 전송하여 결제 거래에 관하여 판매자와 연관된 어플리케이션에서 결제 형식을 자동완성하기 위해 암호화된 결제 토큰으로 사용자 정보를 전송하게 하는 명령어를 더 포함하는 비일시적 컴퓨터 판독가능한 저장 매체.
  21. 하나 이상의 서버에 의해 사용자와 연관된 사용자 클라이언트-장치로부터 사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하는 단계;
    하나 이상의 서버에 의해 사용자를 위해 사용자 계정과 연관된 결제 승인 번호를 확인하는 단계;
    하나 이상의 서버에 의해, 결제 거래에 상응하는 결제 승인 번호를 나타내는 결제 토큰을 획득하는 단계;
    하나 이상의 서버에 의해, 결제 승인 번호를 나타내는 결제 토큰을 암호화하는 단계; 및
    하나 이상의 서버에 의해, 사용자 클라이언트-장치를 위해 암호화된 결제 토큰을 사용자-클라이언트 장치로 전송하여 결제 거래에 관하여 판매자와 연관된 판매자 시스템에 제공하는 단계
    를 포함하는 방법.
  22. 제 21 항에 있어서,
    사용자 및 판매자 사이에 결제 거래를 시작하는 요청을 수신하는 단계는 사용자 클라이언트-장치로부터 판매자와 연관된 어플리케이션 인터페이스를 통하여 자바스크립트 요청을 수신하는 단계를 포함하는 방법.
  23. 제 22 항에 있어서,
    결제 승인 번호와 연관된 사용자 정보를 확인하는 단계; 및
    암호화된 결제 토큰으로 사용자 정보를 사용자 클라이언트-장치로 전송하는 단계
    를 더 포함하는 방법.
  24. 제 23 항에 있어서,
    암호화된 결제 토큰 및 사용자 정보를 포함하는 결제 메시지를 생성하는 단계; 및
    판매자와 연관된 결제 형식을 자동완성하기 위해 결제 메시지를 전송하는 단계
    를 더 포함하는 방법.
  25. 제 22 항 내지 제 24 항 중 어느 한 항에 있어서,
    결제 토큰을 암호화하는 단계는 사용자 클라이언트-장치의 운영 시스템과 관계없이 사용자 및 판매자 사이에 결제 거래를 시작하기 위해 결제 토큰을 암호화하는 단계를 포함하는 방법.
  26. 제 21 항 내지 제 25 항 중 어느 한 항에 있어서,
    결제 토큰을 암호화하는 단계는 사용자 클라이언트-장치에서 결제 토큰을 암호화하기 위해 사용자 클라이언트-장치와 연관된 열쇠로 결제 토큰을 암호화하는 단계를 포함하는 방법.
  27. 제 21 항 내지 제 26 항 중 어느 한 항에 있어서,
    사용자 클라이언트-장치를 위하여 하나 이상의 서버와 연관된 개인 열쇠로 결제 토큰을 서명하는 단계를 더 포함하는 방법.
  28. 제 21 항 내지 제 27 항 중 어느 한 항에 있어서,
    결제 승인 번호를 나타내는 결제 토큰을 획득하는 단계는,
    사용자의 결제 자격과 연결된 결제 승인 번호를 확인하는 단계;
    결제 승인 번호를 나타내는 결제 토큰을 위한 요청 메시지를 사용자의 결제 자격과 연관된 카드 네트워크 시스템으로 전송하는 단계; 및
    카드 네트워크 시스템으로부터 결제 승인 번호를 나타내는 결제 토큰을 수신하는 단계
    를 포함하는 방법.
  29. 제 21 항 내지 제 28 항 중 어느 한 항에 있어서,
    결제 토큰을 암호화하는 단계는 결제 승인 번호의 형식에 따라서 결제 토큰을 암호화하는 단계를 포함하는 방법.
  30. 제 21 항 내지 제 29 항 중 어느 한 항에 있어서,
    사용자를 위하여 사용자 계정과 연관된 결제 승인 번호를 확인하는 단계는 사용자 클라이언트-장치로부터 난독화된 사용자 신원을 수신하는 단계 및 난독화된 사용자 신원을 사용하여 결제 승인 번호를 검색하는 단계를 포함하는 방법.
  31. 제 21 항 내지 제 30 항 중 어느 한 항에 있어서,
    사용자 계정은 소셜 네트워킹 계정인 방법.
  32. 적어도 하나의 프로세서; 및
    적어도 하나의 프로세서에 의해 실행 시, 시스템이, 제 21 항 내지 제 31 항 중 어느 한 항에 따르는 방법을 수행하게 하는 명령어를 포함하는 비일시적 컴퓨터 판독가능한 저장 매체
    를 포함하는 시스템.
  33. 적어도 하나의 프로세서에 의해 실행 시, 컴퓨터 시스템이, 제 21 항 내지 제 31 항 중 어느 한 항에 따르는 방법을 수행하게 하는 명령어를 포함하는 비일시적 컴퓨터 판독가능한 저장 매체.
  34. 제 21 항 내지 제 31 항 중 어느 한 항에 따르는 방법을 수행하는 데이터 처리 시스템상에서 실행시 동작가능한, 컴퓨터-판독가능한 비일시적 저장 매체를 바람직하게 포함하는 컴퓨터 프로그램 제품.
KR1020197013340A 2016-12-21 2016-12-22 장치 및 시스템 중립적 전자 결제 토큰의 제공 KR20190089861A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/387,304 2016-12-21
US15/387,304 US20180174137A1 (en) 2016-12-21 2016-12-21 Providing device and system agnostic electronic payment tokens
PCT/US2016/068336 WO2018118067A1 (en) 2016-12-21 2016-12-22 Providing device and system agnostic electronic payment tokens

Publications (1)

Publication Number Publication Date
KR20190089861A true KR20190089861A (ko) 2019-07-31

Family

ID=62561638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197013340A KR20190089861A (ko) 2016-12-21 2016-12-22 장치 및 시스템 중립적 전자 결제 토큰의 제공

Country Status (8)

Country Link
US (1) US20180174137A1 (ko)
EP (1) EP3340146A1 (ko)
JP (1) JP6991211B2 (ko)
KR (1) KR20190089861A (ko)
CN (1) CN110023979A (ko)
CA (1) CA3041090A1 (ko)
IL (1) IL267017A (ko)
WO (1) WO2018118067A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230230067A1 (en) * 2022-01-20 2023-07-20 VocaLink Limited Tokenized control of personal data
WO2024080556A1 (ko) * 2022-10-12 2024-04-18 주식회사 플렉스데이 이중 암호화를 통한 결제 인증 방법 및 이를 수행하는 결제서버

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11023880B2 (en) * 2016-07-23 2021-06-01 Vray Inc. Online mobile payment system and method using authentication codes
WO2019014374A1 (en) * 2017-07-11 2019-01-17 Visa International Service Association SYSTEMS AND METHODS OF USING A TRANSACTION IDENTIFIER TO PROTECT SENSITIVE IDENTITY SUPPORTERS
EP3652689A1 (en) * 2017-07-14 2020-05-20 Visa International Service Association Method, system, and computer program product for user communication with merchants associated with transactions
US10708054B2 (en) * 2017-10-12 2020-07-07 Visa International Service Association Secure microform
US11100528B2 (en) * 2017-11-14 2021-08-24 Jpmorgan Chase Bank, N.A. System and method for implementing a trusted identity broker solution to protect customer identity
US11487896B2 (en) 2018-06-18 2022-11-01 Bright Lion, Inc. Sensitive data shield for networks
CN108471432B (zh) * 2018-07-11 2020-09-11 北京智芯微电子科技有限公司 防止网络应用程序接口被恶意攻击的方法
US11100533B1 (en) 2018-09-14 2021-08-24 Facebook, Inc. Cryptographically generating custom audiences
US20200104825A1 (en) * 2018-09-27 2020-04-02 Apple Inc. Wireless transaction via persistent wireless connection
US11374752B2 (en) * 2019-06-07 2022-06-28 Panasonic Avionics Corporation Secure transactions for in-flight entertainment systems
US20210110373A1 (en) * 2019-10-14 2021-04-15 Capital One Services, Llc Social media account-linking checkout
EP3905166A1 (en) * 2020-04-30 2021-11-03 Bright Lion, Inc. E-commerce security assurance network
US20230016065A1 (en) * 2021-07-09 2023-01-19 Evo Merchant Services, Llc Frictionless payment system
EP4181044A1 (en) * 2021-11-16 2023-05-17 Mastercard International Incorporated Pre-authenticated token for use in payment transactions and data access
US11823171B1 (en) * 2021-12-22 2023-11-21 Wells Fargo Bank, N.A. Payment function service
US20240054462A1 (en) * 2022-08-15 2024-02-15 VocaLink Limited Systems and methods for submission and processing of requests for payment messages
US11971862B1 (en) * 2022-09-20 2024-04-30 Lithic, Inc. Processing transactions with idempotency in real-time ledgers

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327578B1 (en) 1998-12-29 2001-12-04 International Business Machines Corporation Four-party credit/debit payment protocol
US8996423B2 (en) 2005-04-19 2015-03-31 Microsoft Corporation Authentication for a commercial transaction using a mobile module
US8788429B2 (en) * 2009-12-30 2014-07-22 First Data Corporation Secure transaction management
US8380177B2 (en) * 2010-04-09 2013-02-19 Paydiant, Inc. Mobile phone payment processing methods and systems
WO2012151590A2 (en) * 2011-05-05 2012-11-08 Transaction Network Services, Inc. Systems and methods for enabling mobile payments
US10417702B2 (en) * 2011-05-26 2019-09-17 Facebook, Inc. Dynamically providing a third-party checkout option
US8682802B1 (en) * 2011-11-09 2014-03-25 Amazon Technologies, Inc. Mobile payments using payment tokens
US9154470B2 (en) 2012-05-25 2015-10-06 Canon U.S.A., Inc. System and method for processing transactions
US20160019536A1 (en) * 2012-10-17 2016-01-21 Royal Bank Of Canada Secure processing of data
WO2014186635A1 (en) * 2013-05-15 2014-11-20 Visa International Service Association Mobile tokenization hub
EP3000080B1 (en) * 2013-07-12 2017-01-25 Payu Payment Solutions (Proprietary) Limited Systems for storing cardholder data and processing transactions
EP2838060A1 (en) 2013-08-14 2015-02-18 Facebook, Inc. Methods and systems for facilitating e-commerce payments
US10515358B2 (en) * 2013-10-18 2019-12-24 Visa International Service Association Contextual transaction token methods and systems
US20150269559A1 (en) * 2014-03-24 2015-09-24 Cellum Innovacios es Szolgaltato Zrt. Systems and methods for a quick card
US20160071094A1 (en) * 2014-09-05 2016-03-10 Ebay Inc. Systems and methods for implementing hybrid dynamic wallet tokens
US20160239820A1 (en) * 2015-02-18 2016-08-18 Apriva, Llc Method and system for facilitating a payment transaction with a customer mobile device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230230067A1 (en) * 2022-01-20 2023-07-20 VocaLink Limited Tokenized control of personal data
WO2024080556A1 (ko) * 2022-10-12 2024-04-18 주식회사 플렉스데이 이중 암호화를 통한 결제 인증 방법 및 이를 수행하는 결제서버

Also Published As

Publication number Publication date
EP3340146A1 (en) 2018-06-27
CA3041090A1 (en) 2018-06-28
CN110023979A (zh) 2019-07-16
WO2018118067A1 (en) 2018-06-28
JP6991211B2 (ja) 2022-01-12
JP2020506449A (ja) 2020-02-27
US20180174137A1 (en) 2018-06-21
IL267017A (en) 2019-07-31

Similar Documents

Publication Publication Date Title
JP6991211B2 (ja) デバイスおよびシステムに依存しない電子支払トークンの提供
US10796295B2 (en) Processing payment transactions using artificial intelligence messaging services
US10496995B2 (en) Facilitating payment transactions between users of a plurality of payment providers
US11074570B2 (en) Facilitating sending and receiving of peer-to-business payments
US10579999B2 (en) Network payment tokenization for processing payment transactions
KR101807676B1 (ko) 당일 결제 거래의 용이화
US10769622B2 (en) User communications with a merchant through a social networking system
US20190147515A1 (en) Facilitating transactions using transaction tokens
US20180174138A1 (en) Processing payment transactions with dynamic payment token generation and exchange
US20220224666A1 (en) Generating automated messages within messaging threads that facilitate digital signatures by verified users
US20170178124A1 (en) Processing secure electronic payment transactions
KR20170127418A (ko) 메시지 및 결제 큐를 사용한 결제의 전송, 수신 및 업데이트 용이화
KR20170065511A (ko) 송금 결제 송수신의 용이화
KR20170074855A (ko) 메시지 기반 문맥적 유도를 사용한 결제의 송신 및 수신의 용이화
JP2016532963A (ja) 電子商取引の支払を容易に行わせる方法およびシステム
JP6317445B2 (ja) サードパーティ精算オプションの動的な提供
EP3073430A1 (en) User communications with a merchant through a social networking system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application