リクエストしたアイテムは購入できません


95

Androidマーケットのアプリ内購入を自分のアプリに統合しようとしていますが、残念ながら実際のアプリ内製品を購入しようとするたびに、迷惑なエラーが発生します。

サンプルアプリケーション(Dungeons)を取得して、アプリに追加しました。公開鍵を更新し、製品のリストを次のように更新しました。

/ **購入可能な製品の製品リストエントリの配列。* /

private static final CatalogEntry[] CATALOG = new CatalogEntry[] {
    new CatalogEntry("full", "Full v", Managed.MANAGED),

};

私はEclipseを使用してアプリケーションをエクスポートし、携帯電話にインストールし、AndroidマーケットのWebサイトにアップロードしました。また、AndroidマーケットのWebサイトで、アプリ内購入として完全に追加して公開しました。

また、自分のgooglemailアカウントをテストアカウントとして追加しました(これは私の電話でサインインしているアカウントです)。

携帯電話でアプリケーションを実行すると、フルに購入しようとすると、要求されたアイテムを購入できないというAndroidメッセージが表示されますが、たとえばandroid.test.purchasedを使用すると、問題なく動作します。

あなたがリクエストしたアイテムのドキュメントは購入できませんandroidは次のように述べています:

Androidマーケットが、リクエストされたアイテムをアプリケーションの製品リストで見つけられないことを示します。これは、REQUEST_PURCHASEリクエストで製品IDのスペルが間違っている場合、またはアプリケーションの製品リストでアイテムが非公開の場合に発生する可能性があります。

製品IDは完全に同じで、明確に公開されており、サンプルアプリケーションであるため、リクエストは問題なく通過する必要があります。

私はapkの同じバージョンを使用しており、アプリ内製品も公開し、apkもアクティブ化しています それでも私は同じ問題に直面しています、それを修正するために私を助けてください。

どんな考えでもいただければ幸いです!


1
あなたはあなたの製品を公開していますか?
Mohsin Naeem、2012年

に使用したGoogleアカウントMerchant Accountはデバイスアカウントと異なりますか?
Mohsin

1
Playストアに追加した製品のステータスが「アクティブ」であることを確認してください
Ali

テスターがオプトインリンクをクリックしたことを確認してください...
Pixel

回答:


181

このエラーに関する私の経験は次のとおりです。

  1. 署名済みAPKを開発者コンソールにアップロードしてください。

  2. デバッガーでアプリを起動しないで、署名済みAPKをデバイスにインストールしてください。

  3. 開発者コンソールで必ずテストアカウントを作成してください。

  4. テストアカウントをセットアップする

    1. 必ずテストアカウントでデバイスにサインインしてください。
    2. クローズドアルファ/ベータテストの場合は、選択したテスターグループにテストアカウントを追加していることを確認してください。これは、アルファ/ベータバージョンの管理ページで実行できます。
    3. クローズドアルファ/ベータテストの場合は、特別な招待リンクを介して、テストアカウントがこのアプリケーションのテストへの参加を受け入れていることを確認してください
  5. 開発者コンソールでアプリ課金を作成し、最後にコンソールからアイテムをアクティブ化してください!!! (これは、Googleのチュートリアルを完全に実行した後に私を獲得したものです)

  6. マニフェストのVersionCodeとVersionNameが、開発者コンソールのバージョンと同じになるように設定してください(Alpha、Beta、またはProduction。Draftsは機能しなくなります)。@alexgophermixの回答がうまくいきました。

実際の出金なしでテスト支払いを探している場合は、テストアカウントを別の特別なアカウントリスト「テストアクセスのGmailアカウント」に追加する必要があります。これは、Playアカウント設定(プロジェクトではありません)で確認できます。プロジェクトのリストを確認できるページで[設定]に移動し、[アカウントの詳細]ページ(下にスクロールすると、ページのほぼ下部にあります)に[テストアクセス権のあるGmailアカウント]リストが表示されます。


5
常に署名されたビルドを使用してアプリケーションをテストすることを忘れないでください。+1
Vamsi Challa

36
マニフェストのVersionCodeとVersionNameが、開発者コンソールのバージョンと同じになるように設定してください(Alpha、Beta、またはProduction。Draftsは機能しなくなります)。@alexgophermixの回答がうまくいきました。+1
i.shadrin

6
さらに、テストユーザーがAlphaにオプトインしていることを確認してください(そのobvを使用している場合)。それらをライセンステストに追加するだけでは不十分です。
ADB

4
オプトインURLを開き、テストアカウントを使用して、テスターに​​なることを承認したことを確認します。
ボグミル2016

1
バージョンコードは一致する必要があります。ヘッドアップのおかげで、パニックの瞬間が救われました。
Meanman

97

