Android APK Top Up API

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

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

無論流程為何,Google 會將使用者互動給付款 與整合商的軟體付款整合商導入了熟悉的 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 與要更新的帳戶搭配使用這是連結 ID 與 AssociateAccountRequest 中帳戶連結時傳送的識別碼。

回應

使用者完成儲值流程後,應用程式需要傳送 傳回 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 簽署的應用程式。 這可防止其他應用程式嘗試叫用您的活動, 擷取使用者資料。只要使用我們提供的 之後價格為 StandardPaymentUtils.verifyCallingActivityIsGoogleSigned super.onCreate在您的 活動

範例如下:


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

  ....
}

在儲值流程中叫用的所有活動都必須提供一個活動 含有 windowIsTranslucent=true 的主題。請務必透過 AndroidManifest android:theme 屬性,但未使用 Context.setTheme()。 透過程式輔助方式,無法在視窗中正常設定主題 缺乏Google 將在收到要求後 模式,但同時啟動的所有子活動也必須符合此 。如果不正確,就可能無法使用第三方開發人員的購買交易。