【问题标题】:In app billing issue应用内结算问题
【发布时间】:2015-04-27 22:19:59
【问题描述】:

我正在尝试在应用购买中实施,但几天来一直遇到问题。当用户尝试进行购买时,它是成功的,但该应用程序给出了一个奇怪的错误,该错误显然可以追溯到 os build honeycomb 这会阻止用户在再次单击购买按钮之前收到购买。

步骤:

购买

购买成功

不提供消耗品

再次点击购买按钮

消耗品给定

这是我在未提供消耗品时遇到的错误:

日志标签:芬斯基

日志消息 [1] 1.run:缺少 inapp:com.mybillingproblem:one_chip 的交付数据

PID/TID:26927

代码:

public void oneChip(String noVal) {
    Log.v("oneChip", "Calling launch purchase flow");
    bp.purchase(this, itemOne);
    Log.v("oneChip", "made it through launch purchase flow");
}

    bp = new BillingProcessor(this, base64EncodedPublicKey,
            new BillingProcessor.IBillingHandler() {

                @Override
                public void onBillingInitialized() {
                    Log.v("chip", "billing initialized");
                    readyToPurchase = true;
                }

                @Override
                public void onProductPurchased(String productId,
                        TransactionDetails details) {
                    Log.v("chip", productId + " purchased");
                    if (bp.consumePurchase(productId)) {
                        if (productId == "itemOne"
                                || productId == "one_chip")
                            ChipUpdate.updateChipCount(2500);
                    }
                }

                @Override
                public void onBillingError(int errorCode, Throwable error) {
                    Log.v("chip", "Error code: " + errorCode);
                    Log.v("chip", "Error: " + error);
                }

                @Override
                public void onPurchaseHistoryRestored() {
                    for (String sku : bp.listOwnedProducts())
                        Log.v("chip", "Owned Managed Product: " + sku);
                    for (String sku : bp.listOwnedSubscriptions())
                        Log.v("chip", "Owned Subscription: " + sku);
                }

            });

注意:我使用的是应用内计费 v3 jar。我认为这不是问题,因为它已被推荐并且似乎是常用的包装器。

谢谢!

【问题讨论】:

    标签: android google-play in-app-billing


    【解决方案1】:

    您的 Activity 的 onActivityResult() 是什么样的?你是否有一个? 通常你将结果传递给 IabHelper 的 handleActivityResult

    像这样:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        // Pass on the activity result to the iab helper for handling
        if (!mHelper.handleActivityResult(requestCode, resultCode, data))
        {
          // not handled, so handle it ourselves (here's where you'd
          // perform any handling of activity results not related to in-app
          // billing...
          super.onActivityResult(requestCode, resultCode, data);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-10-30
      • 2012-06-06
      • 2011-07-02
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多