Android APK 인증 API

인증은 다음 세 가지 환경에서 진행할 수 있습니다.

  • 결제 통합업체의 Android 앱
  • 결제 통합업체의 모바일 웹사이트
  • 결제 통합업체의 데스크톱 웹사이트

Google은 절차와 관계없이 사용자 상호작용을 결제팀에 넘겨줍니다. 소프트웨어입니다 결제 통합업체는 사용자에게 결제 수단에 액세스할 수 있는 인터페이스를 구현하거나 이미 적절한 데이터가 있으면 즉시 반환하세요. 모든 흐름에서 통합업체가 AuthenticationResponse를 생성합니다. 이 서명되어 Google로 다시 전송됩니다.

모바일 및 데스크톱 웹사이트는 WebRedirect Authentication API를 따라야 합니다. Android 앱 흐름은 Android Authentication API 사양.

통합자는 Android APK 솔루션을 구현하여 사용자를 인증해야 합니다. 이 인증은 다른 형식이지만 목적은 인증은 웹 인증 및 인증에 대해 자세히 알아보세요.

사용자가 Android 활동. 인증 인텐트는 계정 연결 도중 그리고 있습니다. 다음에서 Android가 Play를 종료하지 못하게 하려면 통합 업체는 인증 과정 중에 확인할 수 있습니다.

<item name="android:windowIsTranslucent">true</item>

메서드 정의

인텐트에는 다음 속성이 있어야 합니다.

메서드 속성
작업 com.google.android.payments.standard.AUTHENTICATE_V1
카테고리 android.intent.category.DEFAULT

요청

필드
gspAuthenticationRequest AuthenticationRequest

인증 요청입니다.

gspAssociationId string

ID가 있는 경우 여기에는 통합업체가 데이터를 확인하는 데 사용하는 식별자가 포함됩니다. 사용자 인증 정보를 만들 수 있습니다 이것이 없는 경우, 사용자가 계정 ID를 변경할 수 있습니다.

응답

사용자가 인증을 완료하면 애플리케이션이 결과를 전송해야 합니다. Google에 다시 보냅니다. 인증에 성공하면 인텐트를 만들고 추가로 인코딩한 gspAuthenticationResponse를 추가합니다. 다음으로, 활동 결과를 적절한 결과 코드로 설정합니다.

...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();

결과

필드
결과 int

Activity.RESULT_OK
인증이 완료되었습니다.
Activity.RESULT_CANCELED 사용자가 흐름을 수동으로 취소했으며 흐름이 취소되어야 합니다.
Activity.RESULT_FIRST_USER 치명적인 이유로 인증에 실패했으며 흐름은 다음과 같아야 합니다. 중단됨. IE 서버가 로그인 시 HTTP 500 응답을 반환했습니다.

추가

필드
gspAuthenticationResponse AuthenticationResponse

인증 응답입니다. 이 인코딩된 값은 1KB를 초과할 수 없습니다.

기타 활동 요구사항

위에서 언급한 AUTHENTICATE_V1 작업을 지원하는 활동은 API 호출자가 Google이 서명한 애플리케이션에서만 온 것인지도 확인해야 합니다. 이렇게 하면 다른 앱이 활동을 호출하려고 하는 것을 방지하고 ID 토큰을 가져올 수 있습니다 이렇게 하려면 제공된 StandardPaymentUtils.verifyCallingActivityIsGoogleSigned super.onCreate 바로 다음에 활동 있습니다.

다음은 샘플입니다.


@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);

  ....
}

authenticate 흐름 내에서 호출된 모든 활동은 활동을 제공해야 합니다. windowIsTranslucent=true가 있는 테마입니다. 이 작업은 AndroidManifest android:theme 속성만 포함하고 Context.setTheme()를 사용하지 않습니다. 프로그래매틱 방식으로 테마 설정이 창에 제대로 작동하지 않음 있습니다. Google은 첫 번째 활동이 실행될 때 패턴에 해당하며 동시에 실행되는 모든 하위 활동도 학습합니다. 그렇지 않은 경우 서드 파티 개발자의 구매가 작동하지 않을 수 있습니다.