私は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プロセスにあるため、在庫を確認することはできないようです。