What about such a way:
Alice has 9 addresses with 1, 2, 4, 8, 16, 32, 64, 128, 256 mBTC. This lets her to pay any amount from 1 to 511 mBTC (for example, 50 mBTC == 32 mBTC + 16 mBTC + 2 mBTC). When she purchases an item she enters the amount on her smartphone and it displays 3x3 matrix filled with QR-codes. In our example only 3 codes will be displayed, so the seller scans them and signs the transaction. If Alice goes to other department she uses other 9-addresses set. The software can build such sets on the fly using one special account with all her pocket coins.
So? Seems to be paparazzi-proof.
this