Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
joetesta
Level 10

in-channel purchase subscription questions

Hello -
I'm working on a channel that will sell subscriptions and I need to find the best way to confirm that the subscription is valid, as per this thread: http://forums.roku.com/viewtopic.php?f=34&t=76724&p=465009&hilit=GetPurchases#p465009
I've been working with the example from here: http://blog.roku.com/developer/2013/06/06/supporting-in-app-purchases-in-your-roku-brightscript-chan... and am now looking at this PDF http://sdkdocs.roku.com/download/attachments/3114165/Roku+Integrated+Billing+April+2013.pdf?version=...

Based on slide 30, the channel should use Roku API: Validate-Transaction to check the expirationDate (http://sdkdocs.roku.com/display/sdkdoc/Web+Service+API) for which it will need the "Transaction ID"; at first I was thinking I'd need to use GetPurchases API to find the Transaction ID, but I'm wondering if it might be better to store the Transaction ID in registry?

In the developer account "Manage In-Channel Products" page, for each in-channel subscription product, there's a "submit for review" button - can someone explain how this process works, should the review begin when the product is first created, or only after the channel is developed and/or subscription content is actually live in the channel?

tyvmia
aspiring
0 Kudos
7 Replies
Roku Employee
Roku Employee

Re: in-channel purchase subscription questions

In most cases, the transactionID would be stored server side and associated with the user's account on your service. And call(s) to the web service would be made by your account system, not by the channel itself. Note that on the slide you reference, the communication is between a Roku server and a Partner server.

Also, that scenario applies mainly to the case where a user buys a subscription on Roku and needs to be able to use it on other devices like a smartphone or tablet. If a subscription is only useable through a Roku channel and not other devices, you may not need the web service at all. roChannelStore alone might do everything you need in that case.
0 Kudos
joetesta
Level 10

Re: in-channel purchase subscription questions

"RokuChris" wrote:
In most cases, the transactionID would be stored server side and associated with the user's account on your service. And call(s) to the web service would be made by your account system, not by the channel itself. Note that on the slide you reference, the communication is between a Roku server and a Partner server.


Thank you Chris. This particular client doesn't use a server with their roku channel; they host the images and video with 3rd party hosting and package the XML in their channel. They'd now like to add subscription as an in-channel purchase through Roku In-Channel Products. I thought it would be possible to do so without a server / backend service, as long as the channel can validate the user's subscription with Roku. So in this case there is no "user's account on our service" - the plan was that it would all be contained within roku - possible?

"RokuChris" wrote:
If a subscription is only useable through a Roku channel and not other devices, you may not need the web service at all. roChannelStore alone might do everything you need in that case.

That would be ideal but this goes back to the original question; how does the channel / roChannelStore validate that a subscription purchased in this way is still active - does it need the Transaction ID stored somewhere in order to do such validation? I haven't found that clarified yet, other than slide 30 of the PDF.

PS one plan was to use the built-in channel upgrade subscription option but I read a post by RokuJoel in a thread somewhere that the upgrade method is not recommended vs selling the subscription as in-channel purchases.
aspiring
0 Kudos
TheEndless
Level 7

Re: in-channel purchase subscription questions

"joetesta" wrote:
That would be ideal but this goes back to the original question; how does the channel / roChannelStore validate that a subscription purchased in this way is still active - does it need the Transaction ID stored somewhere in order to do such validation?

roChannelStore.GetPurchases() should only return valid/active products. No need for a transaction ID.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
joetesta
Level 10

Re: in-channel purchase subscription questions

Thanks TheEndless!
So if the subscription expires / is cancelled, GetPurchases() will return nothing? Is this documented somewhere or you just know from experience?
What about approval of the In-channel products, should there be an indication that they're approved, or are they ready to be used if the "submit for review" button is non-clickable?
aspiring
0 Kudos
TheEndless
Level 7

Re: in-channel purchase subscription questions

"joetesta" wrote:
Thanks TheEndless!
So if the subscription expires / is cancelled, GetPurchases() will return nothing? Is this documented somewhere or you just know from experience?

I know it from experience... not sure if it's documented.

"joetesta" wrote:
What about approval of the In-channel products, should there be an indication that they're approved, or are they ready to be used if the "submit for review" button is non-clickable?

On the Manage In-Channel Products page, approved products will show "Approved" under the price.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
Roku Employee
Roku Employee

Re: in-channel purchase subscription questions

FYI, if you have products that need approval, please email developer@roku.com. We don't get automatic notification so we don't know when there are new products in your account. Also, please be sure to pick which channel you want the product associated with.

Also, If you associate a product with more than one channel this means that that product is "purchase once, use in multiple channels". If you don't want that product to be used in other channels without purchasing again, then be sure to create a separate product for each channel.

- Joel
0 Kudos
joetesta
Level 10

Re: in-channel purchase subscription questions

Thanks Joel, email sent.
and thanks TheEndless for your help, much appreciated!
aspiring
0 Kudos