问题标签 [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 投票
0 回答
780 浏览

play-billing-library - 如何解决“API 操作期间出现致命错误”(响应代码 6)

我已经实现了 Play 计费库,总体而言非常成功 - 但似乎有一些购买(或获取可用产品)调用失败,响应代码为 6(API 操作期间出现致命错误)。

没有提供其他信息,并且大多数调用都成功了,所以这不是我完全做错了什么的问题。如何解决此问题?有没有办法知道是什么导致了这个错误?

0 投票
1 回答
2099 浏览

android - How do i generate refresh and access token for Google Play Developers API

My goal is to validate user purchases on google server as described here > Purchases.products: get

but i need to authorise the request > Authorisation Documentation

According to Google Play Developer API Authorization Doccumentation in order to generate access and refresh token :

"... sending a POST request to https://accounts.google.com/o/oauth2/token with the following fields set:

A successful response will contain your tokens in JSON format:

"

i successfully generated code, client_id, client_secret, redirect_uri from console.developers.google.com but when i send the POST request

https://accounts.google.com/o/oauth2/token?grant_type=authorization_code&code=my_generated_codeA&client_id=generated_client_id&client_secret=generated_client_secret&redirect_uri=my_redirect_uri

i get the the following response when i used Postman:

with status code = 400

i get the the following response when i used Chrome :

How can i get the right response?

0 投票
1 回答
811 浏览

android - 找不到图书馆 Google Play 计费或附加功能

可参考的链接,但对我不起作用:

我正在使用 Android Studio 3.1.2

我正在尝试在此 Studio 中查找Google Play 结算库,但没有找到。

我也将库放在 build.gradle(app) 中:

Gradle 构建成功,但未在 SDK 管理器中显示 Google Play 计费库

请参见下面的 SDK 管理器对话框截图:

在此处输入图像描述

下面是build.gradle(app)

0 投票
3 回答
1173 浏览

android - 检查应用内订阅是否在我的无服务器 android 应用中处于活动状态

我有一个功能简单的无服务器安卓应用程序:如果用户有一些应用内订阅(自动更新),那么他可以在应用程序中使用功能,否则没有。我知道,如何通过获取订阅信息(价格、标题等)和致电付款来发挥作用。但我无法检查当前用户是否有活动(未取消)订阅。我在许多网站和教程上阅读了很多信息,并且写到我必须在我的服务器中使用 google API。但是我没有自己的服务器。我为应用内订阅使用了两个不同的库:

但没有人帮我检查用户是否有活动订阅。那么,如何完成这个任务呢?请帮助我,也许我错过了一些信息......

0 投票
1 回答
286 浏览

android - 购买交易失败或取消时,Google Play 结算库未提供 orderId,但它会出现在控制台中

我已将 Play Billing Library 集成到我的 android 应用中。即使某些交易失败或用户取消它,我也需要获取 orderId。

上述方法仅在失败/取消情况下返回 resultCode,购买为空值。

但在游戏控制台中,我可以看到 purchase orderId 、 time 等:https://play.google.com/apps/publish/?account=xxxxxx#OrderManagementPlace

有人可以帮助我如何获取 orderID 字段吗?

0 投票
1 回答
307 浏览

android - 计费库 PurchasesResult 不包含订阅的 expiryTimeMillis,没有实时通知如何获取?

所以我已经使用 Google Play Billing Library 实现了订阅购买,但问题是在购买后查询购买 PurchasesResult 和 Purchase 不包括这个关键字段 - expiryTimeMillis。我对订阅的实时通知不感兴趣,所以我不想实现它。

在未启用实时开发人员通知的情况下,是否有其他方法可以获取此订阅值?

0 投票
0 回答
220 浏览

android - Google Play 账单在 Api 级别低于 19 时崩溃

根据谷歌的文档,谷歌播放计费应该适用于 API 8 及更高版本,但不起作用。

https://developer.android.com/google/play/billing/billing_overview

我从他们的 github 实现了基本指南:
https ://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive_v2

然后我删除了我不需要的所有内容,保留核心并传输到我的真实应用程序

在我的测试中一切似乎都运行良好,但是当我部署到生产环境时,甚至在加载第一个活动之前,在应用程序初始化期间,就会启动大量崩溃:

失败的方法是:

这种方法是来自谷歌示例的复制/粘贴,我这边没有修改,甚至变量重命名......

我的类本身甚至不导入异常中提到的缺失类,com.android.org.conscrypt.OpenSSLRSAPublicKey所以这意味着这个类被谷歌的一些内部 api 调用使用,并且不包含在可导入的包中

implementation 'com.android.billingclient:billing:1.1'

我的问题是如何在 android api lvl 15 - 18 上使用谷歌计费(我的应用程序最低 api 级别为 15)?

我可以导入的最小包是什么,以便提供所有需要的类,因为谷歌没有?

我检查了 maven,conscrypt 包本身是 5MB ......我不愿意导入 5MB 的 api,因为我的整个 APP 是 5MB 我会把它放大两倍,它没有意义,因为如果还有任何设备使用 android 4.3 或更早版本,它是一个资源非常有限的设备,拥有这么大的 apk 是不合理的

===========更新==============

我导入了评论中提到的依赖项,但我仍然遇到同样的异常

0 投票
1 回答
2411 浏览

android - 使用 Billing API 取消 Google Play 订阅?

有没有办法通过 Google Play Billing API 取消订阅,特别是使用 BillingClient,或者我必须通过 Google Play Developer API 来取消订阅?您不能以与订阅相同的方式取消订阅,这似乎违反直觉,但我找不到解决方法。请帮忙。

0 投票
1 回答
288 浏览

java - 在 Google Play 结算购买验证的 OAuth2 授权代码发布请求上获得无效授权

我正在尝试按照Google-Play-Billing 文档的建议在后端实施购买验证。遵循此用于订阅购买验证的文档,它告诉我必须使用我的 android 应用程序包名称subscription_id购买令牌向该 URL ( Purchase.subscriptions: get ) 发出获取请求。但是,在我可以向该 URL 发出 get 请求之前,我必须授权我的后端服务器处理 API 请求。因此,按照该文档中的链接到此处,我开始执行这些步骤。我创建了一个OAuth 2.0 客户端 ID,然后通过转到浏览器中的下一个 url 生成初始刷新令牌。我的client_id设置为我刚刚生成的OAuth 2.0 客户端 ID,我的redirect_uri设置为urn:ietf:wg:oauth:2.0:oob,这是我从我从Google API Console下载的 JSON 文件中收到的。我成功检索了我的初始刷新令牌并将其放入我的后端代码中。

现在的目标是在我的 android 应用程序中成功购买,然后使用必要的参数向我的后端发送一个发布请求。这部分工作得很好。但是,在执行授权文档的后续步骤时,它说“通过发送 POST 请求来交换此代码以获取访问和刷新令牌对... ”以获取我的access_code,我设置了字段对于文档所说的将字段设置为的内容,但我的请求以 400 错误的形式返回,并显示错误消息:“ invalid_grant ”。我不明白为什么我会收到此错误。

这是我的帖子请求代码:

请帮忙!

0 投票
1 回答
596 浏览

android - 使用 Google Play 计费库的 IllegalStateException

我在使用 Google Play 计费库时遇到 IllegalStateException:com.android.billingclient:billing:1.1。

此异常仅在某些特定情况下有时会发生。例如:对于每 500 次安装,我们得到 4 个错误。我们无法在本地重现此问题。

这是堆栈跟踪:

任何线索,是什么导致了这个异常?