Google 표준 결제:

토큰화된 FOP

개요

토큰화된 FOP (결제 수단)는 결제 플랫폼에 통합된 일종의 결제 수단입니다. 사용자가 이 FOP로 결제하려면 Google과 결제 통합업체가 계정 ID 사용자 인증 정보를 일회성으로 교환해야 합니다. 그러면 특정 사용자에 대한 결제 방법을 나타내는 토큰을 설정하는 흐름을 거치게 됩니다. 이 토큰은 이후 여러 차례 결제에 사용할 수 있습니다. 현재 이러한 API에는 두 가지 버전이 있습니다. 버전 2는 이동통신사 및 참조 번호 제공업체를 지원합니다. 토큰화된 다른 모든 FOP 제공업체는 버전 1을 구현해야 합니다. 이 문서의 나머지 부분에서는 버전 1에 중점을 둡니다.

Google은 두 가지 흐름을 사용하여 ID를 설정하고 이 토큰을 만듭니다.

  1. 인증 흐름: 사용자를 식별하고 확인 (인증)합니다.
  2. 연결 흐름: 사용자를 위한 토큰을 설정합니다 (신규 또는 이전에 식별되고 인증된 사용자). 이 토큰은 특정 사용자가 사용한 특정 결제 방법을 나타냅니다. 이후 구매에서 토큰을 사용할 수 있습니다.

토큰이 설정되면 Google에서 구매 흐름에서 토큰을 사용하여 사용자에게 빠르고 원활한 결제 환경을 제공합니다. Google은 이 토큰을 사용하여 고객의 결제 수단 인스턴스를 나타냅니다. 이것은 악기라고도 합니다. Google 고객은 상품과 서비스 비용을 결제하는 데 두 개 이상의 결제 수단을 사용할 수 있습니다.

마지막으로 통합업체 은행과 Google 은행 간의 모든 자금 이동은 송금 흐름을 통해 이루어집니다.

제품 선택
1) 사용자가 구매할 제품을 선택합니다.
결제 수단 선택
2) 다음으로 결제 수단을 선택합니다.
결제 수단 추가
3) 이제 새 결제 수단을 추가합니다.
리디렉션
4) 인증을 위해 리디렉션됩니다.
인증됨
5) 마지막으로, 인증을 받았고 구매할 수 있습니다.

다음 다이어그램은 흐름의 대략적인 개요를 보여줍니다.

토큰화된 FOP 개요

토큰화된 FOP 개요 다이어그램

개략적으로 Google 제품에 서비스를 결제 수단으로 추가하려면 다음 절차를 따르세요.

  1. 인증 흐름
  2. 연결 흐름
  3. 구매 흐름
  4. 환불 절차
  5. 송금 흐름

이러한 흐름은 아래 섹션과 가이드 섹션에 더 자세히 설명되어 있습니다.

개념 및 용어

e

기호 및 규정

이러한 문서의 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY' 및 'OPTIONAL'은(는) RFC 2119에 설명된 대로 해석되어야 합니다.

타임스탬프

모든 타임스탬프는 Unix 에포크 (1970년 1월 1일) 이후 UTC 기준으로 표시됩니다.

예를 들면 다음과 같습니다.

  • 2019년 4월 23일, 오후 8:23:25 GMT = 1556051005000밀리초
  • 2018년 8월 16일, 오후 12:28:35 GMT = 1534422515000밀리초

금액

이 API의 금전적 값은 Google의 표준인 '마이크로'라는 형식으로 되어 있습니다. 마이크로는 정수 기반의 고정 정밀도 형식입니다. 마이크로 단위로 금액을 나타내려면 표준 통화 값에 1,000,000을 곱합니다.

예를 들면 다음과 같습니다.

  • 1.23달러 = 1230,000마이크로달러
  • 미화 0.01달러 = 10,000마이크로 미화

멱등성

이 API 내의 모든 메서드 호출에는 멱등성이 있는 동작이 있어야 합니다. Google은 양측의 트랜잭션이 동일한 상태인지 확인하기 위해 간헐적으로 요청을 재시도합니다. 통합업체는 이미 성공적으로 처리된 요청을 다시 처리하려고 시도해서는 안 됩니다. 대신 성공적인 처리에 대한 응답이 보고되어야 합니다. 모든 메서드에는 requestId가 포함된 공통 RequestHeader가 있습니다. 이 requestId는 모든 호출에 대한 멱등성 키입니다.

