사용자 포인트 멤버십 등록 및 패스 업그레이드

포인트 멤버십 등록 및 로그인 기능을 사용하면 사용자가 Google 월렛에서 포인트 멤버십을 검색하고 계정에 가입하거나 로그인할 수 있습니다. 사용자는 모바일 친화적인 웹사이트로 안내되며, 여기에서 필요한 절차를 완료하고 나면 자신의 공식 카드를 Google 월렛에 추가할 수 있습니다.

이 기능을 구현하는 것은 사용자가 추가한 '정적' 패스를 '동적' API 연결 패스로 변환하기 위한 기본 요건입니다. 이 가이드에서는 등록, 로그인, 패스 업그레이드에 포인트 멤버십을 사용 설정하는 데 필요한 혜택과 구현 단계를 간략히 설명합니다.

개요

시작하려면 프로젝트가 이미 설정되어 있고 Google 월렛 API에 액세스할 수 있어야 합니다.

이 기능을 구현하려면 다음 네 단계를 따라야 합니다.

  1. 테스트 클래스 설정: 흐름을 테스트하도록 Google 월렛을 구성합니다.
  2. 페이지 개발: Google 월렛 SharedDataType를 사용하여 등록/로그인 페이지를 빌드합니다.
  3. 푸시백 구현: 작업 후 포인트 카드를 Google 월렛으로 전송합니다.
  4. 인증 요청: 검토를 위해 제출하고 업그레이드 활성화를 요청합니다.

포인트 제도 등록을 구현해야 하는 이유

이 통합의 가치를 이해하려면 Google 월렛에 있는 두 가지 유형의 패스인 L1 (사용자 추가)L2 (파트너 발급)를 구분해야 합니다.

L1과 L2의 차이점

기능 L1 통과 (사용자 추가) L2 통과 (파트너 발급)
원본 사용자가 실제 카드를 수동으로 스캔하거나 번호를 입력할 때 생성됩니다. 사용자가 흐름을 사용하여 가입하거나 로그인한 후 월렛 API를 사용하여 생성되고 푸시됩니다.
컨트롤 정적 파트너는 이 패스를 볼 수도 관리할 수도 없습니다. 동적 파트너는 API를 사용하여 완전히 제어할 수 있습니다.
작동 방식 바코드의 정적 이미지입니다. 이 설정은 업데이트할 수 없습니다. 포인트 잔액, 등급 상태를 업데이트하고, 맞춤 혜택을 표시하고, 알림을 받을 수 있습니다.

업그레이드 경로: 프로그램으로 연결되는 '브리지'

포인트 등록 흐름('대상')을 빌드하면 Google에서 사용자를 정적 L1 패스에서 공식 L2 패스로 업그레이드하는 '브리지'를 빌드할 수 있습니다. 업그레이드를 트리거하는 요인은 두 가지입니다.

  1. L1에서 L2로 업그레이드: 사용자가 이전에 카드를 수동으로 추가한 경우 (L1) Google 월렛에서 새로운 로그인 흐름을 방문하여 공식 동적 패스 (L2)로 업그레이드하라는 메시지를 표시할 수 있습니다.
  2. Gmail에서 가져온 패스 업그레이드: Google 월렛에서 사용자의 Gmail을 사용하는 포인트 카드를 감지하면 사용자에게 흐름을 방문하고 인증하여 공식 L2 패스를 받도록 메시지를 표시할 수 있습니다.

1단계: Google 월렛에서 테스트 클래스 설정하기

등록 및 로그인 URL, 포인트 제도 로고, 선택한 사용자 필드를 결정해야 합니다. 그런 다음 loyaltyclassdiscoverableProgram 중첩 필드를 사용하여 적절한 값을 설정합니다.

discoverableProgram에서 값을 설정하여 등록/로그인이 사용 설정된 포인트 제도의 초안 버전을 만듭니다. 테스터에게 표시되도록 하려면 테스터가 Google Pay 및 월렛 콘솔에 액세스할 수 있어야 합니다. Google Pay 및 월렛 콘솔의 액세스 권한을 다른 사용자와 공유하는 방법에 관한 자세한 내용은 사용자 페이지 알아보기를 참고하세요.

개발 프로세스에서 구현 기능의 인증을 완료하려면 Google Pay 및 월렛 콘솔의 지원팀에 문의 위젯을 사용하여 문의하세요. 콘솔의 주제에서 Google Wallet API를 선택하고 하위 주제에서 포인트 로그인/등록을 선택합니다.

2단계: 등록 및 로그인 페이지 개발

사용자가 포인트 제도에 로그인하거나 등록하기로 선택하면 등록 또는 로그인 프로세스를 완료할 수 있도록 판매자의 웹사이트에 있는 맞춤형 페이지로 연결됩니다. 사용자가 등록을 선택하면 Google 월렛에서는 사용자에게 본인의 사용자 데이터를 판매자와 공유하는 것을 승인하도록 요청합니다.

사용자가 이러한 작업을 완료할 수 있도록 두 페이지 중 하나 또는 모두를 제공해야 합니다.

  1. 사용자가 기존 계정에 로그인할 수 있는 로그인 URL
  2. 사용자가 새 계정을 만들 수 있는 등록 URL

로그인 및 등록 페이지는 다음 요구사항을 충족해야 합니다.

  • 모바일 친화적인 사용자 환경을 제공합니다.
  • 등록 과정에 사용되는 필수 필드의 수를 최소화합니다.
  • 사용자가 단일 페이지 내에서 로그인 또는 등록을 완료할 수 있도록 합니다.
  • 사용자 데이터가 안전하게 전송되도록 유효한 인증서와 함께 HTTPS 암호화를 사용합니다.
  • 로그인 및 등록 페이지의 업타임이 99.9% 이상이 되도록 합니다.

