I totally agree with infinito62's point in regards to the paid registration feature, "the best solution could be to use roles: in this fashion it's possible to assign different level of subscription accordingly. When subscription expires, roles have to be automatically revocated."
If roles are used, then subscribed customers will automatically be assigned a role based on the membership they choose (e.g. Bronze Customer, Silver Customer, Gold Customer roles) and each level of subscription can have discounts and different levels of site access using the Role's ACL. And, roles must be revoked from the customer if they fail to pay past the grace period (else they will still receive discounts and access to restricted resources); payment notifications need to be sent to the customer as well. We must also be careful to keep the checkout process simple and not confuse customers that just want to purchase an item and are not concerned with signing up for a subscription.
I see the Paid Registration feature is currently active. Is this feature going to be in the 3.20 release?