我正在开发一个具有 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保存用户已经付费购买的附加功能会有漏洞吗?用户可以先购买使sharepreference成为true
然后取消购买订单吗?
这样,如何改进流程?consumed
由于附加功能在 IAB 流程中,因此检查库存似乎是不可能的。