Android APK Top Up API

儲值作業可能會發生在三種不同的環境中:

  • 付款整合商的 Android 應用程式
  • 付款整合商的行動網站
  • 付款整合商的電腦版網站

無論流程為何,Google 都會將使用者與付款整合商的軟體交給 Google 處理。付款整合商會實作的 UI 對使用者來說很熟悉,但該流程必須專門用來補充使用者的餘額。也就是說,使用者應透過儲值程序儲值,而非導向一般用途 UI,以便使用者進一步前往儲值流程。

所有流程都會導致整合商產生 TopUpRedirectResponse。這個回應會經過簽署,然後傳回 Google。

行動版和電腦版網站必須符合 Web 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。這是在 AssociateAccountRequest 中連結帳戶時傳送的關聯 ID。

回應

使用者完成儲值流程後,應用程式需要將結果意圖傳回 Google。如果儲值成功,請建立意圖,並將經過加密的已編碼 gspTopUpResponse 和 redirectRequestId 新增為額外項目。接著,將活動結果設為適當的結果程式碼。

...
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

必要項目:儲值回覆。這個編碼的值不得超過 1 KB。
redirectRequestId string

必要項目:在原始/發起重新導向付款要求中傳送的 requestId。Google 會驗證是否與已傳送的 requestId 相符,若兩者不符,「完整重新導向」流程將會失敗。

其他活動要求

支援上述 TOPUP_V1 動作的活動也必須檢查 API 的呼叫端是否只來自 Google 簽署的應用程式。這有助於防止其他應用程式嘗試叫用您的活動及擷取使用者資料。方法是在 Activity 實作中的 super.onCreate 後方,使用提供的 StandardPaymentUtils.verifyCallingActivityIsGoogleSigned

範例如下:


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

  ....
}

在儲值流程中叫用的所有活動都必須提供含有 windowIsTranslucent=true 的活動主題。這項操作必須使用 AndroidManifest android:theme 屬性才能完成,請勿使用 Context.setTheme()。以程式輔助方式設定主題時,無法正確設定視窗透明度。Google 會強制啟動第一個活動符合此模式,但所有一併啟動的子活動也必須遵循此模式。否則,第三方開發人員可能無法購買你的產品。