I have built a very basic custom payment gateway that accepts Bitcoin.
I am running a Bitcoin Core node in a Docker container. I have a backend web service that sends rpc calls to this node to read / send transactions. This web service acts as a bridge from my secured web service to my Bitcoin Core node.
I have an iOS app that I use to accept Bitcoin payments. (it consumes the formerly mentioned web service).
When I want to charge the user (in app purchase), I present the user with the amount of their bill and a QR Code (as any merchant payment gateway would do).
I also allow them to automatically copy the information to the clipboard to paste into their crypto exchange for sending. This is usually how they send the transactions. You can’t exactly scan a QR code if it’s on the same device you’ll be sending a payment from (via the Coinbase app or whatever).
Is there a better way to do this that I’m not thinking of? I really want the UX to be smoother. It would be cool if you could auto-open the Coinbase app and pass data to populate the payments screen in Coinbase, so the user can proceed from there. Maybe using iOS universal links? I can’t seem to find anything on the internet about this level of functionality.