Take the 2-minute tour ×

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

share|improve this question

1 Answer 1

up vote 5 down vote accepted

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:

  1. When the User wants to purchase, first set a pref value (such as RESTORE_TRANSACTION_NEXT_TIME) to true, and then send a purchase request to the market.
  2. On your onBillingSuppored check wether the pref is true, and if so execute billingService.restoreTransachtions()
  3. In the onPurchaseStateChange(): where the purchaseState == PurchaseState.PURCHASED), set the RESTORE_TRANSACTION_NEXT_TIME to false

This will make sure that lost transaction are being restored automatically.

share|improve this answer

Your Answer


