Export to GitHub

marketbilling - issue #88

Refunded orders take too long to revert to "not owned" state in getPurchases()


Posted on Dec 11, 2012 by Massive Kangaroo

STEPS TO REPRODUCE: 1. Buy a in-app non compsumable managed item 2. In developer console cancel the buy and refund the money 3. Open app and check for buyed items

EXPECTED OUTPUT: Refund items aren't available

ACTUAL OUTPUT: Refunded items are returned by the Google Play (8 hours since refund) :(

AFFECTED ORDER IDS (IF RELEVANT):

OS VERSION: 4.1.2

MARKET/MYAPPS VERSION: com.ryosoftware.cputweaks (com.ryosoftware.cputweaks.pro)

DEVICE: Galaxy Note

OUTPUT FROM ADB BUGREPORT ATTACHED: (Note: The output from "adb bugreport" is required for all bug reports.)

D/IabHelper( 1500): Got sku details: SkuDetails:{"title":"CPU Adjuster - PRO","price":"1,22 €","type":"inapp","description":"Remove Ads\nUnlimited number of profiles\nMake app functional after trial period","productId":"com.ryosoftware.cputweaks.pro"} D/CPUTweaks( 1500): d: Billing: Query inventory finished without errors

NOTES:

Comment #1

Posted on Dec 11, 2012 by Massive Kangaroo

Sorry, I'm refer to IAB v3

Comment #2

Posted on Dec 12, 2012 by Massive Kangaroo

After 24 hours (more or less) the pro in-app item that i've refund bia developer console, appears cancelled in the client play store. seems to me that 24 hours is too many time! :( but you can close this issue

Comment #3

Posted on Dec 21, 2012 by Happy Wombat

Hiw the app gets notified? Is SKU just not listed in purchased items (getPurchases() result) ?

Comment #4

Posted on Dec 21, 2012 by Happy Cat

It is - even 3 days after I cancelled the (test) purchase - that's the problem.

I need to know how the 'refund' or 'cancellation' is reported to the app - as it stands now, it appears that the app caches the 'purchased' state (of the SKU) and it's not updated.

I uninstall and reinstalled the app - still in getPurchases() after that.

The only thing which appears to have reset it - is Factory Resetting my (test) phone - I doubt customers will do that!!

v2 of Billing had a notification system for Refunds - does v3 not have that - is there a way to force v3 to check a purchase is still valid?

JP

Comment #5

Posted on Jan 11, 2013 by Swift Bear

Much like issue 92, and I quote something from there "It's not really clear in the sample code, but shouldn't you check the "purchase state" of the purchases returned by queryInventory and only regard the ones "purchased" or "refunded" as purchased, and "cancelled" as not purchased?"

Comment #6

Posted on Jan 11, 2013 by Happy Cat

They keep coming back as 'purchased' is the main issue I think...

It does appear that they will, eventually, be cancelled - but it takes DAYS for this to happen...

Comment #7

Posted on Jan 11, 2013 by Swift Bear

That is most likely due to Google Play's Local Caching, http://developer.android.com/google/play/billing/api.html#caching

The amount of time it takes depends on when Google Play refreshes it's cache. We would need to receive an IN_APP_NOTIFY (which I'm not sure if this even exists in API3) and manually synchronize the Google Play cache. Can we hear from a dev?

Comment #8

Posted on Feb 5, 2013 by Grumpy Dog

Issue 92 has been merged into this issue.

Comment #9

Posted on Feb 5, 2013 by Grumpy Dog

Issue 94 has been merged into this issue.

Comment #10

Posted on Feb 5, 2013 by Grumpy Dog

(No comment was entered for this change.)

Comment #11

Posted on Feb 5, 2013 by Grumpy Dog

(No comment was entered for this change.)

Comment #12

Posted on Feb 5, 2013 by Grumpy Dog

(No comment was entered for this change.)

Comment #13

Posted on Feb 5, 2013 by Happy Cat

I think the problem comes with Checkout. My experience: 1.- Purchased and Refunded few hours later -> in 2 or 3 days item is not owned. It's too much time but finally user gives up using the app for free. 2.- Purchased and Refunded few days later -> item is owned indefinitely, at least 1.5 months (state = 0)

In second case item appears as Shipped on Checkout

Comment #14

Posted on Feb 14, 2013 by Happy Horse

Hi,

Is this issue occurs with consumable items? As I am going to have consumable items in my App so just want to confirm. Did anybody try for consumable items?

Comment #15

Posted on Feb 14, 2013 by Happy Cat

Hi lina

I don't think so, because a consumible item can't be refunded just consumed, but I haven't tried it

Unexpectedly, one of the items now appears as not purchased. It also agreed that in Checkout, the order no longer appears as shipped. 16 days after the manual refund/cancel, the Checkout system has "unshipped" the order automatically and the user doesn't own the item.

If this is not an Checkout issue.....

Comment #16

Posted on Feb 14, 2013 by Happy Elephant

When I was testing this, I did try consuming the purchased item. This worked immediately and then allowed the user to repurchase without delay.

Comment #17

Posted on Feb 15, 2013 by Happy Horse

But what if before consume call the internet connection is lost? And before restarting my application my order is cancelled at check out?

Comment #18

Posted on Feb 20, 2013 by Happy Ox

I would like to add that the same issue plagues IAB v2 as well. It's been 2 days since I received email notification of refund. However IAB server keeps returning PURCHASED rather than REFUNDED doing a restore transactions operation.

Testing these purchases is a nightmare. Not only do we have to use real credit cards, the store won't even revert the purchase in a timely manner!

Comment #19

Posted on Mar 15, 2013 by Massive Giraffe

Comment deleted

Comment #20

Posted on Oct 9, 2013 by Quick Hippo

I have made a refund, but the app still shows the item as PURCHASED even after 8 days. I'm referring to IAB v3. I've already rebooted the phone, uninstalled and reinstalled the app but still no luck. I understand it can take up to 72 hours but its now more than 3 days.

Comment #21

Posted on Oct 7, 2014 by Grumpy Bear

I am seeing this issue right now (my cancelled items are still showing as being purchased). Because of this my UI cannot correctly update to indicate that the subscription has been cancelled, which will lead to a poor user experience.

I would like to second the comment regarding how hard it has been to test out in app subscriptions. So many headaches.

Comment #22

Posted on Dec 12, 2014 by Helpful Hippo

Comment deleted

Comment #23

Posted on Apr 9, 2015 by Massive Horse

We are experiencing this issue in subscriptions. If users cancels subscription, it still thinks that user is subscribed. It is not because of the billing cycle, because we are waiting for cycle to end and then it still says user is subscribed. Then we clean the Play Store and Play Services cache. Voala, it works like it should.

Comment #24

Posted on May 17, 2015 by Helpful Giraffe

I'm also using IAB v3 and only after reboot device, that I believe the cache will be cleaned then it worked.

Status: Accepted

Labels:
Type-Defect Priority-Medium Google-8134928