为什么在IAP库上启动购买流程时出错?

时间:2017-10-22 20:11:13

标签: android in-app-purchase

背景

Google最近发布了一个新的IAP库(链接herehere,示例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;。

here

我尝试了什么

我认为这是我制作的代码的问题,因为我在同一设备上尝试了各种测试,所以我只尝试在另一台设备上购买流程,但我遇到了同样的问题。

当然,我试图找到一个我可能错过的函数或参数,但是文档和示例都表明使用上面的代码应该没问题。

我还尝试在他们的样本(enter image description here)的Github回购中联系谷歌,但到目前为止我没有得到答复。不知道在哪里问他们最好的地方。

问题

为什么我会遇到这个问题?我是否应该使用其他东西,以防很久以前设置过SKU?

我是否会遇到消费问题(还没有测试,因为首先我需要进行购买)?

1 个答案:

答案 0 :(得分:1)

我忘了过去曾经遇到过这个问题。

这是因为多种原因:

  1. 我已将该应用的版本更新为高于Play商店的版本。我这样做是为了测试升级。

  2. 已使用的非签名版本的应用。