在应用程序购买中:两个具有相同帐户的设备未获得相同的购买项目

时间:2017-03-24 05:55:11

标签: android in-app-billing

我在尝试什么?

在一台配置了X电子邮件地址的Android设备中购买商品。当我签入另一台配置了相同电子邮件地址的设备时。但在第一台设备上购买的商品无法在其他设备上使用。

我尝试了什么?

我尝试过使用:

inappBillingService.getPurchases(InAppBuyActivity.INAPPVERSION,
                    getPackageName(), "inapp", null);

并尝试使用:

IabHelper.QueryInventoryFinishedListener mGotInventoryListener
   = new IabHelper.QueryInventoryFinishedListener() {
   public void onQueryInventoryFinished(IabResult result,
      Inventory inventory) {

      if (result.isFailure()) {
        // handle error here
      }
      else {
        // Not getting same purchased on both devices
      }
   }
};

我正在生成已签名的apk,其版本名称和版本代码与Playstore版本相同。

2 个答案:

答案 0 :(得分:0)

应用内结算版本3 API可让您更轻松地将应用内结算功能集成到您的应用中。此版本中的功能包括改进的同步购买流程,API,可让您轻松跟踪耗材的所有权,以及本地缓存应用内购买数据。

<强> 1。如果您使用过耗材,请检查您的密码

如果您使用耗材,用户可以多次购买产品,Google商店只会购买一次购买详情并再次获得空白回复,请从您的应用中删除与耗材相关的代码。

<强> 2。使用以下代码检查用户已购买的商品

(flatten [[{} {} {}] [{} {} {}]]) ;; => ({} {} {} {} {} {})

在购买项目之前使用上述逻辑,如果项目未购买,则调用应用程序内的getPurchases(),否则隐藏或管理应用内视图。

答案 1 :(得分:0)

我使用两台设备测试了该应用。反映购买需要一些时间。

如果我删除该应用并重新安装为新的,那么新购买的商品就在那里。但是,如果我购买一件商品并同时在第二台设备上进行检查,则不会反映在那里。

应用程序显示用户尝试购买时已在第二台设备中购买的商品。但是,它在inappBillingService.getPurchasesIabHelper.QueryInventory中无法使用。