Question

In my application i am using In - App purchases to provide a subscription of 1 year….now i need to save the time and date when the user buys the subscription and need to check when the subscription expires?? i have not used database before is there any other way to store date and time in my application and retrieve it every time the application starts??

Was it helpful?

Solution

You can simply store it in NSUserDefaults:

[[NSUserDefaults standardUserDefaults] setObject:[NSDate now] forKey:@"purchaseDate"];

Then retrieve it like such:

NSDate *purchaseDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"purchaseDate"];

And when you're done with it:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"purchaseDate"];

OTHER TIPS

You should store the purchase of a subscription on a server, with backup in place, not only on the device.

You might have noticed that if you delete any iPhone app, and later re-install it, then the next download is free. There can be many reasons as to why the user might loose your app, a system update went bad, or whatever.

Apple specifically requires that the user do not loose what they have bought. If you have promised 1 year, then you must make sure they get 1 year no matter what happens to your app. Otherwise Apple can, and will, reject your app.

Storing the expiration date on a server also give the added benefit of protection against users fiddling with your data and granting themselves extended subscriptions.

Start by looking at the In App Purchase Programming Guide.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top