我目前正在测试我的应用程式内计费机制(使用应用程式内结算第3版API,因此服用TrivialDrive例子作为参考)。
我有一个管理项目,这是升级到高级版本。
现在,购买该项目与我的测试帐号的作品,但是当我做在谷歌结帐整个订单的取消之后,我的代码仍然告诉我,该项目是外购的授予高级功能。
这里是我为您在我的MainActivity购买。 我不救的购买状态本地某个地方,我的理解是,与计费API第3版,您可以购买专门为需要查询。
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
iabHelper = new IabHelper(this, Helper.getPKey());
iabHelper.enableDebugLogging(true);
iabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
@Override
public void onIabSetupFinished(IabResult result) {
Log.d("IAB", "SETUP FINISHED");
if(!result.isSuccess())
{
Log.d("IAB", "SETUP NOT OK");
return;
}
else
Log.d("IAB", "SETUP OK");
iabHelper.queryInventoryAsync(
new QueryInventoryFinishedListener() {
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inv) {
Log.d("IAB", "Query inventory finished.");
if (result.isFailure()) {
Log.d("IAB","Failed to query inventory: " + result);
return;
}
Log.d("IAB", "Query inventory was successful.");
// Do we have the premium upgrade?
boolean mIsPremium = inv.hasPurchase(Helper.premiumSku);
Purchase p = inv.getPurchase(Helper.premiumSku);
if(p != null)
Log.d("IAB PURCHASE STATE", IabHelper.getResponseDesc(p.getPurchaseState()));
else
Log.d("IAB PURCHASE STATE", "Purchase is null");
Log.d("IAB", "User is " + (mIsPremium ? "PREMIUM" : "NOT PREMIUM"));
}
}
);
}
});
}
我不断收到getPurchaseState = 0,这意味着购买,甚至一小时内,我取消了订单后。 为什么?