16

私はアプリ内課金の学習に取り組んでいますが、Googleのアプリ内課金の例であるDungeonの例に問題があります。

すでにアプリケーションをセットアップし、公開鍵を追加し、makeRequestBundle()でAPI_VERSIONを1に変更しました。

私はすでにアプリケーションをエクスポートして署名し、Google Playにアップロードして、いくつかの写真を含むドラフトとして保存し、apkをアクティブにしました。また、公開されたアプリ内購入としてsword_001とpotion_001の両方を追加しました。

次に、署名したアプリを携帯電話にインストールしましたが、剣またはポーションを購入しようとすると、アイテムを利用できないというエラーが表示されます

ご希望の商品はご購入いただけません。

開発者が自分の製品を購入できないためではないことを確認するために別のデバイスで試してみましたが、両方のデバイスで同じメッセージが表示されます。

私は何を逃しましたか?

4

9 に答える 9

38

を確認してくださいversionCode。いずれかの配信チャネル(prod / beta / alpha)で最後に公開/未公開のバージョンより高くすることはできません。

于 2015-09-08T11:27:08.867 に答える
25

アプリでの請求には落とし穴がたくさんあるように見えますが、これが購入アイテムの入手可能性とアプリケーションの適合性に影響を与えていることがわかりました。

  1. 価値のあるもののための私のコードは、Google Androidデモに強く基づいていましたが、私は多くの複雑さを取り除きました。それをうまく機能させるには、すべてを最初から書き直すことで、より良い結果が得られると思います。
  2. 静的テスト製品IDを最初に取得しました。
  3. ドキュメントに記載されていることにもかかわらず、テストアカウントを使用している場合でも、購入アイテムを公開する必要があるように思われました。とにかく、私のものは機能していなかったのですが、他の人が示唆しているように機能し始めるかどうかを確認するためにかなり長い間待ちました-彼らはまだ機能していませんでした。
  4. あなた(とにかく)はアプリを公開せずに購入アイテムを公開することはできないので、アプリをアップロードして公開し、購入アイテムを作成して公開し(ページ下部の大きなボタン)、アプリを非公開にしましたまた。これにより、アイテムは公開されたままになるようです。
  5. アプリはアップロードする前に通常の方法で署名する必要があります(私はEclipseからエクスポートしてこれを行いました)が、それほど明白ではないのは、モバイルにロードするアプリも同じ方法で署名する必要があるということです-つまり(デバッグ署名済み)Eclipseによってデバイスにロードされたバージョン(実行またはデバッグ)は機能しません。
  6. どちらも同じバージョン番号が必要だと思います。100%確実ではありません。もしそうなら、残念ながら、古いバージョンがインストールされている顧客は、アップグレードせずに何も購入できないことを意味します。
  7. アプリがGoogleにアップロードされると、アプリが利用可能になり、アプリ内課金に対して適切な応答がすべて得られるまでに数時間かかる場合があります。私は通常1〜2時間を見つけます。
  8. Gmailとgooglemailのどちらのテストアカウントを使用するかについての他のコメントは赤いニシンかもしれないと思いますが、それだけの価値があるので、私のテストアカウントはGmailです。
  9. 私はインターネットのどこかで、ハードリセットを行わずに(そして結果としてすべてを失うことなく)モバイルでプライマリアカウントを変更する方法についての有用な小さなメモに出くわしましたが、残念ながら私はそれを再び見つけることができませんでした。
  10. 私が見つけたのは、モバイルで複数のGoogleアカウントを持っていて、GooglePlayで使用するアカウントを選択できるということです。

これが誰かに役立つことを願っています。私はそれがかなり複雑なシステムであり、多くの迅速な答えがないことを言わなければなりません、そして私はそれをほとんどあきらめました。

于 2012-08-05T16:09:16.787 に答える
13

アプリがクローズドアルファテストを使用している場合は、テストアカウントでオプトインURLにサインインする必要があります。https://play.google.com/apps/testing/{your.app.namespace}

于 2015-09-18T04:40:39.503 に答える
7

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

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

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

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

  4. 必ずテストアカウントでデバイスにサインインしてください。

  5. 開発者コンソールでアプリ内課金を作成し、最後にコンソールからアイテムをアクティブ化してください!!! (これは、グーグルのチュートリアルに完全に従った後に私を手に入れたものです)

于 2013-08-11T13:07:50.733 に答える
2

アプリ内課金をテストするには、未公開のドラフトapkをアップロードするだけではもはや十分ではありません。あなたがする必要があるのは、開発者コンソールのアルファまたはベータapkセクションにapkをアップロードすることです。次に、それを公開する必要があります。Production APKセクションにドラフトapkもある場合は、公開する前に必ずドラフトapkを削除してください。それ以外の場合は、すべての人が利用できます。

アルファまたはベータapkを公開すると、指定/許可したテスターのみがそのapkを利用できるようになります。

これに関するGoogleのドキュメントは次のとおりです。

https://support.google.com/googleplay/android-developer/answer/6062777?rd=1

于 2014-07-12T16:48:29.857 に答える
1

さて、私は自分の問題の解決策を見つけました。Googleのアプリ内購入の例を機能させることはできませんでしたが、元の投稿で述べた手順を使用して、このInApp請求チュートリアルを機能させることができました。

他に何もない場合、これは、アプリ内課金の例の1つをテストするために実行する必要のあるすべての手順を確認するのに役立つ場合があります。

于 2012-06-13T18:51:09.873 に答える
1

アプリを公開することは私にとってトリックでした(そしてそれを公開したままにする(!))。他の場所で述べたように、Googleがデータベースを更新するのを少し待たなければなりませんでした。GooglePlayでの変更はすぐには行われません。

于 2012-08-15T00:40:15.107 に答える
1

また、この問題が数日間発生し、多くのことを検索しました。アプリを削除してから再アップロードすると問題が解決したと言ったこの男を見つけました。それは実際に私にも役立ちました。

それを試して、開発者コンソールからアプリを完全に削除してください。そして、新しい署名されたapkを再アップロードして、もう一度設定します

于 2012-08-21T11:41:24.233 に答える
1

事例補足:ポータルに既存のアプリがあり、署名されたバージョンをテストしたいが、配布のためにポータルにアップロードしたくない場合。署名されたバージョンを構築するための通常の手順を実行しますが、ポータルにアップロードされた最新のバージョンコードを使用します。購入の迅速で汚いテストを行うことができます(このバージョンをGoogle Playポータルにアップロードすることはできませんが、ローカライズされたテストを終了するための手段です(またはサイドロードを分散させる方法としても)合法的に請求するためにGooglePlayを使用するバージョン/フレーバー。)

:)

于 2016-02-26T11:20:34.600 に答える