비 터미널 응답 (HTTP 200 성공 아님)은 멱등적으로 처리되어서는 안 됩니다. 따라서 이전에 400 (잘못된 요청/실패한 전제조건)을 받은 요청은 두 번째 호출 시 멱등적으로 400을 반환해서는 안 되며 다시 평가해야 합니다. 재평가 시 400이 반환되거나 성공적으로 처리될 수 있습니다.

멱등성에 관한 자세한 내용은 이 상세 가이드를 참고하세요.

통합자

비즈니스를 위해 Google의 결제 플랫폼을 사용하는 회사입니다. YouTube나 애드워즈와 같은 내부 (1P)일 수도 있고, Google의 생태계와 작동하도록 서비스를 통합하려는 외부 (3P) 비즈니스일 수도 있습니다.

결제 방법

결제 수단. 악기보다 더 일반적입니다. Visa, MasterCard, PayPal은 모두 결제 수단입니다.

결제수단

특정 고객에 의한 특정 결제 수단 인스턴스입니다. 사용자의 신용카드나 PayPal 계정을 예로 들 수 있습니다. 특정 고객에 대한 토큰화된 FOP는 Google 시스템에 안전하게 저장된 고객의 결제 수단 인스턴스이므로 결제 수단이기도 합니다.

토큰

Google 시스템에서 특정 사용자의 결제 수단을 나타냅니다. 토큰은 구매에 필요한 모든 정보를 담고 있으므로 도구이기도 합니다. 여기에는 사용자가 통합업체에 가지고 있는 계좌 번호와 같은 정보가 포함될 수 있습니다.

주요 흐름

인증 흐름

가장 먼저 실행해야 하는 흐름은 인증입니다. 인증 흐름의 목적은 사용자를 식별하고 통합업체에 인증하는 것입니다. 인증은 다양한 방법으로 이루어질 수 있습니다. 토큰화된 FOP는 사용자를 식별하고 인증하는 두 가지 방법을 지원합니다.

  1. SMS-MT OTP 인증 (휴대폰으로 SMS 종료됨, 일회용 비밀번호)
  2. 리디렉션 인증

온보딩 시 통합자는 Google과 협력하여 제품에 가장 적합한 인증 메커니즘을 선택합니다.

인증 흐름은 두 가지 상황에서 사용할 수 있습니다. 첫 번째는 연결을 위해 새 고객을 식별하고, 두 번째는 기존 결제 수단의 자격 증명을 사용자에게 요청하는 것입니다. 인증 흐름의 결과는 연결 흐름, 갱신 토큰 흐름, 챌린지가 있는 구매 흐름 등 여러 흐름에 대한 입력으로 사용될 수 있습니다. 또한 인증 흐름은 후속 흐름에 연결되지 않은 독립형 모드에서 사용할 수 있습니다.

SMS-MT OTP 인증

이 인증 메커니즘에서는 사용자가 Google UI에 전화번호를 입력합니다. Google은 sendOtp 메서드를 통해 이 전화번호를 통합업체에 전송합니다. 통합업체가 사용자에게 일회용 비밀번호를 전송합니다. 사용자가 비밀번호를 Google UI에 입력하면 통합업체에 함께 전송됩니다. 그러면 결제 통합업체의 성공 응답이 트리거됩니다.

독립형 모드에서 SMS-MT OTP 인증을 사용하는 경우 verifyOtp 메서드를 사용하여 OTP의 값이 통합업체에 전송됩니다. 이 방법은 제공된 OTP가 전송된 것인지 확인합니다.

리디렉션 인증

리디렉션 인증은 Google에서 사용자를 통합업체 소유 애플리케이션으로 리디렉션하면 발생합니다. 그 애플리케이션은 웹 또는 Android 애플리케이션일 수 있습니다.

