There's quite a bit more complexity in some use cases. Some payments are now asynchronous due to
https://en.wikipedia.org/wiki/Strong_customer_authentication ; handling failed payments for things like subscriptions takes some effort (and managing webhooks).
My experience with Stripe has been great, but payments can still get into the weeds through no fault of Stripe's.