android 如何判断我使用的是哪个版本的应用内付费

dsekswqp  于 2022-12-25  发布在  Android
关注(0)|答案(2)|浏览(191)

就我的用户而言,在Google Play中使用第2版和第3版应用内付费功能有区别吗?现在我在控制台中,以为我在使用第3版。但我看到了三个选项:托管、非托管、订阅。但是,版本3应该只有两个选项:托管和订阅。
我想我的API使用的是版本3,这正是我想要的。但是控制台让我很困惑。那么我如何确保我确实使用的是版本3呢?
这不是那么简单的原因是因为在版本3中,管理的商品一旦消费就可以重新购买;而在第二版中,管理商品是一生一次的,我希望从实际成功使用过第三版的人那里得到答案;所以我就不谈非托管商品了。谢谢。

wnavrhmk

wnavrhmk1#

应用内物品在版本2和版本3之间共享(即托管物品可以通过版本2或版本3的方式购买)。如果你想使用版本3(你应该使用,100%的时间),那么你需要确保你遵循了Implementing In-App Billing V3 Guide

zzwlnbp8

zzwlnbp82#

这个问题是~10岁,但我需要一个详细的有条不紊的方法来告诉应用内计费API/SDK/库的版本,这是由我的10岁以上的应用程序使用。
目前为止我发现的最相关的线索是:

  1. In-app Billing Version Notes:截至2012年12月,只有3个应用内付费版本:一、二、三
  2. Unity Forum:截至2021年1月,Google Billing Library v3仍然是最新和最好的。任何高于3的版本都是旧的命名约定。
  3. SO answer:* 应用内计费版本3提供了一个新的Android界面定义语言(AIDL)文件,名为IInAppBillingService. aidl *。
    我更想找的是我10多年前最后一次使用的版本,而不是目前Google支持(或反对)的版本,所以我用grep编辑了我的源代码,找到了以下参考:
protected Bundle makeRequestBundle(String method) {
  Bundle request = new Bundle();
  request.putString("BILLING_REQUEST", method);
  request.putInt("API_VERSION", 1);
  request.putString("PACKAGE_NAME", getPackageName());
  return request;
}

这暗示始终使用版本1。
另外,我在代码中使用的是IMarketBillingService.aidl,而不是IInAppBillingService.aidl。这意味着我的应用内计费功能已经过时了,我必须更新它才能跟上Google Play的步伐。
并且......自2022年11月起,必须使用版本4(或更新版本):

相关问题