标签: android-billing

Google Play 结算库:确定基本计划/订阅购买的到期日期

我正在使用 Google Play Billing Library 5,并且有一个具有不同基本计划的订阅产品。

PurchasesUpdatedListener在或 的回调中处理购买时queryPurchasesAsync,我会收到一个对象列表Purchase,其中包含产品 ID、购买时间以及是否自动续订等内容。

但我如何知道用户选择了哪个基本计划以及该计划何时到期?

返回PurchaseHistoryRecordqueryPurchaseHistoryAsync似乎也不包含此信息。

我知道 Play Developer API 使用 来返回过期时间purchases.subscriptionsv2.get,但是直接使用 API 带来的不便是否有必要?

android in-app-billing android-billing play-billing-library google-play-billing

20
推荐指数
1
解决办法
2838
查看次数

应用内购买:获取要求购买的Google Play帐户的名称或ID

我想获得购买用户的名称/ ID.AccountManager如果可能的话,我想不这样做,因为它的使用需要额外的许可.即使AccountManager我没有看到确定当前账户的方法,所以欢迎任何建议.

android in-app-billing android-account google-play android-billing

19
推荐指数
1
解决办法
4151
查看次数

为什么 Android BillingClient v2 慢信用卡测试永远不会取消?

我正在为非消耗性应用内购买实施新的 BillingClient 库 (v2.1.0)。我正在测试与测试用户的待处理交易。它适用于“信用卡在几分钟后批准”,但对于“信用卡缓慢,几分钟后拒绝”,购买状态始终处于待处理状态(在 Play 管理中心显示为取消后等待数小时)。

为了检索购买状态,我调用文档中的mBillingClient.queryPurchases(BillingClient.SkuType.INAPP)状态

有没有人遇到过这个问题?这是开发环境问题还是最终用户也会发生这种情况?

谢谢!

android in-app-billing android-billing

16
推荐指数
1
解决办法
1224
查看次数

无法在 Play 商店中禁用 Android 订阅的重新订阅

长话短说

为什么我们的用户可以在 Play 商店上重新订阅,尽管在 Google Play 控制台上选择退出?


我们正在 Android 应用程序上实现订阅。我们已将“重新订阅”选项选择为“未启用”。

然而,当我们通过取消订阅并等到上一个订阅过期后进行测试时,用户可以选择在一段时间内直接从 Play 商店而不是应用程序重新订阅(“应用程序外”)购买”),然后他们以前的订阅完全消失。

当发生这种情况时,我们的 BE 会收到通知,但没有任何有关用户身份的信息,因为这是一次全新的购买,因此我们的 BE 不知道哪个用户有权重新订阅计划。

我要指出的是,我们不想依靠我们的移动应用程序来拦截此购买并更新我们的后端 - 因为订阅也会影响我们网站上的权利,并且我们不确定我们的应用程序下次何时启动。

这个“重新订阅”选项已在我们的 Google Play 开发控制台上被禁用,并且它似乎在约 1-3 小时后消失(在测试环境中),但在这段时间内,我们无法阻止用户“重新订阅”在 Play 商店中订阅”

android android-billing android-developer-api google-developers-console

16
推荐指数
1
解决办法
1092
查看次数

更新后的应用结算中无法使用 - Google商店

我已在我的应用中实施了应用内结算 - 最近谷歌已对其进行了更新,之前我正在测试应用内结算"android.test.purchased"并且工作正常(购买完整版和恢复完整版).

现在我从这里接受了更改的课程 https://code.google.com/p/marketbilling/source/detail?r=7bc191a004483a1034b758e1df0bda062088d840

之后,我无法测试应用程序,它在Logcat中给出以下错误 "IabHelper: In-app billing error: Purchase signature verification FAILED for sku android.test.purchased ".

我已经检查了我的密钥,包名和app版本都是正确的,有没有人遇到过这个问题?

请帮我解决一下这个.

android billing in-app-purchase in-app-billing android-billing

15
推荐指数
2
解决办法
1万
查看次数

Android结算库错误

大家.
我刚开始在应用程序中购买应用程序.
这对我来说是新事物.
现在我在网上看到了一些例子,我发现在将结算库链接到它之前,github上的一个项目充满了错误.
当我这样做时,我刚解决了项目中的错误,但仍然有一个感叹号红色标记,因为android计费库包有错误.
我检查了错误,但我无法解决它,因为我不明白如何.
拜托,伙计们,我真的需要一些帮助.

我在这些行中得到了错误

    @Override 
    public android.os.IBinder asBinder()
    {
        return this;
    }
Run Code Online (Sandbox Code Playgroud)

在asBinder中的错误和它的说法"在这一行的多个标记

