[I'd actually recommend talking to FastSpring - they used to provide a concierge service to setup the order form for you, and they have a system where they can ping a licence key generator on your server (eg in PHP), much like what Kagi did. I'm happy to try to answer questions if you or anyone else gets stuck, contact details in my profile.]
Unless you're using the JVM. Their Java API is so awful that it feels like you're just shelling out to cURL.
+1. The original system was designed to be as flexible as possible and had the advantage of being able to support many different integrations that were straddling many different versions of the Stripe API, and all from within a single version of the Java library.
Its major downside of course is that the same flexibility somewhat compromises the developer experience, and the choice hasn't mapped well onto languages like Java where the expectation is that most functionality should be discoverable by the type system.
If it's any consolation, we're certainly aware of the problem and have a rough plan/roadmap on how to address some of the more appalling blemishes in usability.
Many require reference transactions support. Which requires PayPal approval, and (from what I understood from the person who actually talked with PayPal) they only give it after some revenue levels that aren't trivial to achieve if you're just starting and don't even have any sales yet.
When coding on their own, interfacing PayPal directly, one can avoid this requirement, settling for a somewhat more limited but still fairly functional set of EC APIs.
If you want someone else to take care of all the details in return for higher commission: