現在、ユーザーがプレミアム機能を購入したかどうかを確認するために、 で次のクエリを実行しましたonQueryInventoryFinished
。
セキュリティ上の理由から、アプリ内購入のステータスをローカルに保存しないことに注意してください。アプリの起動時に毎回 Google アプリ内購入サーバーにクエリを実行します。これは、これまでのところ顧客の不満なしに非常にうまく機能しています.
// Do we have the premium upgrade?
Purchase premiumPurchase = inventory.getPurchase(org.yccheok.jstock.gui.billing.Utils.SKU_PREMIUM);
boolean mIsPremium = (premiumPurchase != null && org.yccheok.jstock.gui.billing.Utils.verifyDeveloperPayload(premiumPurchase));
最近、マーケティング活動により、このプレミアム機能を特定の忠実なユーザーに無料で提供したいと考えています。たとえば、ユーザーがこのアプリを 20 人と共有したとします。
Google のアプリ内購入サーバーにプログラムでアクセスして、クレジット カード処理を行わなくても、特定のユーザーに対して SKU_PREMIUM を有効にする方法はありますか?
そうでない場合は、これが私たちが考えることができる唯一の方法です. ただし、信頼性を確保するために、独自のサーバーを使用しないことをお勧めします。Google のアプリ内購入サーバーと通信するだけで、プレミアム機能全体をチェックしたいと考えています。
- 独自のサーバーにクエリを実行して、このユーザーがこのアプリを 20 人のユーザーと共有したかどうかを確認します
mIsPremium
はいの場合は、Android アプリでフラグをオンにします。- そうでない場合は、Google アプリ内購入サーバーに話しかけ、通常のアプリ内購入ステータス クエリ フローを実行します。
onQueryInventoryFinished
プレミアム機能ステータスのクエリ中に、独自のサーバーを使用せずに試すことができる他の方法はありますか?