[英]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.