As you can see, the (apparently) “sensitive” information and data such as credit cards, billing etc. stays on-premises in your own data centers. For the interactive use case the connection from the public cloud is relayed through Azure service bus relay bindings to the on-premises hosted account management service. In this case the account management service connects from inside out to the service bus to offer its endpoint to other parties authenticated to the same service bus namespace. If you provide those service bus namespace and credentials to the shop-front-end as the only party, no one else will be able to connect to this account management service.
Furthermore payments are just stored as encrypted messages on Azure queue. A little adapter application / service that runs on-premises queries this Azure queue in regular intervals to retrieve payment messages and forward them to the actual payment service. A public key is used in the cloud to encrypt messages before they’re put onto the queue. The corresponding private queue is used by the application that monitors the Azure queue for new payment messages to decrypt the payment messages and forward them to the payment service. That way even the payment message that might contain sensitive data is stored in the cloud without having the option of decrypting the message in the cloud. In addition the data is stored temporarily, only, as the messages are deleted from the queue as soon as they’ve been processed on-premises.