2016-05-10 12 views
2

Google In-app請求APIには本当に奇妙な問題があります。Googleアプリ内課金:定期購入の詳細を照会できません

利用可能なサブスクリプションの詳細を取得して、ローカライズ価格をUIに表示したいと考えています。私は指定したSKUの詳細を照会するためにIabHelperを使用していますが、結果には製品は含まれていませんが、サブスクリプションを購入した後、サブスクリプションをキャンセルしてアプリを再インストールしても機能します。

List<String> additionalSkus = new ArrayList<>(); 

    for (Subscription subscription : subscriptions) { 
     additionalSkus.add(subscription.getSku()); 
    } 

    iabHelper.queryInventoryAsync(true, additionalSkus, new IabHelper.QueryInventoryFinishedListener() { 
     @Override 
     public void onQueryInventoryFinished(IabResult result, Inventory inv) { 
      if (iabHelper == null || result.isFailure()) { 
       Log.i("subs", result.getMessage()); 
      } 

      for (Subscription subscription : subscriptions) { 
       SkuDetails skuDetails = inv.getSkuDetails(subscription.getSku()); 

       if (skuDetails != null) { 
        subscription.setLocalizedPrice(skuDetails.getPrice()); 
        Log.i("subs", subscription.getLocalizedPrice()); 
       } 

      } 
     } 
    }); 

私はすべてがアプリ内課金処理に関する権利設定している:

は、ここに私のコードです。私の製品はアクティブで、公開されているベータ版のAPKがあり、管理対象製品の詳細を取得して管理対象製品とサブスクリプションを購入することもできますが、これは機能しません。あなたがIabHelperクラスの最新版を使用している場合

答えて

4

、クエリへの追加のSKUに関連する関数の引数がmoreItemSkusPRODUCTのSKU)とmoreSubsSkusSUBSCRIPTIONSのSKU)に分割されていることに注意してください。あなたのケースでは

public void queryInventoryAsync(final boolean querySkuDetails, final List<String> moreItemSkus, 
     final List<String> moreSubsSkus, final QueryInventoryFinishedListener listener) 

私IabHelperクラス、唯一の同期queryInventory(ブール値、リスト、リストでそのような非同期メソッドはありませんでしたが、あなたの呼び出しは、助け

iabHelper.queryInventoryAsync(true, null, additionalSkus, new IabHelper.QueryInventoryFinishedListener() ... 
+0

おかげで、する必要があります)、私はこれを呼び出すために非同期メソッドを変更し、今は動作します。 –

関連する問題