GooglePlay:您要求的商品无法购买

时间:2016-03-06 23:29:14

标签: android in-app-purchase google-play in-app-billing

我从Google Play IAB API获得以下内容;

  

您要求的商品无法购买

但我已经成功测试了静态响应,此外,以下代码在可用产品列表中返回myProductId;

ArrayList<String> skuList = new ArrayList<String> ();
skuList.add("myProductId");
Bundle querySkus = new Bundle();
querySkus.putStringArrayList("ITEM_ID_LIST", skuList);
Bundle skuDetails = service.getSkuDetails(3, activity.getPackageName(), "inapp", querySkus);

另外我有;

  • 发布了测试版APK
  • 在测试版中添加了测试用户,并通过网址
  • 选择加入
  • 使用测试用户(gmail帐户)
  • 登录设备
  • 将带有相同版本代码的签名APK推送到设备
  • 激活产品

我使用的购买代码是;

Bundle buyIntentBundle = service.getBuyIntent(3, activity.getPackageName(), "myProductId", "inapp", "payload");
PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
activity.startIntentSenderForResult(pendingIntent.getIntentSender(), 1001, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));

最后,logcat显示以下内容;

D/Finsky: [1] PurchaseFragment.onStateChange: Error: PurchaseError{type=3 subtype=0}
D/Finsky: [1] PurchaseFragment.onStateChange: Purchase failed: PurchaseError{type=3 subtype=0}

虽然还有其他与此问题有关的问题,但没有一个问题可以解决;

  1. the item you requested is not available for purchase
    • 产品有效
  2. The item you have requested is not available for purchase
    • 使用静态响应进行测试对于产品android.test.purchased
    • 是成功的
  3. Android In App Purchase “Item that you have requested is not available for purchase” Error
    • 登录的测试用户

5 个答案:

答案 0 :(得分:5)

在我上次测试后12小时,这是神秘的工作。症状是:

  • 如果应用程序通过ADB(发布和签名)
  • 安装到设备,则购买不可用
  • 如果应用程序是通过Google Play(下载)安装的,则可以正常购买

究竟是什么确定了这个我不确定。等我12个小时之前;

  • 从使用IInAppBillingService直接转到使用Google的IABHelper。即时效果仍然是产品无法购买,但文本现在显示为红色而不是黑色(什么?)和DFinsky错误更改为子类型4; PurchaseError{type=3 subtype=4}。我还注意到,直接使用IInAppBillingService时我没有使用base64EncodedKey。
  • 切换到多个APK(可能是红鲱鱼)
  • 开始进行alpha测试(之前仅使用beta测试)
  • 创建了一个新的Gmail帐户并将其添加到测试人员

即使在所有这些变化之后,问题仍然存在,所以我上床睡觉,今天早上醒来,没有进一步的改变它只是工作。 FML。

答案 1 :(得分:3)

必须通过选择加入网址从Playstore安装应用。这有助于应用从alpha^4/q进行授权(Base64编码)。

编辑:我们可以使用 adb 工具安装在设备上测试已签名的apk。和

1.您正在安装的应用程序的AndroidManifest.xml中的 android:versionCode和android:versionName属性值与开发者控制台中的APK值相匹配。

2.您的应用程序使用您用于上传到开发者控制台的APK的相同证书进行签名,然后再将其安装到您的设备上。

http://developer.android.com/training/in-app-billing/test-iab-app.html

答案 2 :(得分:0)

选择加入的网址为我做了。将其发送给您的用户 - 它会使用自己的Play商店应用注册用户。这个中间人似乎需要被通知该人是测试人员。

答案 3 :(得分:0)

经过几天的努力,我们意外地完成了它的工作。 我们不得不“离开程序”(选择加入页面上的链接)并重新进入程序。然后它终于奏效了......

答案 4 :(得分:0)

在购买应用程序内订阅时,我将以下列出的所有内容放在正确的位置。

  1. 创建签名的APK,并发布到 alpha频道

  2. 许可测试

  3. 中添加了测试人员的电子邮件ID
  4. 将测试者的电子邮件ID添加到了封闭轨道alpha测试

  5. 选择作为测试员

  6. 测试ID与开发者帐户的ID 不同

  7. 在android设备上,不在模拟器上

  8. 从Play商店下载了应用程序

仍然出现此错误,提示“找不到您要查找的商品”

浪费2-3天后,我发现只有在Play商店中设置了某些付款方式后,该功能才有效。

虽然大多数答案与旧的IAB购买有关,但是我实现了新的结算客户端API,该API是- implementation 'com.android.billingclient:billing:1.0' ,要找到解决方案并不容易。

如果某些情况相同,则添加付款方式可能有助于您克服此错误。您甚至需要添加一个进行测试,但是,对于作为许可证测试人员添加的电子邮件ID,将收费。