Pass through any error messages, existing messaging is rather vague and unhelpful
Generalise response processing so it can handle both purchase and refund responses
Adding support for partial refunds