Paypal Payment Plugin recommendation

Can someone recommend a paypal plugin that supports the following:
1. Payments Pro integration (so checkout can look like it's done on the site).
2. Support for subscriptions, including allowing users to cancel their subscriptions
3. Decent reporting
4. Ability to call hook into it so I can perform a function when a new subscription is created or an existing one is cancelled.