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

GooglePlay: The item you requested is not available for purchase

我从 Google Play IAB API;

获得以下信息

The item you requested is not available for purchase

然而,我已经成功地针对静态响应进行了测试,此外,可用产品列表中的以下代码 returns 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);

另外我还有;

我使用的购买码是;

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}

虽然还有其他问题与此问题相关,但 none 已为我解决;

  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
    • 测试用户登录

应用程序必须通过选择加入 URL. 从 Playstore 安装,这将有助于应用程序从 LICENSING & IN-APP BILLING(Base64 编码)授权。

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

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

2.Your 应用程序使用 相同的证书 签名,该证书与您上传到 Developer Console 的 APK 所用的证书相同,然后再将其安装到您的设备上。

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

在我上次测试 12 小时后,这神奇地起作用了。症状是:

  • 如果应用程序是通过 ADB(发布并签名)安装到设备上的,则无法购买
  • 如果应用程序是通过 Google 播放(下载)
  • 安装的,则可以正常购买

我不确定究竟是什么解决了这个问题。在等待 12 小时之前我;

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

即使进行了所有这些更改,问题仍然存在,所以我上床睡觉,今天早上醒来,没有进一步的更改,它就起作用了。 FML.

选择加入 url 帮我做了。将其发送给您的用户 - 它会向用户注册他们自己的 Play 商店应用程序。那是中间人,似乎需要通知此人是测试人员。

经过将近几天的尝试,我们意外地成功了。 我们不得不 "LEAVE THE PROGRAM"(选择加入页面上的 link)并再次重新进入程序。然后终于成功了...

在购买应用内订阅时,我在正确的位置找到了下面列表中的所有内容。

  1. 创建签名 apk 并发布到 alpha 通道

  2. 已将测试人员电子邮件 ID 添加到 许可测试

  3. 已将测试人员电子邮件 ID 添加到 封闭轨道 alpha 测试

  4. 选择成为测试员

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

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

  7. 已从 Play 商店下载应用程序

我仍然收到此错误消息 “找不到您正在寻找的项目”

在浪费了 2-3 天之后,我发现只有在 Play 商店中设置了一些支付模式后它才能工作

虽然大部分答案都与旧的 IAB 购买有关,但我实施了新的结算客户端 API,它是 - implementation 'com.android.billingclient:billing:1.0',好不容易才找到答案

如果有人也是这种情况,添加支付方式可能会帮助您克服这个错误。您甚至需要添加一个来测试它,但是,它将不会对添加为许可证测试人员的电子邮件 ID 收费。