gpt4 book ai didi

android - 尝试使用 getBuyIntentExtraParams 升级订阅的 IAP Android 问题不返回 BUY_INTENT 键

转载 作者:行者123 更新时间:2023-11-30 00:33:10 27 4
gpt4 key购买 nike

在 Android 上,我想弄清楚如何在应用程序购买中升级我的订阅。因此,假设我有 3 个订阅类型第 1、2 和 3 层。我使用此方法 getBuyIntent 购买了我的第一个订阅层 1,然后此方法返回一个包含 RESPONSE_CODE key 和 BUY_INTENT key 的 bundle 。

然后我用那个包做了一个 bundle.getParcelable("BUY_INTENT");它返回一个 PendingIntent,一切都很好。

但是当我想从第 1 层升级到第 2 层时,我需要根据此 https://developer.android.com/google/play/billing/billing_reference.html#getBuyIntent 使用此方法 getBuyIntentExtraParams

当我使用 getBuyIntentExtraParams 时,返回的包不包含 BUY_INTENT 键,但它返回 INAPP_PURCHASE_ITEM_LIST、INAPP_PURCHASE_DATA_LIST 和 INAPP_DATA_SIGNATURE_LIST 键。

INAPP_PURCHASE_ITEM_LIST = ["product.id.name.tier1"]

所以看起来 getBuyIntentExtraParams 似乎正在返回您已经购买的东西。这与方法 getPurchases() 非常相似。

我不能对这个包执行 bundle.getParcelable("BUY_INTENT"),因为它没有这个 key 。我注意到在谷歌文档中它说 getBuyIntentExtraParams 是 getBuyIntent 的一个变体,所以我假设 getBuyIntentExtraParams 应该返回一个 BUY_INTENT 键。

所以我想知道我应该怎么做才能正确使用这个方法?我注意到谷歌有一个关于文档的问题:https://issuetracker.google.com/issues/37140925

这是我的代码:

ArrayList skus = new ArrayList();

skus.add("product.id.name.tier1");

Bundle extraBundle = new Bundle();

extraBundle.putStringArrayList("skusToReplace", skus);

getBuyIntentExtraParams(7, "app.package.name", "subs", "product.id.name.tier2", DEVELOPER_PAYLOAD, extraBundle);

请注意根据文档,第三个参数“subs”应该位于第四个参数“product.id.name.tier2”所在的位置,反之亦然。但是当我这样做时,它会提示并说它不知道 product.id.name.tier2 是什么项目类型。所以我认为文档不正确。

PS: 我也试过把 6 而不是 7 (api 版本) 没有运气

我想我的主要问题是如何以不同于 getBuyIntent 的方式使用 GetBuyIntentExtraParams?

顺便说一句,我正在使用 sdk min 和目标 19。

我还注意到我在我的 InAppBillingService.aidl 文件中没有看到这个isBillingSupportedExtraParams。

更新:

我将其添加到我的 InAppBillingService.aidl 文件中:

Bundle getBuyIntentToReplaceSkus(int apiVersion, String packageName,in List oldSkus, String newSku, String type, String developerPayload);

然后我调用它而不是 getBuyIntentExtraParams 并且成功了!

我只是想知道这是正确的调用方法吗?

最佳答案

为了回答有关如何使用 getBuyIntentExtraParams 的原始问题,我发现您需要从 google 复制实际的 aidl 文件并替换您的 aidl 文件。不要复制 google 的 aidl 中的代码并替换您的代码。

来自谷歌的最新 aidl 文件:https://github.com/googlesamples/android-play-billing/blob/0154723d8c97011fb5ce0163d55b496cb5ebccb7/TrivialDrive/app/src/main/aidl/com/android/vending/billing/IInAppBillingService.aidl

关于android - 尝试使用 getBuyIntentExtraParams 升级订阅的 IAP Android 问题不返回 BUY_INTENT 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43923586/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com