Setting up an application that integrates with PayPal and accepting an initial payment seems like the easy part. I'm having trouble figuring out exactly how to create a way for my application to know that a user has cancelled their subscription.

For example:
User subscribes to a 30 day recurring subscription plan.
User cancels at day 20. Still has 10 days remaining.
At day 30, what exactly would have to happen to make sure he is not charged, and my application updates itself to know that the user is no longer authorized to access the content without a subscription?

Would it be a daily cron job that talks to PayPal and asks if the subscription is still valid? Or would PayPal send notification to my application telling it that the subscription has been cancelled?