If you do not depend on any GPL license grants to distribute your software (i.e., you are the sole copyright holder and/or you make use of no one else's GPL'd code), you may achieve this by not offering your code under the GPL at all, but under some other homemade license that prevents redistribution and otherwise grants rights similar to the GPL. Insofar as this would be a nonfree license, and insofar as removing the permission of redistribution requires a substantial rewrite of terms, I cannot advise how to rigorously construct such a license; consult a lawyer experienced in drafting license agreements.
If you do depend on others' GPL-licensed code and therefore must license under the GPL (or you simply really do want to use the actual GPL for reasons of community compatibility or popularity), read on:
If you want to offer your GPL'd code for download to subscribed users only, you may do so: you, as a legal entity, can offer copies to whomever you want or don't want. The set of people to whom you personally offer copies can be limited to those people who have paid you money, or given you their email address, or have listened to your timeshare presentation. However, the GPL requires that you cannot stop other people from also offering the code simultaneously, once they receive it, to whomever they like. The GPL does not compel you to share copies of your software (but does compel you to share corresponding source if and when you do choose to share your software), but it does not allow you to forbid downstream recipients from sharing their copies further, either.
In sum, you can limit when a user can download the software from you, but you cannot limit when a user can download (or offer for download to others) the software generally. If you add terms to your software that forbid freedom of redistribution, you will violate any GPL grants from upstream authors that your software depends upon for you to distribute it.
If you plan to publish regular updates, users may find it worthwhile to offer you contact information so they can be notified about updates and get them quickly. Other users may prefer to get updates from another recipient without giving you their email address; the GPL does not allow you to prevent this.
If it is your plan to write code that uses a network service as a natural part of its functionality, you may certainly make that network service require authentication, and you may charge money for access. For example, if your code interacts with your network service to remotely save data, or communicate with other users, your service can refuse to carry out those actions if the user fails to provide proof of payment. However, users can always modify the code to interact with a different service instead, or modify the code so it no longer makes use of a network service at all.
If your plan is to add code that interacts with a network solely for the purpose of performing a payment-check without supplying any value to the software, you can expect downstream users will modify the code to remove that network interaction immediately, and the new version without the network gatekeeping code will be much more popular.