private function parse($body)
    {
        if (empty($body)) {
            throw new Exception('Error parsing credit card response: Empty response');
        }

        $fields = explode('|', $body);

        if (count($fields) < 39) {
            throw new Exception('Error parsing credit card response: Too few fields');
        }

        $response = array(
            'response_code' => $fields[self::RESPONSE_CODE],
            'response_reason_code' => $fields[self::RESPONSE_REASON_CODE],
            'response_reason_text' => $fields[self::RESPONSE_REASON_TEXT],
            'avs_result_code' => $fields[self::AVS_RESULT_CODE],
            'transaction_id' => $fields[self::TRANSACTION_ID],
            'card_code' => $fields[self::CARD_CODE_RESPONSE_CODE]
        );

        return $response;
    }