这是我的实施:
private IabHelper mIabHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mIabHelper = new IabHelper(this, GOOGLE_BASE64_KEY);
mIabHelper.startSetup(this);
}
@Override
public void onIabSetupFinished(IabResult result) {
if (result.isSuccess()){
mIabHelper.queryInventoryAsync(true, this);
} else {
Log.e("test","onIabSetupFinished-result:"+result.getMessage());
}
}
然后我明白了:
08-09 21:44:00.859 5839-5839/? D/IabHelper: IAB helper created.
08-09 21:44:00.859 5839-5839/? D/IabHelper: Starting in-app billing setup.
08-09 21:44:00.923 5839-5839/? D/IabHelper: Billing service connected.
08-09 21:44:00.925 5839-5839/? D/IabHelper: Checking for in-app billing 3 support.
08-09 21:44:00.934 17057-17069/? I/Finsky: [430] com.google.android.finsky.billing.iab.z.b(44): ...: Account from first account - [...]
08-09 21:44:00.937 17057-17069/? W/Finsky: [430] com.google.android.finsky.billing.iab.z.a(64): Package name ... does not match UID 99089
08-09 21:44:00.938 5839-5839/? E/test: onIabSetupFinished-result:Error checking for billing v3 support. (response: 5:Developer Error)
答案 0 :(得分:4)
Instant Apps尚不支持Google Play结算,但我们正在努力。
答案 1 :(得分:0)
参考Android Instant Apps policy, ndroid Instant Apps开发者必须使用 Google Payment API ,如果Google Play应用内结算不支持这些购买并且开发人员没有存档用户的付款信息。开发人员必须使用Google Payment API为用户收集任何新的或替代的付款信息。
在即时应用中实施Google Payment API的开发者也可以在即时应用中提供纯粹的离线付款,例如货到付款或商店礼品卡。
的更新更新答案 2 :(得分:0)
在撰写本文时,19/10/12,我发现可以从自己的游戏应用程序的“即时”版本购买应用程序。我在网上或在此文档上找不到任何绝对的东西,所以我只需要试验一下自己。
在安装版本中通过自己的应用进行应用内购买时,它会作为“测试购买”进行,实际上不会向您收费。在我开始从即时版本购买商品之前,Google Play上没有关于我的付款信息。不幸的是,至少在我自己的应用程序的即时版本中,您没有被识别为开发人员,至少我没有,所以它要求您提供付款信息并实际上向您收费。这很烦人,因为它干扰了我的统计信息,并引发了一些问题,例如我应该从开发者控制台退款还是让Google保留费用(退款请求看起来不好吗?)。
我从安装购买的应用中发现,即时版本似乎是分开存放的。每个版本的查询产生不同的结果。我希望即时购买的产品能够延续到安装版本中。我的安装版本不是免费的,无论是否有所不同。我正在对此进行进一步的测试,但是如果不进行下去,我将不得不删除应用内即时应用的购买,以免以后安装完整应用的玩家失望。
顺便说一下,要摆脱测试购买是非常困难的。即使您卸载应用程序,脱机并从android studio重新安装它,库存查询也会在将其存储在设备上时找到您过去的购买记录。即使清除Play商店的缓存和应用本身也无法摆脱它。您必须在发行版本上有一个秘密按钮等,才能使用适当的代码“消费”测试购买的商品。