チェックするべきいくつかの事柄はここにあります:

  1. apkを作成し、GooglePlayダッシュボードにアルファ版またはベータ版公開しました。
  2. GooglePlayダッシュボードのアプリは下書きモードではなく、公開済みです(公開するには、画面の左側にあるチェックアイコンが付いた小さな円をすべて緑色にする必要があります)。
  3. GooglePlayダッシュボードに「接続」されているものとは別のテストアカウント設定しました。これを行うには、Google +グループを作成し、そのグループにテストアカウントを追加して、GooglePlayダッシュボードでGoogle+グループを指定します。
  4. 購入のテストに使用しているAPKのバージョンコード、バージョン名同じです。最も重要なのは、ストアで公開したAPK と同じキーストアで署名されていることです。
  5. あなたは待って変更内容が伝播するためにダッシュボードで何かを変更したときの間に時間のカップルを。これには数時間かかります。
  6. sku値が有効なsku値であることを確認してください(GPダッシュボードで入力したと比較してください)。
  7. あなたは既に購入した商品を購入してみてください。購入したアイテムを取得してログに表示し、そうかどうかを確認します。その場合は、その製品を消費するか、テストアカウントに返金します(返金が反映されるのを待つ必要があります。数時間かかります)。
  8. Inappsがアクティブであることを確認してください!

6時間後、私にとってそれは何が最後の部分でした:

  1. テストアカウントを使用して(ブラウザーで)googleにサインインし、このリンク(赤でマークされている)を開き、テスターに​​なることを承認していることを確認してください!!!! http://i.stack.imgur.com/VSgAV.png

更新

  1. フレーバーを使用して異なるCPUをターゲットとするAPKをビルドし、arm、armv7、x86用にビルドしそれらすべてをストアにアップロードする場合は、それらの1つを使用してアプリ内をテストすることを忘れないでください。すべてのCPUライブラリを含む「ユニバーサル」ビルド(基本的にはストアにあるものとは別のビルド)を使用すると、機能しません。

14
あなたと同じ状況になりました。1-8はすべて問題ありませんが、問題は9です。これを見つけるために私の一日を無駄にします。あなたは私の命の恩人です。
Paiboon Panusbordee

2
はい、最後の部分が最も重要です、Googleがルールを変更したようです。ステップ9なしで機能するために使用しますが、今は、クローズベータ版またはオープンベータ版のいずれかで、リンクをクリックする必要があります。ありがとう!
Siyuan Zhang

私の問題は4でした。インストールされているapkのバージョンコードがgoogle play apkと同じではありませんでした。私が同じバージョンを作ったら、それはうまくいきました。この答えは貴重です。
2016年

私はこの「数時間」の不確実性をとても嫌っています!この「数時間」の間、私の上司はたいていびびる!ところで、手動でインストールしたAPKを使用している場合、更新はまったく受け取れません!また、独自の署名付きAPKではIABが機能しないのは愚かです。私はいまいましい更新が起こるのを待つ必要があると思います!
WindRider 2016年

1
ステップ9をありがとう
zdd 2017

45

これは、製品がInactivePlayストアにActivateあるときに発生し、製品は正常に動作します。


それを考えたことはありません...:Dさらに時間を節約してくれてありがとう!
Kamran Ahmed

非アクティブとはどういう意味ですか?開発者はAPKのAlphaバージョンを使用する必要があります。
IgorGanapolsky 16

23

このエラーには別の原因が考えられます。問題の原因を見つけるまで、私は丸一日丸々怒っていました。apkバージョンです。Playストアにアップロードされたものよりも大きいバージョン番号のローカルapk(正しく署名された、正しいキー、正しい製品ID)を使用している場合も、このエラーが発生します。

これが誰かを助けることを願っています


これは質問に対する答えを提供しません。十分な評判を得ると、どの投稿にもコメントできるようになります。代わりに、質問者からの説明を必要としない回答を提供してください。- レビューから
tttony

11
この回答の情報は実際に知っておくと
役に立ち

6
@tttonyエラーの別の原因を指摘しましたが、説明は求めませんでした。これは仮説や質問ではありません。公開されているバージョン番号よりも大きいバージョン番号のAPKを手動でインストールすると、アプリ内購入でこのエラー返されます。
DavidBVal 2016年

2
非常に役立つ情報でした。私の時間を節約してくれてありがとう。いいぞ。
Aritra Roy 2016

22

このエラーは、実行したすべてが完璧で、適切な製品IDで署名済みAPKを使用した場合に発生しますが、使用しているアカウントに適切な有効なクレジットカードの詳細がない可能性があることに注意する必要があります。

そのためテストアカウントを使用して商品購入する場合は常に、そのアカウントに有効なクレジットの詳細が必要です。


この答えは真実であり、見つけるのはまれです。だから、もう一歩進んで、「製品をアクティブにする」という別の回答を追加しなかったことに感謝します。
Don

19

多分私はこれを間違っていたかもしれませんが、テストしているバージョンがアルファ版、ベータ版、または製品版としてPlayストアにない場合にも、このエラーが発生します。

新しいバージョンをテストしながら(Playストアにアップロードする前に)、VersionCodeとVersionNameを頻繁に更新し、IAB固有の機能をテストしようとすると、このエラーが発生します。


4
また、Playストアへのアップロード後、少なくとも45〜90分は機能するようになります。
mm2001

9

私の場合、APKタブのからリンクを取得する必要がありますOpt-in URL。ブラウザを開き、リンクを使用します。次に、そのページでテスターとして登録します。


9

