【问题标题】:Android In app Subscription not workingAndroid应用内订阅不起作用
【发布时间】:2013-04-10 06:37:29
【问题描述】:

我正在使用应用内订阅在 android 中开发应用。我正在尝试使用 IabHelper.QueryInventoryFinishedListener 查询我的购买项目。但它总是以失败的结果出现。 IabResult 返回失败。我在开发者控制台中添加了应用产品。有人可以帮我吗?

这是我的一些代码,

bindService(new  Intent("com.android.vending.billing.InAppBillingService.BIND"),
                        mServiceConn, Context.BIND_AUTO_CREATE);

String base64EncodedPublicKey = "my key";                                        

mHelper = new IabHelper(this, base64EncodedPublicKey);
        mHelper.enableDebugLogging(true);
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
               public void onIabSetupFinished(IabResult result) {
                  if (!result.isSuccess()) {
                      System.out.println("Not Success");                      
                     Log.d("In APP Billing", "Problem setting up In-app Billing: " + result);
                     return;
                  } else {
                      System.out.println("Success");
                      Log.d(" In APP Billing", "Setting up In-app Billing Success: " + result);
                  }

                  List<String> additionalSkuList = new ArrayList<String>();
                  additionalSkuList.add(SKU_ID);                  

                  mHelper.queryInventoryAsync(true, additionalSkuList,
                           mQueryFinishedListener);

               }


});     

    IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {

        @Override
        public void onQueryInventoryFinished(IabResult result, Inventory inv) {
            // TODO Auto-generated method stub

            if (result.isFailure()) {
                 // handle error
                System.out.println("mQueryFinishedListener is Failure"); // i am always getting this
                 return;
            }
            System.out.println("mQueryFinishedListener is Success");


            Boolean hasPur = inv.hasPurchase(SKU_ID);

            if (hasPur) {
                System.out.println("Query - - subscribed ");
                isSubscribed = true;
            } else {
                System.out.println("Query - not subscribed ");
                isSubscribed = false;
            }

            System.out.println("Purchase panic:"+inv.getPurchase(SKU_ID));

        }
};

知道为什么它不起作用吗?提前致谢。

【问题讨论】:

  • 对不起,我验证了我的答案并认为它是错误的。你在什么设备上测试你的代码?您确定设备上的 Google Play 支持 IAB V3(半年前推出)吗?
  • 我正在使用银河 y。它在 2 天前工作。我现在改变了一些编码。但我不确定这一点。由于某些原因,它无法正常工作。
  • 哪个调用完全失败了?你会得到哪个状态码?
  • IabHelper.QueryInventoryFinishedListener 有一个方法 onQueryInventoryFinished。我在这个方法中得到了 result.isFailure()

标签: android in-app-billing subscription


【解决方案1】:

要使用应用内订阅,我认为您将在您创建的 IabHelper 实例上调用“launchSubscriptionPurchaseFlow()”方法。

    mHelper.launchSubscriptionPurchaseFlow(Activity act, String sku, int requestCode,
        OnIabPurchaseFinishedListener listener, String extraData);

mHelper.launchPurchaseFlow(Activity act, String sku, String itemType, int requestCode,
                OnIabPurchaseFinishedListener listener, String extraData);

其中 itemType = IabHelper.ITEM_TYPE_SUBS

【讨论】:

    猜你喜欢
    • 2012-12-02
    • 2020-09-26
    • 2021-04-11
    • 2016-03-17
    • 2014-02-15
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多