This is aimed at developers with a working knowledge of ASP.NET. I've assumed this will be in some sort of MVC environment so you'll need to make changes if you work with webforms. Personally I've built this within an Umbraco website and I've excluded some of the Umbraco specific implementation details, specifically how I store the order details and mark the order as complete when the payment has been confirmed by PayPal. I will post about this soon.
I'm not intending to cover the basics of PayPal and html forms. I'll be concentrating on the information I personally had difficulty in finding (and getting to work)
PayPal requires TLS 1.2 so you will need at least Windows Server 2008 R2 to enable this, without this it's a non starter.
An SSL certificate is soon going to be required for every website so I'd recommend getting used to that now. Unless it's something already handled for you by your hosting company, you probably should know that due to restricted availability of IP addresses you will either need an SSL certificate that supports multiple domains, such as a XXX from GeoCerts, or you will need SNI support to allow multiple SSL certificates to share an IP address. SNI requires Windows Server 2012 or later.
We're going to be using