We are able to subscribe a user, then cancel using the web interface. After that point, every time we try to subscribe the same user, we get an order status error of "-3" and a UI message from the channel store control node that states "This item has already been purchased for this account." Even though the account shows the subscription as cancelled. Is there no channel store component options to renew a subscription?
We're following the documentation here: https://sdkdocs.roku.com/display/sdkdoc/ChannelStore#ChannelStore-CommandDescriptions
Additional information: The subscription product has a 30 day trial. Could the product stay 'purchased' during the trial even though the user has cancelled?
Re: How do we re-subscribe a user with Roku billing?
Caveat that most of this is undocumented and just my observations:
Some background - when a user subscribes to an in-app product for a channel, it generates a transaction id. If they cancel and resubscribe later, even many months later, the purchase will still have the same original transaction id.
Since the user already purchased the product this month, indeed, you cannot sell it to the user again in the same month. The user would be buying the same exact thing twice. The only way around this is to wait until the expiration date passes to offer the product to the user again or instruct the user to resubscribe within their subscriptions page: https://my.roku.com/account/subscriptions
Note that if you are using webhooks, this will not generate a webhook. This makes tracking user subscription state for these edge cases tricky.