Google最近发布了一个新的IAP库(链接here和here,示例here名为" TrivialDrive_v2"),替换旧版本({{ 3}},示例here,名为" TrivialDrive")。
API非常不同,但当然会提供相同的功能。
我有一个只有2个SKU的应用程序(在我的案例中可以通过应用内购买)。一个人永远停留,另一个人在购买后立即消费。
我正在尝试迁移到新的API。一切似乎都好。购买可以从以前的API收到,我可以获得所有SKU(可用购买)的详细信息:
List<String> skuList = new ArrayList<>();
skuList.add(...);
skuList.add(...);
mBillingClient.querySkuDetailsAsync(SkuDetailsParams.newBuilder().setSkusList(skuList).setType(SkuType.INAPP).build(), new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(final int responseCode, final List<SkuDetails> skuDetailsList) {
// I get here the 2 items in the list, with all their details
}
});
但是,当我使用SKU(当我查询有关它的详细信息时工作正常)开始购买时:
BillingFlowParams flowParams = BillingFlowParams.newBuilder()
.setSku(...)
.setType(SkuType.INAPP)
.build();
int responseCode = mBillingClient.launchBillingFlow(activity, flowParams);
我收到此对话框,说&#34;您请求的项目无法购买&#34;。
我认为这是我制作的代码的问题,因为我在同一设备上尝试了各种测试,所以我只尝试在另一台设备上购买流程,但我遇到了同样的问题。
当然,我试图找到一个我可能错过的函数或参数,但是文档和示例都表明使用上面的代码应该没问题。
我还尝试在他们的样本()的Github回购中联系谷歌,但到目前为止我没有得到答复。不知道在哪里问他们最好的地方。
为什么我会遇到这个问题?我是否应该使用其他东西,以防很久以前设置过SKU?
我是否会遇到消费问题(还没有测试,因为首先我需要进行购买)?
答案 0 :(得分:1)
我忘了过去曾经遇到过这个问题。
这是因为多种原因:
我已将该应用的版本更新为高于Play商店的版本。我这样做是为了测试升级。
已使用的非签名版本的应用。