- The method asBinder() of type IMarketBillingService.Stub must override a superclass method  
- implements android.os.IInterface.asBinder"
Run Code Online (Sandbox Code Playgroud)

与此代码相同,我也收到错误

    @Override
    public android.os.Bundle sendBillingRequest(android.os.Bundle bundle) throws android.os.RemoteException     
    {
        android.os.Parcel _data = android.os.Parcel.obtain();
        android.os.Parcel _reply = android.os.Parcel.obtain();
        android.os.Bundle _result;
        try {
            _data.writeInterfaceToken(DESCRIPTOR);
            if ((bundle!=null)) {
                _data.writeInt(1);
                bundle.writeToParcel(_data, 0);
            } else {
                _data.writeInt(0);
            }
            mRemote.transact(Stub.TRANSACTION_sendBillingRequest, _data, _reply, 0);
            _reply.readException();
            if ((0!=_reply.readInt())) 
            {
                _result = android.os.Bundle.CREATOR.createFromParcel(_reply);
            } else {
                _result …
Run Code Online (Sandbox Code Playgroud)

android android-library android-billing

13
推荐指数
1
解决办法
1425
查看次数

标识用户的令牌

我正在开发一个Android应用程序,我希望该应用程序的某些功能不是免费的.

我曾考虑过使用应用内Billing Version 3 API,因此我在开发者控制台中定义了"应用内商品".

阅读文档后,我知道当我开始购买流程时,我应该传入一个字符串令牌,帮助应用程序唯一地识别进行购买的用户.

但是我如何获得识别用户的字符串标记?

谢谢

android billing in-app-purchase in-app-billing android-billing

13
推荐指数
1
解决办法
1万
查看次数

无法解析“ImmutableList”中的“of”方法

调试详细信息:按照从 Android Billing 4.0 迁移到 5.0 的教程https://developer.android.com/google/play/billing/migrate-gpblv5,特别是“显示可供购买的产品”部分 ImmutableList 中的“of”被标记为红色,Android Studio 中的错误是

无法解析“ImmutableList”中的“of”方法”

我该如何解决?

获得编译错误的最小可重现代码:

QueryProductDetailsParams queryProductDetailsParams =
        QueryProductDetailsParams.newBuilder()
                .setProductList(
                        ImmutableList.of(
                                QueryProductDetailsParams.Product.newBuilder()
                                        .setProductId(PREMIUM_MONTHLY_VERSION_ID)
                                        .setProductType(BillingClient.ProductType.SUBS)
                                        .build()))
                .build();
Run Code Online (Sandbox Code Playgroud)

以下是具体细节:

期望的行为:代码编译良好。

具体问题或错误:编译错误。

java android android-billing

13
推荐指数
1
解决办法
5718
查看次数

如何从开发人员控制台中的产品列表中删除订阅以及它对旧订阅用户的影响是什么?

我想从产品列表中删除现有订阅产品.

我怎么能这样做,因为我没有在我的开发者控制台上找到删除订阅的任何选项?

此外,如果以任何可能的方式允许,那么当他们在与Google Play通信时从他们的应用程序呼叫RESTORE_TRANSACTION时,它是否会对已购买该订阅的现有用户产生任何影响?

android subscription in-app-billing android-billing

12
推荐指数
2
解决办法
9245
查看次数

Android 应用内结算:已退款的应用内购买未取消

我在测试应用内结算时遇到问题。
(使用 Google Play In-app Billing Version 3 API)

问题

退款的应用内购买仍然存在于购买列表中,由 提供BillingClient.queryPurchases()

当我在 1 月份尝试退款时,退款的商品从购买清单中消失了。

我做了什么

  1. 购买了一些物品作为测试人员。
    (我很确定一个对话说这是一个测试购买。)
  2. 之后在 Google Play Console 中退款。
  3. 等到他们的付款状态变成“已退款”。
  4. 清除 Google Play 服务和 Google Play 的缓存。
  5. BillingClient.queryPurchases()在我的应用程序中检查了我的购买提供。
  6. 等了几天。重新安装了我的应用程序。他们都没有工作。

最小校验码

private val client: BillingClient // provided

fun check() {
    // client.startConnection() already completed here
    client.queryPurchases(BillingClient.SkuType.INAPP)
        .run {
            purchasesList
                .map     { it.originalJson }
                .forEach { Log.d("billing", "json = $it") }
        }
}
Run Code Online (Sandbox Code Playgroud)

我想做什么

我想取消我所有的测试购买。

有没有人有什么建议?先感谢您。

android google-play android-billing google-play-services play-billing-library

12
推荐指数
1
解决办法
4125
查看次数