I downloaded PayuMoney payment extension for Magento 1.9 from their website and copied the respective directories/code in the app folder.

In the Admin, it is showing the configuration settings for this extension where I entered following details as instructed in the integration guide document:

```
Enabled: ​ ‘Yes’                         
Environment: sandbox               
PayUmoney Key: Test key as    provided in the guide (for testing purpose)  
PayUmoney Salt:​ Test    salt as provided in the guide (for testing purpose)  
Citrus Payment/Vanity Url: Blank  
Citrus Access Key:​ Blank  
Citrus Secret Key: Blank  
Route (%): Blank

```

[Refer the screenshot: PayuMoney extension setting in Magento Admin](https://i.stack.imgur.com/cHsFi.png)  

I want to test the functionality hence want to use sandbox environment with test credentials provided in the guide. But with above configuration setting, PayuMoney is not coming up for the customer in the checkout page as a payment option.

I checked related threads but it has not helped much. Appreciate if anyone has any idea to solve this problem.
['https://Stackoverflow.com/questions/47488903', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/4873820/']
First of all, it's important to realize that though "model the animal kingdom in a class hierarchy" is a common beginner exercise, and often used in examples -- I use Animal, Mammal, Giraffe, Tiger, and so on all the time in examples -- **it is not a realistic problem to solve using OO techniques**. It's simply intended to get you thinking about the concepts in OO programming by thinking about a domain that you already understand well.

Real zoos which have software to manage their animal inventory do not build class hierarchies like this because their concerns do not actually include what mammals have in common over what birds have in common. Though animal kingdom analogies are useful to get going with OO, it's important to not come away with the belief that every feature that exists in a real-world hierarchy has to be modeled in the class hierarchy.

So, that said, the rest of my critique will be assuming that you really do want to model the animal kingdom as an exercise.

Second, the fundamental problem with your implementation is that the hierarchy is either not deep enough or too deep. The problem is that *mammal and bird should be abstract* because there is no thing in the world that is *just a mammal* or *just a bird*. What you want is an abstract class bird that extends animal, and then a concrete (and probably sealed!) class Crow that extends Bird.

Then the question to ask is: do I really need the mammal and bird levels at all? Are they *useful* to my program? Am I ever going to have a method that can take any mammal but no lizard? If its not useful then eliminate it, and go straight from animal to crow.

Third, the sound a crow makes is "caw caw", not "crow sound". :-)

Fourth, to answer your best question: you typically use an interface when you have *several unrelated things that "can do" the same thing but with different implementations* and you use an abstract class *to share implementation details amongst classes that have an "is a kind of" relationship.*

Making a sound is a something that a lot of things can do that are unrelated to each other. A bird and a piano are not the same kind of thing and they have different mechanisms, but they both make sounds. So making sound should be represented by an interface. A bird is a kind of animal, and there might be functions common to all animals that are specialized by birds.

In short: a bird is a kind of animal, so it should be a subclass. A bird can make a sound, and lots of other things can also, so making a sound should be an interface.
one of the reasons you want to use Interface is that C# does not support multiple inheritance. 

In general, I would like to think of interface as ability or feature instead of being a model. 

Something like:

```
    public interface ISwimable
    {
         int SwimmingSpeed { get; set; }
    }

    public interface IWalkable
    {
        int RunningSpeed { get; set; }
    }

```

Now if I have an animal that lives in water I would like it to implement ISwimable, and if I have an animal that can walk, its class should implement IWalkable, and if it can do both, it will implement both.