public function getMessage()
    {
        // check for HTTP failure response first
        $httpMessage = parent::getMessage();
        if ($httpMessage !== null) {
            return $httpMessage;
        }

        // check if descriptive failure reason is available
        if (!$this->isSuccessful() && isset($this->data['paymentStatusReason'])) {
            return $this->data['paymentStatusReason'];
        }

        // check if general payment status is available
        if (isset($this->data['paymentStatus'])) {
            return $this->data['paymentStatus'];
        }
    }