
我使用了Google的IabHelper课程,因为他们的计费似乎非常复杂.
我的问题是我想知道购买是否成功.我认为我正在正确地跟踪该过程,但在我的日志中,我看到很多用户进行升级,但是我的Google Play付款帐户中的购买从未出现过. (即免费升级).
我正在记录GP订单IDs,有时它的数字,
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?反正要防止这个?
解决方法if (result.isFailure()) { //If the user aborts or any other problems it will jump here } else { //The user purchased some item,check out which it is mIsPremium = inventory.hasPurchase(SKU_ANY_ITEM); } 所以关于你的问题,这段代码已经验证用户是否真的购买了这个项目!
总结以上是内存溢出为你收集整理的Android应用内结算,缺少购买全部内容,希望文章能够帮你解决Android应用内结算,缺少购买所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)