Android 在应用购买中:BillingClient:getPurchase() 失败。响应代码:3
Android in app purchase: BillingClient: getPurchase() failed. Response code: 3
我正在使用 BillingClient api 在应用程序购买中实施 Android。
我成功设置了计费客户端,如下所示:
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
现在经过研究,许多人说这是来自旧的 phones,使用旧版本的 google 播放服务。但我使用的是最新的 phone (Pixel 3a)。此 phone 还在 google 游戏控制台中注册了 google 帐户以进行测试。
为什么我会收到这条消息?
此外,这真的是检查订阅是否仍然有效的正确方法吗?
我已经尝试了很长时间才找到这个解决方案,感谢您的帮助!
我犯了一个错误,将产品 ID 作为参数传递给查询请求。
这是我需要做的:
var list = billingClient.queryPurchases(SkuType.SUBS)
我正在使用 BillingClient api 在应用程序购买中实施 Android。
我成功设置了计费客户端,如下所示:
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
现在经过研究,许多人说这是来自旧的 phones,使用旧版本的 google 播放服务。但我使用的是最新的 phone (Pixel 3a)。此 phone 还在 google 游戏控制台中注册了 google 帐户以进行测试。
为什么我会收到这条消息?
此外,这真的是检查订阅是否仍然有效的正确方法吗?
我已经尝试了很长时间才找到这个解决方案,感谢您的帮助!
我犯了一个错误,将产品 ID 作为参数传递给查询请求。 这是我需要做的:
var list = billingClient.queryPurchases(SkuType.SUBS)