That is the problem and the reason we offer this solution. With blockchain nobody knows the owners of the Public Keys. There is no public record where we can find the details of the owner of a Public Key. Therefore the only way to verify that you are the owner of a Public Key is to get you to use your Private Key to send us a payment to our Public Key. The one who holds control of the Private Key is a de-facto owner of the related Public Key.
For instance if we take the following transaction: Sample Transaction on Blockchain.com
We publicly see that the address 1MfMmgddGpLS9bu9d8MmeoGUhx8JaMEz8N has sent a payment to the address 3J8FnyUDLwf5CZJRS1ac44bwCoeAvPFTKi which is our receiving Public Address used during the online order process. In the background we match other transaction details such as the payment gateway order ID number and our own generated Order ID.
For each transaction we may generate a new Public Address specifically created to receive your verification transaction.
This is how we can verify and certify that the client who ordered via our website did have indeed control over the Public Key 1MfMmgddGpLS9bu9d8MmeoGUhx8JaMEz8N