[android-developers] Re: How do other developers handle IAP refunds on unmanaged purchases?
Tough one and something I'm about to get into myself. As a rule we simply give anyone a refund who asks, but in app, unmanaged purchased would be much tougher to handle. What I would do in your case is simply reuse whatever system you have for delivering the unmanaged purchase goods to flag as soon as the user did anything with what they bought, and make the policy: refund on unopened merchandise only. You may need to modify your app a little to make this clear to the users, but should be a small price to pay for smoother integration :) - Brill On Monday, 3 December 2012 15:29:48 UTC-5, Keith Wiley wrote: I'm trying to design a policy for processing (or refusing) refunds for unmanaged in-app purchases. Refunds for managed purchases are quite simple in concept since the app can simply unflip the bit that the managed purchase corresponds to. If you granted access to higher levels, you can simply take them away again. The refund is tightly correlated with the account and the device so you (the developer) don't have to keep that association, you let google process the money and you let the app undo the managed purchase. However, unmanaged purchases are kind of messy. You can buy the same thing over and over again, they cannot be easily associated with a google account to verify the inventory, and unmanaged purchases are often nonbinary in nature, i.e., if an unmanaged purchase is in-game-currency (canonical gold coins) then you could buy 100 coins for $.99 and spend half those coins in the game...and then -- rather unfairly -- want a refund of your original purchase. It is difficult from for the developer to identify that this is an unfair request at the time the refund request is made, so the developer cannot easily determine whether to refuse the refund. As described above, it is difficult to flatly refuse to grant refunds on unmanaged purchases because it is difficult to determine whether the original purchase has been fully or partially used up in the game. I am attempting to implement a server-side database of unmanaged purchases so I know who had bought what *and* the extent to which those purchased items have been used up...but it is difficult to associate google purchases (google accounts) with devices or app installations...and it is devices which would report their unmanaged purchases to my server, not google accounts. Sure, my app can identify itself with a UUID, but how do I know which *google account* that installation (and its unmanaged purchases) go with. To put it differently, if I receive a refund request, how do I look the installation up in my server database to see if the unmanaged purchase has been partially or fully used up such that the refund request from that google account is unfair and should be denied? At any rate, I'm just swimming through these issues trying to decide how I want to handle them, and I'm extremely curious what sorts of solutions other developers have come up with. This could make for a very riveting discussion if others care to participate. *Cheers!* Cheers! -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: How do other developers handle IAP refunds on unmanaged purchases?
On Monday, December 3, 2012 12:45:33 PM UTC-8, Brill Pappin wrote: Tough one and something I'm about to get into myself. As a rule we simply give anyone a refund who asks, but in app, unmanaged purchased would be much tougher to handle. Sure, I always refund actual baseline app purchases (good old fashioned direct app purchases)...but I've never used IAP before so these new issues are...new. What I would do in your case is simply reuse whatever system you have for delivering the unmanaged purchase goods to flag as soon as the user did anything with what they bought, and make the policy: refund on unopened merchandise only. You may need to modify your app a little to make this clear to the users, but should be a small price to pay for smoother integration :) I agree, but that's the problem. I admit I didn't explain it very well. The server-side database for managing purchased items identifies installations by a UUID which is created when the app is run for the first time. This is conceptually similar to using a unique *device* id except that if you research unique Android device identifiers you quickly learn there is no across-the-board 100% operational way to get such ids...so I use UUIDs generated in-app at first launch. Fine...but google purchases don't identify their device (much less my own personal UUID scheme obviously). So when a google account (a person or gmail address in effect) requests a refund...how on Earth do I look them up in my database of in-app unmanaged purchases (tied to installation UUIDs) to see if the purchased item has ever been used within the app? How do I do that? That's what I cannot, for the life of me, figure out. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: How do other developers handle IAP refunds on unmanaged purchases?
Ahh,, now that is a different kettle of fish! I'm in the situation where I want to be able to identify my legacy users so they don't get in-app purchase offers. What I'm about to try (I think) is using the google account they are using with Play. What you'd use is the AccountManager class to get their Goggle account email address (i'm surprised that IAP doesn't already identify this for you in the transaction) then attach the flag to that ID, which would be good for as long as the users uses the app for all Android users. Its also moveable between phones or phone resets and is tied to *the user* not the phone instance. To get accounts, you would use something like: AccountManager accountManager = AccountManager.get(this); Account[] accounts = accountManager.getAccountsByType(com.google); You could change or remove the filter to get all accounts but you can look up the correct API if you use this method. - Brill On Monday, December 3, 2012 4:03:11 PM UTC-5, Keith Wiley wrote: On Monday, December 3, 2012 12:45:33 PM UTC-8, Brill Pappin wrote: Tough one and something I'm about to get into myself. As a rule we simply give anyone a refund who asks, but in app, unmanaged purchased would be much tougher to handle. Sure, I always refund actual baseline app purchases (good old fashioned direct app purchases)...but I've never used IAP before so these new issues are...new. What I would do in your case is simply reuse whatever system you have for delivering the unmanaged purchase goods to flag as soon as the user did anything with what they bought, and make the policy: refund on unopened merchandise only. You may need to modify your app a little to make this clear to the users, but should be a small price to pay for smoother integration :) I agree, but that's the problem. I admit I didn't explain it very well. The server-side database for managing purchased items identifies installations by a UUID which is created when the app is run for the first time. This is conceptually similar to using a unique *device* id except that if you research unique Android device identifiers you quickly learn there is no across-the-board 100% operational way to get such ids...so I use UUIDs generated in-app at first launch. Fine...but google purchases don't identify their device (much less my own personal UUID scheme obviously). So when a google account (a person or gmail address in effect) requests a refund...how on Earth do I look them up in my database of in-app unmanaged purchases (tied to installation UUIDs) to see if the purchased item has ever been used within the app? How do I do that? That's what I cannot, for the life of me, figure out. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: How do other developers handle IAP refunds on unmanaged purchases?
We simply have No refunds under any circumstances in our refund policy. That covers most of the situations. We use IAP unmanaged items to do subscriptions, managed by our server and not Google. If a user purchases twice, they get twice the subscription period. It's pretty easy to determine if a user accidentally made a mistake and in that case, I refund the duplicates. Sometimes a user is just unhappy and whines about the product in which case I usually give them a refund unless it's near the subscription period end, in which case I quote the refund policy. One recent case a user asked for a refund Because I am going to an iPhone. Needless to say, I quoted him the no refunds under any circumstances policy. In the last year, I may have given 25 refunds so it's not a big deal. -John Coryat -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: How do other developers handle IAP refunds on unmanaged purchases?
Thanks! I really appreciate you sharing that with us. I suppose part of my problem is that I'm not sure what the refund experience is like from the user's end. I'm not even sure *how* an IAP refund is requested. Since I know it isn't supported proper through Google Play (as opposed to app refunds) I'm not actually sure how it's done. Are all IAP refund requests issued by way of personal email from the user to the developer or is there some existing mechanism for sending a refund request? I may have to go the no refunds route too. May I ask *where* you put your refund policy notice? Is this just informational in your own app through a UI of your design, or is there an official place to put a refund policy in Google Play which is seen when the user tries to make a purchase? I haven't seen anywhere in the developer console where a policy notice would be updated. Thanks. On Monday, December 3, 2012 1:46:08 PM UTC-8, John Coryat wrote: We simply have No refunds under any circumstances in our refund policy. That covers most of the situations. We use IAP unmanaged items to do subscriptions, managed by our server and not Google. If a user purchases twice, they get twice the subscription period. It's pretty easy to determine if a user accidentally made a mistake and in that case, I refund the duplicates. Sometimes a user is just unhappy and whines about the product in which case I usually give them a refund unless it's near the subscription period end, in which case I quote the refund policy. One recent case a user asked for a refund Because I am going to an iPhone. Needless to say, I quoted him the no refunds under any circumstances policy. In the last year, I may have given 25 refunds so it's not a big deal. -John Coryat -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: How do other developers handle IAP refunds on unmanaged purchases?
We use Zendesk for support and all refund requests that the users can't do themselves go through our Zendesk account. Oer refund policy if posted on our support site, i.e.: http://support.sixgreen.com/entries/20554258-refund-policy - Brill On Monday, December 3, 2012 5:25:08 PM UTC-5, Keith Wiley wrote: Thanks! I really appreciate you sharing that with us. I suppose part of my problem is that I'm not sure what the refund experience is like from the user's end. I'm not even sure *how* an IAP refund is requested. Since I know it isn't supported proper through Google Play (as opposed to app refunds) I'm not actually sure how it's done. Are all IAP refund requests issued by way of personal email from the user to the developer or is there some existing mechanism for sending a refund request? I may have to go the no refunds route too. May I ask *where* you put your refund policy notice? Is this just informational in your own app through a UI of your design, or is there an official place to put a refund policy in Google Play which is seen when the user tries to make a purchase? I haven't seen anywhere in the developer console where a policy notice would be updated. Thanks. On Monday, December 3, 2012 1:46:08 PM UTC-8, John Coryat wrote: We simply have No refunds under any circumstances in our refund policy. That covers most of the situations. We use IAP unmanaged items to do subscriptions, managed by our server and not Google. If a user purchases twice, they get twice the subscription period. It's pretty easy to determine if a user accidentally made a mistake and in that case, I refund the duplicates. Sometimes a user is just unhappy and whines about the product in which case I usually give them a refund unless it's near the subscription period end, in which case I quote the refund policy. One recent case a user asked for a refund Because I am going to an iPhone. Needless to say, I quoted him the no refunds under any circumstances policy. In the last year, I may have given 25 refunds so it's not a big deal. -John Coryat -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: How do other developers handle IAP refunds on unmanaged purchases?
Refunds are made through the Checkout console. It takes a few seconds. The trick is locating the order to refund. Usually, it's linked to the user's GMail account so if they contact you that way, then it's a snap. Otherwise, you have to inform the user how to find their order number through Google Wallet, which is less than seamless. Most users have no problem with that either. Occasionally, a user not using a GMail (It's almost always aol.com or hotmail) can't find their order number and I just tell them I can't help them. If it gets down to this, then the user always gives up. The onus is on the user. There is a no-refund policy in effect and if they can't help find the order then it's impossible to give them a refund anyway. I suggest the no refunds under any circumstance policy to CYA. -John Coryat -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: How do other developers handle IAP refunds on unmanaged purchases?
I usually find it's good enough if the user gives you their name, I can find it in the orders pretty easily that way. Very rarely do I need the order number. -niko On Monday, December 3, 2012 6:22:15 PM UTC-6, John Coryat wrote: Refunds are made through the Checkout console. It takes a few seconds. The trick is locating the order to refund. Usually, it's linked to the user's GMail account so if they contact you that way, then it's a snap. Otherwise, you have to inform the user how to find their order number through Google Wallet, which is less than seamless. Most users have no problem with that either. Occasionally, a user not using a GMail (It's almost always aol.com or hotmail) can't find their order number and I just tell them I can't help them. If it gets down to this, then the user always gives up. The onus is on the user. There is a no-refund policy in effect and if they can't help find the order then it's impossible to give them a refund anyway. I suggest the no refunds under any circumstance policy to CYA. -John Coryat -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en