我正在使用Google的应用内结算功能进行我的Android应用。Android应用内结算,缺失购买
我使用了Google的IabHelper类,因为他们的账单看起来非常复杂。
我的问题是我想知道购买是否成功。我认为我正确地遵循了这个流程,但在我的日志中,我看到很多用户都升级了,但我的Google Play付款帐户从未显示其购买。 (即他们免费升级)。
我登录的GP订单ID,有时它的一些类似,
GPA.1234-5678-9123-1234
但有时它像,
1234567891234.1234567891234
通常我认为它的非GPA订单没有收取费用。
另外我认为你可以通过订单,然后取消它,并仍然得到升级?
您如何确保用户真正付费?
代码:
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, final Purchase purchase) {
if (result.isFailure()) {
showMessage("Google Billing Purchase Error");
return;
} else if (purchase.getSku().equals(sku)) {
IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
if (result.isFailure()) {
showMessage("Google Billing Error");
return;
} else {
if (inventory.hasPurchase(sku)) {
showMessage("Thank you for upgrading");
grantUpgrade();
// ** This line gets call, but no payment occurs.
}
}
}
};
mHelper.queryInventoryAsync(mReceivedInventoryListener);
}
}
};
mHelper.launchPurchaseFlow(this, sku, 10001, mPurchaseFinishedListener, "");
***更新检查 “inventory.hasPurchase(SKU)”,但仍然可以看到谁得到了升级,但不支付的用户。
**也许用户正在使用Freedom hack?无论如何,以防止这一点?
您想查看订单历史吗? – KishuDroid
如果你要发出特定的黑客攻击,你可能需要提供一个描述它的链接,而不是假设每个人都知道它是什么:) – JoxTraex
查看https://github.com/soomla/android-store/issues/47或谷歌“Google Play应用内黑客”或“自由黑客” – James