i was thinking of using a service like blockonomics linked to an offline store via Xpub. When a user signals their intent to make a payment, the app would generate a new address (API call), display it, set a timer for blocking the address, then use its HTTP callback to wait for Confirmed before updating the user balance. Without knowing the TX id I would poll the address and see whether the amount had been received since the timer started. All payments go to a single cold address pool.
Is this a sensible secure way of going about this? What are the potential risks?