Android APK Top Up API

충전은 다음 세 가지 환경에서 발생할 수 있습니다.

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

Google은 절차와 관계없이 사용자 상호작용을 결제팀에 넘겨줍니다. 소프트웨어입니다 결제 통합업체가 익숙한 UI를 구현합니다. 하지만 이 흐름은 사용자의 잔액. 충전 절차를 통해 사용자를 안내해야 함 범용 UI에 삽입하지 않고 충전 흐름으로 더 이동합니다

모든 흐름은 통합업체에서 TopUpRedirectResponse. 이 응답은 서명 및 전송되었습니다. Google로 되돌립니다.

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

통합자는 Android APK 솔루션을 구현하여 사용자를 인증해야 합니다. 잔액을 충전할 수 있는 흐름을 안내합니다. 이 잔액 충전은 다른 형식이지만 웹 잔액 충전.

사용자가 결제 통합업체 앱의 결제 흐름에 들어가는 Android 활동. 충전 인텐트는 사용자가 있는 Play 앱에서 직접 호출할 수 있습니다. 사용자의 의도를 보여줍니다. 다음에서 Android가 Play를 종료하지 못하게 하려면 충전하는 동안 통합업체는 다음을 포함해야 합니다. 알 수 있습니다.

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

메서드 정의

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

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

요청

필드
gspTopUpRequest TopUpRedirectRequest

충전 요청

gspAssociationId string

통합업체가 사용자 인증 정보를 조회하는 데 사용하는 식별자가 포함됩니다. 사용자가 충전 중인 계정의 ID입니다. 연결 ID AssociateAccountRequest에서 계정 연결 중에 전송됩니다.

응답

사용자가 충전 흐름을 완료하면 애플리케이션에서 결과 인텐트를 Google로 전송합니다. 충전이 성공하면 인텐트를 만들고 암호화된 gspTopUpResponse 및redirectRequestId를 Extra로 추가합니다. 다음으로 활동 설정 결과를 적절한 결과 코드에 추가합니다.

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

결과

필드
결과 int

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

추가

필드
gspTopUpResponse TopUpRedirectResponse

필수: 충전 응답. 이 인코딩된 값은 1KB를 초과할 수 없습니다.
redirectRequestId string

필수: 원래 리디렉션 결제 요청에서 전송된 requestId입니다. Google은 이 URL이 전송된 requestId와 일치하는지 확인하며, 일치하지 않으면 전체 리디렉션 흐름이 실패합니다.

기타 활동 요구사항

위에서 언급한 TOPUP_V1 작업을 지원하는 활동은 API 호출자가 Google이 서명한 애플리케이션에서만 온 것인지도 확인해야 합니다. 이렇게 하면 다른 앱이 활동을 호출하려고 하는 것을 방지하고 사용자 데이터를 검색할 수 있습니다. 이렇게 하려면 제공된 StandardPaymentUtils.verifyCallingActivityIsGoogleSigned 바로 뒤 super.onCreate 활동 있습니다.

다음은 샘플입니다.


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

  ....
}

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