Question

I have an in-app managed item (not subscription) and I consume it after I record it on my server (after verifying with purchase status API). I understand that the refund/ cancellation for in-app purchases can only be done via Merchant account console. Does the Android app get notified about the cancellation/refund of a consumed item?

The queryInventoryAsync() API does not return any items after consuming. Does the app need to continue calling this API periodically to know about cancel/refunds?

I tested that the purchase status API (on server) returns the information after cancellation.

INFO: {
  "consumptionState" : 1,
  "developerPayload" : "payload",
  "kind" : "androidpublisher#inappPurchase",
  "purchaseState" : 1,
  "purchaseTime" : "1392878938499"
}

I thought the order information is cleared on Google play servers after I consume it. If so, I can't rely on purchase status API to detect cancellations.

side note: However I noticed that the consumptionState returned via purchase status API is NOT correct. I already consumed it and the queryInventoryAsync() does not return this item anymore on device. The purchaseState changed to "1" (canceled) from "0" after some time, but the consumptionState remained as 1 - yet to be consumed. I hope it works fine with real purchases (I am still in testing mode)

In the documentation, only v2 API has some info about cancelation/refunds (IN_APP_NOTIFY intent). V3 InApp billing API does not talk about handling refunds/cancelations. The TrivialDrive sample does not have any examples either.


I looked through these questions but not clear yet.

Android In-App Billing: Purchase state stays “purchased” after order cancelation Android In-App Billing: Purchase state stays "purchased" after order cancelation

Handling In-App Billing Refunds in v3 Handling In-App Billing Refunds in v3

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top