I'm pretty sure it could work with Fastspring. When new Fastspring subscription is created, your server will receive a payment notification which you can use to generate a key and e-mail it to customer.
It could also be possible with Avangate, although I could not find enough info about this in their public documentation, so please ask their support to make sure how that would work. It seems like Avangate is focusing on general keys instead of those derived from customer's info.
Blumentals Software Programmer