簡體   English   中英

將 google play 計費庫更新到版本 3,行為令人困惑

[英]Updating google play billing library to version 3 with confusing behavior

我有一個正常運行的 Android 實施應用內計費,使用計費客戶端 1.0.2 庫,一切正常。 我有一個簡單的高級升級,沒有訂閱。 現在我嘗試升級到 3.0.0,我對我的代碼進行了所有必要的更改(使用官方文檔、發行說明和 StackOverflow)並且它似乎可以工作。 我知道我必須在三天內確認所有購買。 未能正確識別購買將導致這些購買的報銷。 這就是我所做的。 現在讓我困惑的一點是:

我又一次測試了我的購買工作流程並調試了所有步驟以查看會發生什么。 在 BillingManager 的 handlePurchase 內部,我使用了以下代碼,靈感來自於官方文檔:

if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
    if (!purchase.isAcknowledged()) {

        AcknowledgePurchaseParams acknowledgePurchaseParams = AcknowledgePurchaseParams.newBuilder().setPurchaseToken(purchase.getPurchaseToken()).build();

        AcknowledgePurchaseResponseListener acknowledgePurchaseResponseListener = new AcknowledgePurchaseResponseListener() {
            @Override
            public void onAcknowledgePurchaseResponse(BillingResult billingResult) {
                Toast.makeText(getContext(), "Purchase acknowledged", Toast.LENGTH_LONG);
            }
        };

        mBillingClient.acknowledgePurchase(acknowledgePurchaseParams, acknowledgePurchaseResponseListener);
     }
}

在第二行中,“isAcknowledged()”始終返回 true(因此 if 語句返回 false),盡管方法“acknowledgePurchase”從未被調用,也永遠不會被調用……。 有人對此行為有解釋嗎? 怎么可能已經承認了呢? 這會導致這些購買的真實應用程序購買報銷嗎? 我只使用了一個試用帳戶。

非常感謝你的幫助!

我找到了問題中描述的行為的原因:

我之前使用相同的 Google 帳戶測試購買工作流程(雖然這是一個簡單的高級升級,沒有訂閱,但有一個簡單的技巧可以“消費”這次購買並再次重新購買以進行測試)並且導致它從返回“true” “已確認()”。

創建一個全新的 Google 帳戶並再次測試完整的工作流程后,一切正常,可以在調試模式下觀察確認購買的過程!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM