I thought, perhaps, this requires a new thread specifically for addressing the cancellation related issue. After I tested the refunded event (which is described here), I found a problem with handling cancelled event for my unmanaged products, because there are two different ways to cancel a transaction:
-
User launches purchase request, but before tapping “Accept & buy” button, return to the game. This triggers a cancellation event.
-
User launches purchase request and completes the purchase. But then changes his/her mind and request the merchant (publisher of the app/game) to reverse the transaction. Merchant goes to Google Checkout and cancels the order. This triggers a cancellation event.
When a user successfully purchases an unmanaged product, my game gives the user product he/she bought. However, with the case #1, the user never successfully completes the transaction, so the cancellation event should simply do nothing.
However, with the case #2, upon successful purchase, user gets the purchased item. However, when the transaction is cancelled, these items should be removed from the user’s account.
In other words, cancelled event needs to be handled differently based on how it is cancelled – but I don’t know if there’s any distinction between the two kinds of cancellation event described above.
Currently, if I accommodate case #1 (do nothing upon cancellation), when case #2 happens, the user gets to keep the product but gets the money back. if I accommodate case #2, when case #1 happens, the user loses what they’ve already own when nothing should change.
Only work around I can think of, as a merchant (publisher), would be never canceling a transaction. Instead, wait until I could refund the money then initiate the refund process (rather than canceling the order). This way, I don’t have to know what kind of cancellation event it is (because it will always be the case #1). But then, until the money is refunded, the user can use the unmanaged item (which is basically the consumable virtual items). In other words, the user will end up using things like powerups for free, and by the time money is refunded and purchased items are removed from the user’s account, the user could’ve already used them up anyway.
Please let me know if there’s a way to identify these two different kinds of cancellation.
Naomi
Edit: The refunded event seems pretty robust (and it even sends the refunded notification after the app/game is uninstalled and reinstalled. See this post for more info), so I’m fine with the workaround – that is, I won’t be canceling any transactions via Google Checkout, but wait for the transaction to complete, and then process the refund. [import]uid: 67217 topic_id: 24968 reply_id: 324968[/import]