あなたはテスターに​​なるために受け入れなければなりません

リリース管理->アプリのリリース->テスターを管理し、シークレットモードでこのリンク(オプトインURL)を開いてテスターアカウントにログインします

ここに画像の説明を入力してください


私はテスターですが、同じ問題があります。
Jorgesys

4

同じテストアカウントのメールIDを使用しているかどうかを確認してください


私のデバイスは別のメールIDとしてログインしています。testaccountのメールIDをプライマリIDに設定すると、この問題は解決します。
laxman 2012年

3
これは質問に対する答えを提供しません。批評したり、著者に説明を要求したりするには、投稿の下にコメントを残します。自分の投稿にはいつでもコメントできます。十分な評判得られれ、どの投稿にもコメントできます。
Aziz Shaikh

デバイスがテストアカウントのメールID(開発者コンソールで公開キーの下に指定されたテストアカウントのメールID)以外としてログインすると、このエラーが発生しました。testaccountのメールIDをデバイスのプライマリメールIDとして設定した場合
laxman

4

最新の追加(2016/11):

  1. テスターは、デベロッパーコンソールから取得したリンクから取得したテストリクエストを受け入れる必要があります(セクション:APK)

  2. アプリを公​​開する必要があります:ベータ版またはアルファ版のテストで公開しても問題ありません。情報:Developer Consoleで[公開]をクリックすると、[アプリ]を[プロダクション]タブ(APKセクション)に伝達しない限り、アプリはプロダクションに公開されません。


2

製品のステータスが「非アクティブ」の場合は、アクティブにします。これは私のために解決しました。もちろん、Googleは更新に時間がかかります

また、テストメールが登録されていることを確認してください。


1

「オープンアルファテスト」または「オープンベータテスト」は、インターネット全体で提案されたすべての方法を試した後、問題を解決しました。

Androidデベロッパーコンソール->アプリ-> APKに移動して、Open Alpha / Betaテストの使用をオプトインします。提供されたリンクを自分またはテスターに​​送信します。

Androidデバイスにそのアカウントでログインしている限り、テストできます。

幸運を


1

私は同じ問題に直面しました、私のための解決策はあなたのアプリの現在のバージョンをプレイストアにアップロードすることでした、それがテストのためであるならばそれをアルファまたはベータチャンネルにアップロードします、私はこれを実行しました、そしてエラーはなくなりましたと価格の詳細が正しく表示されます。


0

3つの可能性があります。

  1. Google PlayでAPKをドラフトとして保存し、これをアクティブにして固有のIDで製品を公開することを忘れないでください。
  2. IDがGoogle Playの製品IDと同じであることを確認します。
  3. または、アイテムタイプが同じかどうかを確認します。たとえば、Google Playとコードの両方で管理されます。

テストする場合は、アプリを公開する必要はありません。ドラフトとして保存してください。そして、しばらく待ってからこれをアクティブ化するには、2〜3時間かかることがあります。


3
上記の3つの条件は満たされていますが、同じエラーを示しています
laxman '29

0

この問題を解決するには、次の手順に従います。

  1. Google Playデベロッパーコンソールで製品を作成します。

  2. 保存して「アクティブ」に設定します。

  3. APKをGoogle Playにアップロードします。

注:アプリ内課金は、ステップ1で製品を作成してから6時間経過するまで機能しない可能性があります。


0

上位投票の回答にはほとんどすべてが含まれていますが、IAPのテストを続行するためにアプリのリリースプロセスを急いで行ったのと同じくらい愚かだった場合は、テストしている国のPlayストアでアプリを公開してください。に!デバイスでこれを確認する簡単な方法は、テストオプトインURLを開くときに[Google Playでダウンロード]リンクをタップすることです。Google Playストアから開こうとしたときに「アイテムが見つかりません」というエラーが表示される場合は、アプリがそこで公開されていない可能性があります。ADB経由で署名済みアプリを正しくサイドロードしていたため、この問題が発生しました。IAPはビルドに表示されますが、購入しようとするとこのエラーが発生します。


0

アプリ内サブスクリプションを購入しているときに、以下のリストのすべてを適切な場所に持っていました。

  1. 署名済みAPKを作成し、アルファチャネルに公開しました

  2. ライセンステストにテスターのメールIDを追加

  3. クローズドトラックのアルファテストにテスターのメールIDを追加

  4. テスターに​​なることを選択しました

  5. テストIDが開発者アカウントのID と異なっていました

  6. エミュレーターはなく Androidデバイス上にあった

  7. Playストアからアプリをダウンロードしました

それでも、「探していたアイテムが見つかりませんでした」というエラーが表示されました

2〜3日無駄にした後、Playストアで支払いモードが設定されている場合にのみ機能することがわかりました。

ほとんどの回答は古いIABの購入に関連しており、新しい課金クライアントAPIを実装していますが implementation 'com.android.billingclient:billing:1.0'、それは解決策を見つけるのが容易ではありませんでした。

これが同じケースの場合、支払いモードを追加すると、このエラーを解決するのに役立つ場合があります。テストする場合でも追加する必要がありますが、ライセンステスターとして追加されたメールIDに対しては課金されません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.