You
are forced to use Apple for payments. It's entirely stupid to say "well you don't
have to let users pay in the app". Every single user expects to be able to pay by credit card on their phone - the phone is a bloody computer. Imagine if your desktop PC only allowed payments via a Microsoft service that charged the application developer 30%. This would
NEVER happen, as the very concept is absolutely ridiculous.
There is no technical reason to not allow an app developer to use an alternative like Stripe as their payment processor. Apple tries to sugarcoat it by using phrases like "seamless integration" for end users, never having to enter their credit card number. The reality is, it has nothing to do with user experience. It is 100% about getting that 30%. Nothing else.
I accept a certain level of a walled garden by buying into the Apple ecosystem. I absolutely do not condone charging developers 30% for payment processing. I buy apps from the store, and developers get shafted just for that. I have never, and will never, perform an in-app purchase without first checking whether I can pay the company directly. I don't care if it's $9.99 in-app, and $9.99 on an external web site. I will ensure that I pay outside the app whenever possible. The problem is that the majority of users do not do this. And they shouldn't have to.