Recommendation for modules/workflow to build a premium link directory I'm just about to start building a link directory and I'm at odds over the best way to go about it.

The directory will accept both standard (free) and premium subscriptions. Premium subscribers will have extra fields available to them to fill out and display on their 'profile' page (standard link directory model I guess).

The front-end directory itself will be based on taxonomy/views so that's not an issue, but I'm struggling with the best way to handle the subscriptions. Conceptually I guess I would be selling access to a user role for a limited period of time, and showing/hiding various fields on the profile form based on the role's permissions.

I'd prefer to use Commerce and I'm struggling to find a stable module (or example using rules) that would help me plan out this subscription system.

Has anyone built a similar system before? If not can anyone think of a good collection of modules/workflow to accomplish this? I'm happy to write as much custom code as is needed but I'd rather not reinvent the wheel where possible, and it seems like Drupal is made for this kind of thing.

EDIT

Following Patrick Kenny's comment I should add that I don't need these subscriptions to recur automatically, just for the access to the role to expire after a certain amount of time. 

If this will be difficult to do with Commerce I'd love to hear any other ideas (Ubercart, etc).
I'm building a site with free and paid memberships now; my use case isn't exactly the same but I'll share what I can.

I'm not using Drupal Commerce; in my case, users make a payment with PayPal and then I manually add a paid role to each account.  I intend to eventually set this up in Drupal Commerce but I haven't had the time yet.

When I add the paid role, a rule is triggered that automatically sets an expiration date using the Role Expire module.  Until very recently the 7.x rules integration was bugged but I am happy to report that it is now fixed and works great.

As for working with Commerce, Randy Fay also did a screencast on setting up content access for a membership site.  I'm not sure if the content access part is relevant but the final part of the screencast covers:


  
  Create a product representing the premium role.
  Create a rule that grants the premium role on order completion:
  
  After updating an order
  If the order state is Completed
  And the order contains our premium product
  Add a role to the user who is the owner of the order