이러한 요구사항 외에도 사용자가 양식을 작성하거나 해당 페이지에서 서비스 약관 동의 단계까지 진행하지 않고도 포인트 제도에 등록할 수 있도록 하는 것이 좋습니다.

  • SharedDataType에 제공된 사용자 데이터를 활용하면 계정을 생성한 후 즉시 포인트 카드를 푸시백할 수 있습니다.
  • 이후 사용자에게 비밀번호와 선택적 계정 세부정보를 구성하기 위한 링크나 일회용 비밀번호를 이메일로 보낼 수 있습니다.
  • 필요한 단계가 늘어날수록 사용자가 등록을 중단할 가능성이 높아지므로 이렇게 하면 사용자가 등록 과정을 포기할 가능성이 낮아집니다.

로그인 또는 등록 페이지를 표시할 때 Google 월렛에서는 Android WebView를 생성하며 판매자가 제공한 URL에 대해 POST 요청이 실행됩니다. 사용자 데이터는 Content-Typeapplication/x-www-form-urlencoded이고 UTF-8 인코딩이 적용된 POST 요청에 포함된 SharedDataType 매개변수로 제공됩니다. SharedDataType 매개변수의 값은 Base64로 인코딩된 JSON 객체입니다.

사용자가 선택하는 작업과 판매자가 사용자 입력을 요청하도록 지정한 필드에 따라 다음과 같은 필드가 JSON 객체에 포함될 수 있습니다.

필드 등록
이메일
firstName
lastName
addressLine [1-3]
city
zipcode
국가
전화

SharedDataType에 포함되는 디코딩된 샘플 JSON 객체는 아래를 참고하세요.

리소스

{
  "firstName": "Jane",
  "lastName": "Doe",
  "addressLine1": "1600 Amphitheatre Pkwy",
  "addressLine2": "Apt 123",
  "addressLine3": "Attn:Jane",
  "city": "Mountain View",
  "state": "CA",
  "zipcode": "94043",
  "country": "US",
  "email": "jane.doe@example.com",
  "phone": "555-555-5555"
}

3단계: Google 월렛에 즉시 푸시백 구현

인증 (로그인) 또는 계정 생성 (등록) 후에는 판매자 페이지에서 즉시 사용자의 포인트 카드를 Google 월렛에 푸시백해야 합니다.

아래와 같은 구조의 링크로 리디렉션하면 포인트 카드를 Google 월렛에 푸시백할 수 있습니다.

https://pay.google.com/gp/v/save/{jwt_generated}

URL의 안전한 길이는 2,000자(바이트)이므로 링크가 이 한도를 초과해서는 안 됩니다. JWT로 인코딩된 객체의 크기는 작아야 하며 사용자별 데이터만 포함해야 합니다. JWT를 만들기 전에 객체 클래스에 대부분의 데이터를 보관합니다. 한도에 맞지 않는 큰 객체의 경우 먼저 Google 월렛 API에서 객체를 만든 후 객체 ID만 JWT로 보내는 것이 좋습니다.

일반적인 통신 과정

다음 이미지에는 사용자의 등록 또는 서명을 위한 통신 과정이 나와 있습니다. '판매자 서버' 간의 모든 작업은 판매자가 구현해야 합니다.

등록 로그인 흐름

4단계: 확인 및 활성화 요청

개발 작업을 완료하고 등록/로그인 흐름을 테스트한 후 구현을 검토하고 완전히 활성화하도록 요청을 제출해야 합니다.

  1. Google Pay 및 월렛 콘솔로 이동합니다.
  2. 지원팀에 문의 위젯을 사용합니다.
  3. 포인트 멤버십 등록 통합을 완료했음을 지원팀에 알립니다.

구현된 기능을 전체적으로 검토하여 Google 월렛 앱과 함께 올바르게 작동하는지 확인하고 나면 해당 포인트 제도의 포인트 카드 등록/로그인 기능이 모든 사용자에게 공개됩니다.

최적의 사용자 환경을 보장하기 위해 구현된 등록/로그인 기능이 기능 요구사항을 준수하는지 확인하기 위한 검사가 반복적으로 수행됩니다. 요구사항에 맞지 않으면 판매자에게 알림이 전송되며, 문제가 해결될 때까지 로그인/등록 기능이 사용 중지될 수 있습니다.

자주 묻는 질문(FAQ)

  • 포인트 제도에 사용되는 이미지에 대한 요구사항이 있나요? 예. 이미지는 HTTPS 위치에서 호스팅되어야 하며, 그렇지 않으면 Google 월렛에 표시되지 않습니다.

  • JWT의 구현과 디버깅을 간소화하는 도구가 있나요? 예. www.jwt.io와 같은 플랫폼을 사용하면 개발 과정에서 토큰을 디코딩하고 디버그하여 제출할 콘텐츠를 확인할 수 있습니다. Google은 이러한 서드 파티와 제휴 관계에 있지 않으며 특별히 추천하는 서드 파티도 없습니다.

  • Base64로 인코딩된 SharedDataType 데이터를 올바르게 처리하려면 어떻게 해야 하나요? 프로세스 전체에서 UTF-8 인코딩을 사용하고 있는지 확인하세요. JSON 문자열은 먼저 UTF-8로 인코딩된 후 NO_WRAP 및 URL_SAFE 옵션을 사용하여 android.util.Base64로 인코딩됩니다. 이 방식은 RFC 3548 4조에 부합합니다.