When someone buys an in-app product in an Android app and the owner cancels the payment in Google Checkout, so he gets refunded - does the user still keep the item? (managed
I think you need to run backgrond task(once a week for example), to check if user own that items or not.
It's up to you to manage refunded items. You have more infos here :
In-app billing does not allow users to send a refund request to Android Market. Refunds for in-app purchases must be directed to you (the application developer). You can then process the refund through your Google Checkout Merchant account. When you do this, Android Market receives a refund notification from Google Checkout, and Android Market sends a refund message to your application. For more information, see Handling IN_APP_NOTIFY messages and In-app Billing Pricing.
Source
Actually, if you apply the refund the following will happen:
1) you app will get the refund notification. This often occurs quite quickly 2) Your app will take action and 'remove' the goods from the users inventory. This means they can't get at the item.
However, the Android Market will take some time to take action with repect to the managed item so the user could immediately remove the app from their phone and then re-install it. This will cause the app to request details relating to managed items and it will be told the refunded item is still 'owned'. This allows the user to essentially get the item for free provided this is all done quite quickly.
As yet I have not found a way around this timing issue except to either accept this might happen or not allow refunds.