protected function paymentTransactionToRequest(PaymentTransaction $paymentTransaction)
    {
        $requestFields = array();

        foreach (static::$requestFieldsDefinition as $fieldDescription)
        {
            list($fieldName, $propertyPath) = $fieldDescription;

            $fieldValue = PropertyAccessor::getValue($paymentTransaction, $propertyPath);

            if (!empty($fieldValue))
            {
                $requestFields[$fieldName] = $fieldValue;
            }
        }

        return new Request($requestFields);
    }