I do not have an Android phone and have hit a snag.
Google says you cannot test In App Purchases on an Emulator, details found here.
Install your application on an Android-powered device. You cannot use an emulator to test Google Play Billing.
Question 1: Is this also true for the Genymotion emulator?
If this is truly the case, I guess I could not have in app purchases, and instead have two versions of the product. A Free, limited edition and a paid-for edition.
Question 2: If I have a solely paid-for version, do I need anything in my code that needs to be checked? By this, I mean the user can only install a paid-for version once they have paid Google Play. The actual program itself is oblivious that it has been paid for. Do I need anything in my code to indicate it is a paid-for version?
If the Android version sold, I would obviously get a physical machine. But at the moment, I do not want to keep on buying loads of different hardware just to keep on checking stuff.
Buying a phone is a personal decision, and you aren't going to get good advice on a programming site. You might be better to try https://android.stackexchange.com/, but even there, opinion based questions "what phone should I get" aren't encouraged as the stackoverflow / stackexchange sites are for things with right and wrong answers, not opinion. If I were you, I'd either do the research myself (if your time isn't valuable). If your time is valuable, I'd just go to argos and get the cheapest Android based phone you can which currently is £15 at Argos right now. (less cost than your time). There'll be something you don't like about it, probably many things, but at that point you'll know what they are and can make a more informed decision.