Google Play应用内购买不会记入我的商家帐户?

时间:2016-06-23 06:55:00

标签: android google-analytics

我已设置Google Analytics,以便将每个成功的交易发送给它。现在,在比较Google Analytics和Merchant数据时,我发现在Google Analytics中成功反映的一些交易并未归功于我的商家帐户。以下是我设置OnIabPurchaseFinishedListener的方法:

private static final OnIabPurchaseFinishedListener purchaseListener = new OnIabPurchaseFinishedListener() {
    @Override
    public void onIabPurchaseFinished(IabResult result, final Purchase info) {
        if (result.isSuccess())
            sendHit(cPREM, "success", info.getSku()); // send to GA
        else
            sendHit(cPREM, "failure", result.getMessage());

        if (result.isFailure()) {
            if (result.getResponse() != IABHELPER_USER_CANCELLED)
                toast(true, "Unknown error occurred: " + result.getMessage());
            return;
        }

        if (info.getSku().equals(SKUs[FULL_PREM])) {
            premiumOn = true;
            laneOn = true;
            storeEditor.putBoolean(SKUs[PREM], true);
            storeEditor.putBoolean(SKUs[LANE], true);
            toast(true, ct.getString(R.string.please_restart));
        } else if (info.getSku().equals(SKUs[PREM])) {
            premiumOn = true;
            storeEditor.putBoolean(SKUs[PREM], true);
            toast(true, ct.getString(R.string.please_restart));
        } else if (info.getSku().equals(SKUs[LANE])) {
            laneOn = true;
            storeEditor.putBoolean(SKUs[LANE], true);
            toast(true, ct.getString(R.string.download_restart));
        } else if (info.getSku().equals(SKUs[DONATE5]) || info.getSku().equals(SKUs[DONATE10])) {
            try {
                iabHelper.queryInventoryAsync(queryListener);
            } catch (Throwable e) {
                e.printStackTrace();
            }

            toast("Thank You.");
        }

        storeEditor.apply();
    }
};

此外,我的应用程序只有2个月,因此我每周只能购买3次。此外,我检查了我的GA,并说它没有被采样。

我的问题是,我在这里做错了什么?或者它是谷歌游戏的错误?谢谢。

2 个答案:

答案 0 :(得分:1)

它无法声称为google play bug。付款成功后,请查询Google Play有关功能/ SKU的信息。如果购买该功能,它会为您提供购买套装。这样做,您可以确保购买发生。

您可以做的另一件事是,如果购买成功,请在您的数据库中随身携带购买订单ID。订单ID只是您可以交叉检查购买的关键。如果发生任何错误匹配,请使用订单ID查询Google Play客户服务。

代码似乎就像您使用IabHelper来执行购买流程和购买支票result.isFailure()。如果我的猜测是正确的,那么您已经使用了Billing SDK中提供的TrivalDriveSample工具。

IabHelper util在购买后正在处理RESPONSE CODES。可能会发生可疑的事情。

请在IabHelper中重新检查它是如何启动购买以及它如何处理响应代码的?

其他明智的方法是实现自己的代码,而不是使用util。

答案 1 :(得分:0)

一般情况下,我会相信您的商家帐户优于Google Analytics。总会有一个带有分析平台的边缘案例;已过期或已屏蔽的卡,已取消的交易和已断开的连接对Google Analytics来说都是意外的。您的商家帐户将更加强大,因为它是根据您的情况量身定制的,实际上直接向某人汇款;这引起了相关各方更高的安全性和更大的兴趣。