Rename misnamed PaymentRequestException to PaymentProtocolException. It's used for payment messages and maybe payment acks as well.
Extract methods for creating and parsing payment requests, payment messages and payment acks.