When creating a purchase order using Android In App Purchase, sometimes the Google market fails to send a confirmation message in time.
We’ve seen instances where confirmations were sent only hours after the purchase itself thus leaving the user in a state where their credit card is billed, but they do not see the purchase in our product.
see: http://code.google.com/p/marketbilling/issues/detail?id=14#makechanges
It turns out that the “restore Transactions” request also sends back unmanaged transactions that did not get a verification that they were received by your product.
Here is a solution that works for both Managed and Unmanaged products:
RESTORE_TRANSACTION_NEXT_TIME) totrue, and then send a purchase request to the market.onBillingSupporedcheck wether the pref istrue, and if so executebillingService.restoreTransachtions()purchaseState == PurchaseState.PURCHASED), set theRESTORE_TRANSACTION_NEXT_TIMEtofalseThis will make sure that lost transaction are being restored automatically.