The current, minimal Bitcoin payment protocol operates as follows:
Customer adds items to an online shopping basket, and decides to pay using Bitcoin.
Merchant generates a unique payment address, associates it with the customer's order, and asks the customer to pay.
Customer copies the Bitcoin address from the merchant's web page and pastes it into whatever wallet they are using OR follows a bitcoin: link and their wallet is launched with the amount to be paid.
Customer authorizes payment to the merchant's address and broadcasts the transaction through the Bitcoin p2p network.
Merchant's server detects payment and after sufficient transaction confirmations considers the transaction final.
This BIP extends the above protocol to support several new features:
Human-readable, secure payment destinations– customers will be asked to authorize payment to “example.com” instead of an inscrutable, 34-character bitcoin address.
Secure proof of payment, which the customer can use in case of a dispute with the merchant.
Resistance from man-in-the-middle attacks that replace a merchant's bitcoin address with an attacker's address before a transaction is authorized with a hardware wallet.
Payment received messages, so the customer knows immediately that the merchant has received, and has processed (or is processing) their payment.
Refund addresses, automatically given to the merchant by the customer's wallet software, so merchants do not have to contact customers before refunding overpayments or orders that cannot be fulfilled for some reason.