问题标签 [play-billing-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1143 浏览

android - launchBillingFlow() 无法显示 Google Play 购买屏幕

我在我的应用中使用 Google Play 结算库。内部测试发布类型的应用发布。但是当我单击产品按钮时,launchBillingFlow() 无法显示 Google Play 购买屏幕。单击后,代码直接跟随块的“//DO SOMETHING AND RETURN MENU OPERATIONS”部分。我的应用程序配置行:首先在我的清单中有一个“com.android.vending.BILLING”。第二; 我的 gradle 文件有当前版本的计费库;“实施‘com.android.billingclient:billing:2.0.3’”。但我不知道为什么仍然无法显示购买屏幕。我的代码如下;

0 投票
1 回答
619 浏览

android - 将 google play 计费库更新到版本 2 不起作用,购买总是退款

我使用计费客户端 1.0.2 库有一个正常运行的 Android 实现应用内计费,一切正常。我有一个简单的高级升级,没有订阅。

现在我尝试升级到 2.0.3,我对我的代码进行了所有必要的更改(使用官方文档、发行说明和 StackOverflow)但它不起作用。我知道我必须在三天内确认所有购买。未能正确识别购买将导致这些购买的报销。这就是我所做的。

整个购买工作流程看起来不错,行为就像库更新之前一样。但最后我的购买总是在 5 分钟后退款(使用试用帐户,所以是 5 分钟而不是 3 天)。

这是在 onPurchasesUpdated 里面:

调试器执行识别,在 onAcknowledgePurchaseResponse 中,我可以看到我的 billingResult 响应代码为 5(开发人员错误),调试消息为空。而且我不知道出了什么问题。拜托,有人可以帮我找出缺少的东西。非常感谢!

0 投票
0 回答
536 浏览

android - 使用 Play 计费库暂停测试订阅时出现问题

我正在使用 Google Play 计费库 2.0.3

我正在订阅。我成功订阅了测试帐户。但是当我暂停订阅时出现问题。重现步骤:

  1. 在应用程序中,我订阅并acknowledgePurchase
  2. 在 Play 商店应用程序中,在订阅页面上,我单击暂停订阅并选择测试期 15 分钟
  3. 返回应用程序。在暂停期间 billingClient.queryPurchases(BillingClient.SkuType.SUBS)返回暂停的订阅。这个可以吗?当我尝试billingResult.responseCode = 5 (DEVELOPER_ERROR)通过 debugMessage 确认购买时“项目不归用户所有”。即使我的订阅已续订,也会在暂停期后发生同样的事情。

这种行为好吗?因为在下图中我们可以看到,在暂停期间计费库不应返回暂停的订阅。

截屏

谢谢

0 投票
1 回答
658 浏览

android - 使用 Google Play 结算,是否可以等到确认购买后才授予应用内购买的权利?

关于确认购买Google Play 结算库文档指出:

您必须在向用户授予权利后尽快确认通过 Google Play 结算库收到的所有具有成功状态的购买。

所以你的应用应该首先给用户他购买的东西,然后确认购买。这也是他们的示例代码所暗示的:

我目前正在开发一个 Android 应用程序,在该应用程序以 OK 状态返回确认后,我允许用户访问他们购买的内容(反之亦然):

因为文档指出:

...您必须在三天内确认所有购买。未能正确确认购买会导致这些购买被退款。

如果发生这种情况,并且用户得到了退款,那么用户对产品的权利也应该被撤销。但就我而言,进行购买意味着加载数据、在数据库中存储内容等等,而我没有,也不想拥有代码来恢复这一点。因此,我只有在成功确认后才向用户提供产品。

因此我的问题是:是否可以等到确认购买后才授予应用内购买的权利?或者我在这里错过了什么?我认为文档指定此顺序是有原因的,但他们没有详细说明。

0 投票
1 回答
1157 浏览

java - 如何正确实施 Google Play 结算库

因此,我正在尝试将Google Play 计费库实施到我的应用中,以便允许用户进行应用内购买。到目前为止,我觉得一切都很好,我已经很好地遵循了指南,但是最后一步让我感到困惑,我不知道如何BillingFlowParams更准确地实现我正在努力解决的问题setSkuDetails,我知道它说

通过调用 querySkuDetailsAsync() 检索“skuDetails”的值

但我不知道要在那里传递什么参数,我尝试查看文档,但这让我更加困惑。

这是我到目前为止所拥有的

0 投票
1 回答
619 浏览

android - querySkuDetailsAsync 回调从未被调用

我认为已正确遵循文档中的所有步骤,但我无法到达 querySkuDetailsAsync 的回调,没有报告错误。该应用程序与 IAB 一起正常工作,现在我只是从旧库迁移到新的 'com.android.billingclient:billing:2.0.3' 但有很多问题。另一个问题,在新库中也有必要使用 Play Console 中的 License Key 吗?我在新库中找不到有关使用它的文档。

我可以正确无误地到达这条线billingClient.querySkuDetailsAsync(params, (billingResult2, skuDetailsList) ->

Sku id 正确

此致

0 投票
1 回答
1402 浏览

in-app-purchase - 为什么不登录会导致错误“Google Play 应用内计费 API 版本低于 3”

当 Google Play 尚未登录时,运行BillingClient.startConnection()会导致 onBillingSetupFinished() 返回的BillingResult显示 billingResult.getDebugMessage():

Google Play In-app Billing API 版本低于 3

登录 Google Play 后,此错误就会消失。

有没有办法在这种情况下得到准确的错误?

0 投票
0 回答
212 浏览

in-app-billing - 在哪里可以找到 Google Play 结算库的最新文档?

Google Play 结算库的官方指南已于今天(2019 年 12 月 11 日)过时。文档中提到的许多 API 不再可用。例如,以下示例代码不再起作用:

最新方法定义:

BillingClient.BillingResponse不再存在。应该使用官方指南中未提及的BillingClient.BillingResponseCode

谁能提供最新指南的链接?从不推荐使用 AIDL的 Play Billing 迁移到 Google Play Billing Library 时,我必须非常小心。应用内购买错误很容易让用户感到不安,这是可以理解的。

我在用:

0 投票
1 回答
1045 浏览

android - 未调用 onPurchasesUpdated 等待购买成功

我已更新我的应用程序以使用 android play 计费库的 v2.1.0(来自早期的 2.0.1 版本),并且在完成待定购买后我不再收到购买更新。

我构建了我的计费客户端,将侦听器设置为当前类,实现PurchasesUpdatedListener

然后我开始购买并使用“几分钟后批准的慢速测试卡”

在这表明购买待处理之后,我的听众被调用:

但是,购买完成时不会调用此侦听器。我让应用程序保持打开状态,并在通知栏中看到来自 Play 商店的通知说购买成功。

如果我在收到此通知后手动查询购买,我可以获得更新的购买,但这似乎不是处理购买的有效方法。

有谁知道我做错了什么或者这个过程改变了?

0 投票
1 回答
161 浏览

android - Is it possible create one subscription across multiple apps?

I have two versions of my app:

  1. With ads

  2. Without ads.

And I have subscriptions in my app. I want to share one subscription across these apps. For example such a scenario:

The user buys a subscription in the app with ads and later he buys app without ads. I want to share the subscription in the first app to the second. Is it possible with the standard google billing library?