충전은 다음 세 가지 환경에서 발생할 수 있습니다.
- 결제 통합업체의 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
|
추가
필드 | |
---|---|
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은 첫 번째 활동이 실행될 때
패턴에 해당하며 동시에 실행되는 모든 하위 활동도
학습합니다. 그렇지 않은 경우 서드 파티 개발자의 구매가 작동하지 않을 수 있습니다.