【问题标题】:Trying to query in-app billing product but no luck , can you make queries to in-app billing products when you are in Draft mode?尝试查询应用内计费产品但没有运气,您可以在草稿模式下查询应用内计费产品吗?
【发布时间】:2015-07-15 23:00:24
【问题描述】:

我知道,截至 2015 年 5 月,谷歌改变了他们在草稿模式下处理您的应用的方式 -

在少数情况下,您可以使用未发布的应用测试 Google Play 功能。例如,您可以使用静态响应、始终返回特定结果(如“已购买”或“已退款”)的特殊保留产品 ID 来测试未发布应用的应用内计费支持。

我的问题是您能否在草稿模式下对您的产品使用 IabHelper.queryInventoryAsync()。我知道要进行购买,您必须使用保留的产品 ID,但查询呢?这个问题源于这样一个事实,即当我从侦听器返回 Inventory 时返回 null。

        final String SKU_VERBAL_HINT = "verbal_00.thisthat";
            // compute your public key and store it in base64EncodedPublicKey
    mHelper = new IabHelper(this, base64EncodedPublicKey);

    // enable debug logging (for a production application, you should set this to false).
    mHelper.enableDebugLogging(true);

    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
        public void onIabSetupFinished(IabResult result) {
            if (!result.isSuccess()) {
                // Oh noes, there was a problem.
                Log.d("Issue", "Problem setting up In-app Billing: " + result);
            }else{
                //List<String> additionalSkuList = new ArrayList<String>();
                //additionalSkuList.add(SKU_VERBAL_HINT);
                String[] moreSkus = {SKU_VERBAL_HINT};
                mHelper.queryInventoryAsync(true, Arrays.asList(moreSkus),
                        mQueryFinishedListener);
                Log.d("Issue", "No Problem setting up in-app billing " + result);
            }
        }
    });

            mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
        public void onQueryInventoryFinished(IabResult result, Inventory inventory)
        {
            if (result.isFailure()) {
                // handle error
                return;
            }

         **-------->FAILS HERE, null inventory**  String verbalPrice =
                    inventory.getSkuDetails(SKU_VERBAL_HINT).getPrice();
            String verbal2 = verbalPrice;
            // update the UI
        }
    };

【问题讨论】:

    标签: android in-app-billing


    【解决方案1】:

    看看这个答案。不支持草稿应用。

    不再支持 BlockquoteDraft 应用程序 以前,您可以发布应用程序的“草稿”版本进行测试。不再支持此功能。相反,您可以通过两种方式测试预发布应用在 Google Play 商店中的功能:

    您可以将应用发布到 alpha 或 beta 分发渠道。这使得该应用程序可以在 Google Play 商店中使用,但仅限于您放在“白名单”中的测试人员。 在少数情况下,您可以使用未发布的应用程序测试 Google Play 功能。例如,您可以使用静态响应、始终返回特定结果(如“已购买”或“已退款”)的特殊保留产品 ID 来测试未发布应用的应用内计费支持。

    块引用

    https://stackoverflow.com/a/24866513/2192015

    听起来,应用必须发布到 Alpha 或 Beta 通道才能进行测试。 http://developer.android.com/google/play/billing/billing_testing.html#draft_apps

    【讨论】:

    • @ Heureux 您发布的 developer.android 链接的最后一段说,如果您在应用内计费中使用静态响应,您可以在不发布的情况下进行测试,这就是我正在做的事情。堆栈溢出链接有些正确。仅当您进行非静态购买时才需要发布它。
    • "您不需要在应用程序的产品列表中列出保留的产品。Google Play 已经知道保留的产品 ID。此外,您无需将应用程序上传到开发者控制台即可执行"这让我觉得如果不发布就什么都不会查询了。
    • 我阅读文档的理解是,您必须上传签名的 APK 文件,这样您才能进行应用内计费测试。因此,当您说上传您的应用程序时,您指的是签名的 APK 文件吗?您还见过使用这些保留产品 ID 的代码吗?我想它看起来像这样 - mHelper.launchPurchaseFlow(this,android.test.purchase,RC_Request, mPurchaseFinishedListener, payload);以“android.test.purchase”为预留产品ID
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    相关资源
    最近更新 更多