gpt4 book ai didi

Android 应用内结算 : Purchase state stays "purchased" after order cancelation

转载 作者:IT王子 更新时间:2023-10-28 23:55:04 24 4
gpt4 key购买 nike

我目前正在测试我的 InApp 计费机制(使用 InApp Billing 版本 3 API,因此以 TrivialDrive 示例作为引用)。

我有一个托管项目,升级到高级版本。

现在,使用我的测试帐户购买该商品是可行的,但是当我之后在 Google 结帐中取消整个订单时,我的代码仍然告诉我该商品已购买并因此授予高级功能。

这是我在 MainActivity 中检查购买的方式。我不会在本地某处保存购买状态,据我了解,使用计费 API v3,您可以根据需要查询临时购买。

@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,这意味着已购买,即使在我取消订单一小时后也是如此。为什么?

最佳答案

在等待了大约 12 个小时并尝试了此处建议的所有内容后,我仍然面临同样的问题。对我有用的是以下 adb 命令:

adb shell pm clear com.android.vending

关于Android 应用内结算 : Purchase state stays "purchased" after order cancelation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com