Google 표준 결제:

토큰화된 FOP

개요

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

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

  1. 인증 흐름: 사용자를 식별 및 확인 (인증)합니다.
  2. 연결 흐름: 사용자의 토큰을 설정합니다 (신규 또는 이전에 식별 및 인증). 이 토큰은 특정 사용자의 특정 결제 수단을 나타냅니다. 이후 구매 시 토큰을 사용할 수 있습니다.

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

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

<ph type="x-smartling-placeholder">
</ph> 제품 선택
1) 사용자가 구매할 제품을 선택합니다.
<ph type="x-smartling-placeholder">
</ph> 결제 수단 선택
2) 다음으로 결제 수단을 선택합니다.
<ph type="x-smartling-placeholder">
</ph> 결제 수단 추가
3) 이제 새 결제 수단을 추가합니다.
<ph type="x-smartling-placeholder">
</ph> 리디렉션
4) 인증을 위해 리디렉션됩니다.
<ph type="x-smartling-placeholder">
</ph> 인증됨
5) 마지막으로 인증을 거쳐 이를 구매할 수 있습니다.

다음 다이어그램은 흐름에 대한 광범위한 개요를 보여줍니다.

토큰화된 FOP 개요

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

대략적으로 Google 제품에 서비스를 결제 수단으로 추가하려면 다음 절차가 필요합니다.

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

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

개념 및 용어

기호 및 규칙

'반드시'라는 핵심 단어는 '해서는 안 됩니다(MUST NOT)' 'REQUIRED', "SHALL"이라고 합니다. 'SHALL NOT,'(SHALL NOT) 'SHOULD'로 지정합니다. 'SHOULD NOT'으로 'RECOMMENDED', 'MAY', 및 'OPTIONAL' RFC 2119에 설명된 대로 해석되어야 합니다.

타임스탬프

모든 타임스탬프는 유닉스 시간(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을 곱합니다.

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

  • USD$1.23 = 1230,000마이크로 USD
  • USD$0.01 = 10,000마이크로 USD

멱등성

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

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

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

통합자

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

결제 방법

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

악기

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

토큰

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

주요 흐름

인증 흐름

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

  1. SMS-MT OTP 인증 (SMS 모바일로 종료된 일회용 비밀번호)
  2. 리디렉션 인증

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

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

SMS-MT OTP 인증

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

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

리디렉션 인증

리디렉션 인증은 Google에서 사용자를 통합업체 소유의 애플리케이션으로 리디렉션하는 방식으로 이루어집니다. 해당 애플리케이션은 웹 또는 Android 애플리케이션일 수 있습니다.

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

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

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

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

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

연결 흐름

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

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

그 결과 Google과 통합업체가 설정된 GPT에 합의합니다.

두 명의 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 계정 로그인인 경우 두 이메일 주소를 모두 사용하기 때문일 수 있습니다.

  4. InvisiCash 앱에서 인증 ID를 Google Play 스토어로 다시 전송합니다.

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

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

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

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