Google Play:您要求的商品无法购买

问题描述 投票:3回答:4

我从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
  • 在测试版中添加了测试用户,并通过URL选择加入
  • 使用测试用户(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 测试用户已登录
android in-app-purchase google-play in-app-billing
4个回答
5
投票

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

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

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

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

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


3
投票

必须通过选择加入URL从Playstore安装应用程序。这将有助于应用程序从LICENSING & IN-APP BILLING(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


0
投票

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


0
投票

经过几天的尝试,我们不小心让它发挥作用。我们不得不“离开程序”(选择加入页面上的链接)并重新进入程序。然后它终于奏效了......

© www.soinside.com 2019 - 2024. All rights reserved.