0

私はIABを備えたアプリに取り組んでおり、OnConsumeFinishedListenerを介して購入が完了すると、ユーザーが追加機能に対して支払ったことをSharePreferenceを介して保存します(機能は使い果たされません)。

ユーザーは同じ商品を再度購入できます。

コード:

    // Called when consumption is complete
    IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() 
    {
        public void onConsumeFinished(Purchase purchase, IabResult result) 
        {
            Log.d(TAG, "Consumption finished. Purchase: " + purchase + ", result: " + result);
            if (mHelper == null) return;
            if (result.isSuccess()) 
            {
                Toast.makeText(InAppBillingActivity.this, "Thank you!!", Toast.LENGTH_SHORT).show();    
                if ((purchase.getSku().equals(ITEM_SKU10))) {countQ(10);}

        buy10Button.setEnabled(true);

            } 
            else 
            {
                // handle error
            }
            Log.d(TAG, "End consumption flow.");
        }
    };

    public void countQ(int Q) 
    {
        SharedPreferences settings = this.getSharedPreferences("MyApp",0);
        if (Q==10) 
        {

            SharedPreferences settings1 = this.getSharedPreferences("MyApp",0);
            SharedPreferences.Editor e1 = settings1.edit();
            e1.putBoolean("userpaid", true);
            e1.commit();                        
        }

質問:

ユーザーは購入をキャンセルできるようです。そのように、ユーザーが追加機能のために支払った Sharepreference を介して保存すると、抜け道ができますか? ユーザーは、最初に購入して共有設定を行いtrue、購入注文をキャンセルできますか?

そのようにして、プロセスをどのように改善できますか? consumed追加機能はIABプロセスにあるため、在庫を確認することはできないようです。

4

1 に答える 1