Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Adobe AIR Development

Reply
Developer
Posts: 6,473
Registered: ‎12-08-2010
My Device: PlayBook, Z10
My Carrier: none

Re: How to implement timed trial payment model

John, the collective idea here involves relying on information in app-storage to let the app run.  If the information is missing, the app will not run, which means it cannot be used until this "activation" is re-executed to regenerate the missing information.  It's at that point that the information stored on your server can reject  the attempt to bypass the trial restrictions.  It should be safe.


Peter Hansen -- (BB10 and dev-related blog posts at http://peterhansen.ca.)
Author of White Noise and Battery Guru for BB10 and for PlayBook | Get more from your battery!
Developer
Posts: 6,541
Registered: ‎10-27-2010
My Device: HTC One, PlayBook, LE Z10, DE Q10
My Carrier: Verizon

Re: How to implement timed trial payment model

With dynamic key gen, you will already know who they are before they run the application.  So the "activation" can check the original date when the request came from app world.

 

It still needs to manager upgrade (different version numbers) vs. timed trial vs. purchased vs. move apps to a new device.

Developer
Posts: 6,473
Registered: ‎12-08-2010
My Device: PlayBook, Z10
My Carrier: none

Re: How to implement timed trial payment model

 


RottenOgre wrote:

OT: you mention that you can submit an app as free trial. Just wondering what this entails and what are the benefits. I was planning on releasing a free version of my game with a couple of levels so users can decide if they like it before purchasing the full version. What's the difference between simply making this a 'free' app versus making it a 'free trial'?

 

EDIT: 'nathed twice Smiley Happy


 

Responding to the side question: as I understand it, with App World you can simply make one release upload be the limited "free trial" one, and the next be a different bundle with the full capability.  They have different prices (one being free, duh), and the user can choose which to install.  

 

If they want, they can jump straight to the paid one and they just get the full app.  End of story.

 

They can install the free trial version, and use its limited features, indefinitely if they want.  And if they like it, they can "upgrade" (and I think App World supports that, but I've never used it myself) and get the paid version after making a payment.

 

So the only difference between "free app" and "free trial" is that with the free trial, you limit the functionality and you offer a second version that's not free and not limited.

 

I've read about (all in the past?) problems with this mechanism, where people would try to upload a bugfix release, and it would get a higher version number (automatically?) and then App World would be offering it to people as the free one.  That wouldn't be good... I don't know if it's all stable and reliable at this point, but it sounds like that's the basic idea.

 

I believe I saw one app where someone offered two identical versions, one free and one paid, and told people to buy the thing if they wanted, as a "donation", but just use the free one (which wasn't limited) if they didn't want to donate.  That's a slightly different model of course, using the same mechanism of being able to offer two releases of the app, with different costs and content.

 

By the way, what's " 'nathed" mean?


Peter Hansen -- (BB10 and dev-related blog posts at http://peterhansen.ca.)
Author of White Noise and Battery Guru for BB10 and for PlayBook | Get more from your battery!
Developer
Posts: 274
Registered: ‎11-01-2010
My Device: PlayBook?
My Carrier: WiFi

Re: How to implement timed trial payment model

Got it.

 

I think I will just make one 'free' and one 'paid', have a link in the 'free' one that lets them buy the full version and ignore their free trial option. Don't want to run into any possible problems like the one you mentioned and it doesn't seem to add very much functionality.

 

Nathed (or sarnathed) is just some forum speak for being beaten to the punch while typing up a post.

Developer
Posts: 6,473
Registered: ‎12-08-2010
My Device: PlayBook, Z10
My Carrier: none

Re: How to implement timed trial payment model

 


jtegen wrote:

With dynamic key gen, you will already know who they are before they run the application.  So the "activation" can check the original date when the request came from app world.


 

If I understand you there, that would tie the trial period to when the user downloaded the app rather than when they first attempted to use it.  That might be a problem for some users... I've often downloaded a batch of apps for later trial, but sometimes took days or longer to get around to testing them out.

 

 


 

Totally unrelated point:

 

If the "Virtual Good" feature allowed a zero-dollar virtual good, it should be possible to use that to implement this timed-trial period feature, something like this:

 

1. User downloads app from App World, for free.

 

2. User runs app the first time.

 

3. App requests/requires trial period activation using Payment SDK to allow "purchase" of a zero cost Virtual Good.

 

4. Before making new "purchase", app checks existing purchases to see whether you already activated and, if so, when it was.  New activation is rejected if it's already been done (or if it was too recent, etc).

 

5. If activation allowed, app records current timestamp as part of the metadata that can be stored on the server with the virtual good (if it's not already recorded as part of all transactions).

 

6. When trial period is close to expiring or expires, app offers to allow purchase of full access via the same Payment SDK with a different Virtual Good that has a non-zero price.

 

This would require a change in App World (or whatever server supports the Payment SDK) as right now the lowest price tier is $0.99.


Peter Hansen -- (BB10 and dev-related blog posts at http://peterhansen.ca.)
Author of White Noise and Battery Guru for BB10 and for PlayBook | Get more from your battery!
Highlighted
Developer
Posts: 137
Registered: ‎12-22-2010
My Device: Curve 8520
My Carrier: Software Developer

Re: How to implement timed trial payment model

Hi peter,

 

I am on the same way but I don't understand what's the idea of the "zero cost good". My idea was to use the Paymentservice to let my user buy the application "as a good" after trial has expired.

 

If I read the documentation of api I see that the Puchase class has a property "licensekey" and the good-id isn't required. So my theory is, if I use Paymentservice without good id my user buys my application identified by the SKU. If I use a dynamic license model behind there is a serial created and returned by the service.

 

If this is the way it works, it would also possible to licensing my application without appworld.

 

pseudo:

 

key = getFromPurchasings()
IF NO license key THEN
IF was it entered by user THEN
RETURN OK
END IF
ELSE
RETURN OK
END IF