A user is a person that uses the product.
A customer is the person or the company that buys the product:
- If your customer is a single person, the user and the customer may be the same (typical case if your product is a game).
- If your customer is a company, the customer will in practice be represented by one or more persons called customer representatives, who each may or may not be a user (typical case if your product is a business software)
In the latter case, there can be multiple competing requirements. Users of departments A may want something, but users of department B may want something else. The customer requirements then are the requirements of the company as a whole, and can diverge from user requirements (e.g company's management can arbitrate between A and B or define additional requirements such as interoperability with business partners).
In practice there is a lot if ambiguity. A customer company may for example be called "user", because its employees use the product. This is of course an ambiguous use of the term "user". Does a user interface mean anything to a company? Sometimes users may be called customers, because it is assumed that they represent their company. This is again misleading, since the users don't pay for the software from their own money, and maybe they would even prefer another product. So clarify what is really meant with these terms whenever possible.