開發人員酬載

開發人員酬載以往已用於多種用途,包括防範詐欺行為和將購買交易歸因至正確的使用者。在 Google Play 帳款服務程式庫 2.2 以上版本中,原先仰賴開發人員酬載執行的預期用途,現在在程式庫的其他部分便完全支援。

在此情況下,我們已從 Google Play 帳款服務程式庫 2.2 版開始淘汰開發人員酬載。與開發人員酬載相關的方法已在 2.2 版中淘汰,並在 3.0 版中移除。請注意,針對使用舊版程式庫或 AIDL 完成的購買交易,應用程式可繼續擷取其開發人員酬載。

如需查看詳細的異動清單,請參閱 Google Play 帳款服務程式庫 2.2 版本資訊Google Play 帳款服務程式庫 3.0 版本資訊

購買交易驗證

為確保購買交易的真實性並防止偽造或重複,Google 建議使用購買憑證 (從 Purchase 物件的 getPurchaseToken() 方法取得) 以及使用 Google Play Developer API 驗證購買交易的真實性。 詳情請參閱打擊詐欺與濫用行為

購買交易歸因

許多應用程式 (尤其是遊戲) 都必須確認購買交易正確地歸因至遊戲內角色或虛擬化身,或者是發起購買交易的應用程式內使用者個人資料。自 Google Play 帳款服務程式庫 2.2 版起,應用程式可以在啟動購買對話方塊時將模糊化的帳戶和個人資料 ID 傳送至 Google,並在擷取購買交易時收到回應。

BillingFlowParams 中使用 setObfuscatedAccountId()setObfuscatedProfileId() 參數,並使用 Purchase 物件中的 getAccountIdentifiers() 方法擷取。

將中繼資料與購買交易建立關聯

Google 建議您將購買交易的相關中繼資料儲存在您所維護的安全後端伺服器上。此購買交易中繼資料必須與使用 Purchase 物件中的 getPurchaseToken 方法取得的購買憑證建立關聯。在購買成功後呼叫 PurchasesUpdatedListener 時,將購買憑證和中繼資料傳送至後端,即可保留這類資料。

為確保在購買流程中斷時中繼資料仍與購買交易相關聯,Google 建議您在啟動購買對話方塊之前,將中繼資料儲存在後端伺服器,並將其與使用者的帳戶 ID、購買時的 SKU 以及目前的時間戳記建立關聯。

如果購買流程在呼叫 PurchasesUpdatedListener 之前中斷,應用程式會在恢復執行並呼叫 BillingClient.queryPurchasesAsync() 後找到該筆購買交易。 接著,您可以透過 Purchase 物件的 getPurchaseTime()getSku()getPurchaseToken() 方法擷取相關值,傳送至後端伺服器來查詢中繼資料、將中繼資料與購買憑證建立關聯,並繼續處理購買交易。請注意,您最初儲存的時間戳記與 Purchase 物件的 getPurchaseTime() 值不會完全一致,因此需要以概略的方式加以比較。例如,您可以檢查這兩個值是否在彼此的特定時間範圍內。