簡體   English   中英

應用程序購買中的 Android:BillingClient:getPurchase() 失敗。 響應碼:3

[英]Android in app purchase: BillingClient: getPurchase() failed. Response code: 3

我在應用程序購買中實施 Android,使用 BillingClient api。

我成功設置了計費客戶端,如下所示:

   billingClient = BillingClient.newBuilder(this)
        .enablePendingPurchases()
        .setListener(this).build()

我實現了我想要進行應用內購買的代碼,在我的例子中是訂閱。

我的問題如下,我需要(定期)檢查用戶是否仍有活動訂閱,或者他們是否取消了訂閱。 根據我閱讀的內容,我可以調用該方法 queryPurchases(PRODUCT_ID)。 我這樣做如下:

 override fun onBillingSetupFinished(billingResult: BillingResult?) {
            if (billingResult != null) {

                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK){

                    // The BillingClient is ready. You can query purchases here.

                    Log.d(TAG_PURCHASES_ACTIVITY, "BillingClient ready and connected")

                    billingClient.queryPurchases(MONTHLY_AGENT_SUBSCRIPTION_PRODUCT_ID)

                }

                else{
                    Log.d(TAG_PURCHASES_ACTIVITY, "BillingClient ERROR: ${billingResult.responseCode}")
                }



            }
        }

但是,我在控制台中收到此消息:

W/BillingClient: getPurchase() failed. Response code: 3

現在經過研究,許多人說這是來自舊手機,帶有舊版本的 google play 服務。 但我使用的是最新的新手機(Pixel 3a)。 這款手機還有在google play console注冊的google賬號進行測試。

為什么我會收到此消息?

另外,這真的是檢查訂閱是否仍然有效的正確方法嗎?

我已經嘗試了很長時間才能找到這個解決方案,感謝您的幫助!

我犯了一個錯誤,將產品 ID 作為參數傳遞給查詢請求。 這是我需要做的:

var list = billingClient.queryPurchases(SkuType.SUBS)

暫無
暫無

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

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