Android 및 웹 리디렉션은 비슷하게 작동합니다. Google은 사용자를 통합업체의 앱으로 리디렉션합니다. 통합업체는 해당 통합업체에 가장 자연스러운 형식으로 사용자를 식별하고 인증합니다. 인증되면 통합업체는 사용자를 다시 Google UI로 리디렉션하여 연결을 완료합니다. 리디렉션 시 Google에서는 이 인증 세션을 식별하기 위해 requestId를 제공합니다. 이 식별자는 연결 중에 신원을 증명하는 인증으로 사용됩니다.

이 흐름을 선택하는 통합자는 웹 인증 URL을 제공해야 합니다. 이 URL이 모든 표시 경로 (데스크톱 또는 모바일)에서 가장 일반적인 분모이기 때문입니다. 하지만 모바일에서 최고의 사용자 환경을 제공하기 위해 Android 인증을 사용하는 것이 좋습니다.

기기 컨텍스트와 설치된 앱에 따라 Google UI는 웹 또는 Android 앱 리디렉션을 선택합니다.

이 인증 메커니즘은 통합업체에 가장 큰 자유를 제공합니다. 사용자를 인증하고 식별하는 방법에는 여러 가지가 있습니다. 사용자 이름 + 비밀번호 또는 생체 인식 정보 및 보안 질문 모두 실행 가능한 솔루션입니다. Google은 통합업체가 사용자를 인증하는 방법을 지시하지 않습니다. 통합업체가 사용자 인증을 처리합니다. 이러한 방식으로 Google은 통합업체의 다양한 사용자 인터페이스를 활용하여 사용자를 인증하고 Google에 인증 증명을 제공하려고 합니다.

인증에 대한 자세한 내용은 이 상세 가이드를 참고하세요.

연결 흐름

사용자는 위에서 언급한 메커니즘 중 하나를 통한 인증 흐름을 거친 후 연결 흐름을 거치게 됩니다. 연결 흐름의 목적은 결제 수단을 만들기 위해 Google 결제 토큰 (GPT)을 설정하는 것입니다. 이 흐름은 다음 작업을 실행합니다.

  1. 이 사용자를 나타내는 토큰이라고 하는 ID를 협상합니다.
  2. Google의 위험 엔진에 알리기 위한 계정 정보를 제공합니다.
  3. GPT를 만들고 설정하는 데 필요한 최초 설정 정보를 수집합니다.

결과적으로는 설정된 GPT에 대해 Google과 통합업체가 모두 합의하게 됩니다.

두 명의 Google 사용자가 통합업체와 동일한 사용자 계정을 공유할 수 있습니다. 이 경우 사용자마다 다른 결제 수단을 사용하게 됩니다. 각 계측기에는 독립적인 연결 흐름이 있으므로 고유한 GPT가 있습니다.

이 그림은 InvisiCash라는 토큰화된 가짜 FOP를 설명합니다. 이를 통해 인증 흐름연결 흐름에서 사용자가 거치게 될 단계를 확인할 수 있습니다.

연결 흐름 개요

토큰화된 FOP-Invisicash

  1. 이메일 주소가 sf@gmail.com인 Google 사용자가 InvisiCash 계정을 Google Play 스토어에 추가하여 구매 시 사용하려고 합니다.
  2. 인증을 위해 Google Play 스토어에서 InvisiCash 앱을 엽니다.
  3. 사용자는 이메일 주소 sally@otheremail.com으로 InvisiCash 계정에 로그인합니다. Gmail 이메일 주소가 InvisiCash 계정 로그인인 경우 Gmail 이메일 주소를 두 이메일 모두에 사용할 수 있습니다.

  4. InvisiCash 앱에서 Google Play 스토어로 인증 ID를 다시 보냅니다.

  5. Google Play 스토어는 Google 서버에 인증 ID를 전송합니다.

  6. Google 서버가 InvisiCash 서버로 계정을 연결하라는 메시지를 보냅니다. 이 연결에는 인증 ID, GPT (Google 결제 토큰), 연결 ID가 포함됩니다.

  7. InvisiCash 서버는 Google 결제 토큰 (GPT)과 연결 ID를 저장합니다. 두 계정 모두 현재 샐리의 InvisiCash 계정과 연결되어 있습니다.

  8. InvisiCash에서 이 연결을 승인합니다. 그러면 Google 서버에서 향후 구매에 사용할 수 있는 결제 수단을 만듭니다.