Google IAP v3 subscription or managed product problem

I just started migrating over to Google IAP v3 and have encountered a worrying problem. Any help is appreciated.

My app has four products: two consumable “unmanaged” products, one “managed” product and one “yearly subscription” product. All four are “active” on the Google Play dashboard and work with the old Google v2 API. I only use the two unmanaged products and the yearly subscription – the managed product is “active” on Google Play but I do not use it.

With v2, since there was no store.loadProducts function I just had the three items I am using hardcoded and it all worked fine. (The code I have also works fine on the Amazon store using that plugin and store.loadProducts.)

After updating to the v3 plugin and calling store.loadProducts, I get 2 validProducts (the two consumables) and 1 invalidProduct (the subscription). Inspecting the JSON returned does not tell me anything about the invalidProduct except the name. I do not see anything relevant in the console logs, since there is no particular error.

I’m not sure what to try next. Has anyone successfully used a subscription with the new v3 API? At first I thought it must be a subscription issue since not too many people use that, but it’s also confusing to me that my “managed” product doesn’t appear at all: neither as valid nor invalid. I do not use this “managed” product for anything but it’s listed as “active” on the Google Play dashboard…

Thanks!

[EDITed with additional info]

UPDATE:

I have determined that I can get the store to work with a managed product (it was simply not included in the listOfProducts passed to store.loadProducts). I believe this means it’s a subscription-specific problem. 

Could it be that nobody has tried subscriptions with Google IAP v3 yet?

I really wish I could see what error Google is throwing back to Corona…

UPDATE2:

I created a brand new $1 managed product and a new $1 yearly subscription product in Google Play.

The managed product appears as a validProduct; the subscription product is an invalidProduct.

I conclude from this that there is a bug…

This bug is time-sensitive: Google recommends updating to v3 by November.

UPDATE3:

I just noticed this possibly related sentence in the documentation under store.purchase (http://docs.coronalabs.com/plugin/google-iap-v3/purchase.html)

“Initiates a purchase transaction on a provided product by sending out a purchase request to the store. This call does not work for subscription purchases.”

This is a pretty big difference that is not covered in the migration guide. It’s also not clear to me what replaces a “purchase” for subscriptions…

Hi @hgbrian,

I don’t believe that we officially support auto-renewed subscription V3 purchases at this time, however you can try the undocumented “.purchaseSubscription()” call and see if that works for you. Please see the final few posts in this thread:

http://forums.coronalabs.com/topic/49043-in-app-subscriptions-need-help-on-how-best-to-maintain/

Take care,

Brent

Thanks a lot Brent! It appears to be working after a first run of tests.

The process was a little convoluted: I created a new managed product called “subscription_proxy” that costs the same as the subscription – this is so that I can still get prices in localized currency. Then I replace calls to buy “subscription_proxy” with “subscription”. It’s not great, but it will do for now.

However, it is concerning to me that a pretty basic monetization option like subscriptions has been semi-removed from Corona (it’s still there for Amazon, I believe). Corona is such an awesome platform and it is scary when you realize functionality you depend on can just vanish overnight and there’s very little you can do about it… 

Hi @hgbrian,

I don’t believe that we officially support auto-renewed subscription V3 purchases at this time, however you can try the undocumented “.purchaseSubscription()” call and see if that works for you. Please see the final few posts in this thread:

http://forums.coronalabs.com/topic/49043-in-app-subscriptions-need-help-on-how-best-to-maintain/

Take care,

Brent

Thanks a lot Brent! It appears to be working after a first run of tests.

The process was a little convoluted: I created a new managed product called “subscription_proxy” that costs the same as the subscription – this is so that I can still get prices in localized currency. Then I replace calls to buy “subscription_proxy” with “subscription”. It’s not great, but it will do for now.

However, it is concerning to me that a pretty basic monetization option like subscriptions has been semi-removed from Corona (it’s still there for Amazon, I believe). Corona is such an awesome platform and it is scary when you realize functionality you depend on can just vanish overnight and there’s very little you can do about it…