0

私のアプリは無料です。アプリ内購入を使用して、追加機能を有効にしたいと思います。そのために、現在のユーザーと現在のアプリのバージョンに依存するロック解除コードを生成することを想定しています。同じキーが他のユーザーのインストールで機能しないようにするために、最初のものが必要です(ただし、同じユーザーが所有する複数のデバイスで機能します)。私は2番目を必要としないかもしれませんが、それはもう少し将来の柔軟性を与えるでしょう。

これを行うには、ある種のgoogleユーザーIDが必要です。そんなことありますか?もしそうなら、どうすれば入手できますか?

ありがとう。

4

2 に答える 2

0

私は別のアプローチを提案したいと思います。フラグを使用して、アップグレード機能の実行を許可するかどうかを示します。ユーザーがアップグレードを購入したかどうかをアプリ内課金 API で定期的に検証します。そうでない場合は、フラグをリセットします。

ユーザーはフラグをハッキングできますが、遅かれ早かれリセットされ、機能の使用がブロックされます。

この方法を完全に破るには、ユーザーはコードをリバース エンジニアリングし、フラグのチェックをバイパスする必要があります。ほとんどの人が気にしないと思いますが、私は何を知っていますか?

于 2013-01-18T01:12:27.607 に答える
0

Google がこの一部を処理します。ユーザーの各デバイスにデバイス依存キーを配信します。あなたの仕事は

1)サーバーでキーを適切に検証します

2) ユーザーがデータ ファイルをコピーできないように、サーバーからデバイス固有の認証値を返すようにしてください。

3) デバイスで、認証値を使用して物事を有効にします。

キーの検証は簡単ですが、必ずサーバー上で行ってください。問題は、デバイスの識別です。Google とそのパートナーは、その点で少しボールを落としました。Tim Bray のブログ記事がhttp://android-developers.blogspot.ca/2011/03/identifying-app-installations.htmlにあり、この問題について説明しています。彼の留保にもかかわらず、私は ANDROID_ID を使用することをお勧めします。私は彼の他の提案の安全性に疑問を持っていますが、完全な分析は行っていません. ネットワークに関連するもの (IMSI、IMEI、ESN など) には絶対に近づかないでください。また、使用されるデバイス識別子をキャッシュし、変更されないようにします。

個人的には、アプリで自分の機能のロックを解除するために必要なデータをスクランブルしています。有効なトランザクションを取得したら、デバイス ID と組み合わせてデータのロックを解除できるキーを計算します。完璧にはほど遠いですが、機能しているようです。私は自分がハッキングされることを受け入れます - 私はそれを明らかにしたくないだけです.

バージョンごとのキーが必要な場合は、RESTORE_TRANSACTIONS を実行し、バージョンが変更されるたびにサーバーで再検証する必要があります。

于 2013-01-17T03:14:56.720 に答える