I don't like the backdoor idea, but I truly know the need for it. Instead an encrypted file within the application folder, specific to the software license, that contains an expiration date. Once they pay, you provide a non-expiring license key. I have used that several times as well for stand alone desktop apps. There area also SDKs for license management that you can integrate requiring a fee and an internet connection. Also don't provide the source code until funds have cleared.