1 Compétitions officielles nationales et internationales senior, incluant le parcours amateur et en équipe réserve. 2 Matchs officiels. Dernière mise à jour : 15 mai 2014
Il existe une incertitude concernant sa ville de naissance, certaines sources mentionnant Tarbrax(en), South Lanarkshire et d'autres Winchburgh, West Lothian. Il est le fils de William Harper Senior, forgeron, et de Christina Brown. Tout en recevant une formation lui aussi de forgeron pour suivre les pas de son père, il commence à jouer au football dans des clubs junior de Winchburgh. Pendant la Première Guerre mondiale, il s'engage dans l'armée de terre britannique et se retrouve affecté à la 5e brigade des Scots Guards, sur le Front de l'Ouest. Sportif polyvalent, il est champion poids lourd de sa brigade ainsi que le capitaine de l'équipe de rugby à XV des Scots Guards.
Il devient professionnel en s'engageant pour Hibernian (1er match le contre Airdrie) où il reste 5 saisons de 1920 à 1925. Il joue ainsi plus de 200 matches officiels avec Hibs (dont 178 en Écosse), participant à deux finales de Coupe d'Écosse consécutives en 1923 et 1924, toutes les deux perdues.
En novembre 1925, il devient l’une des premières signatures du nouvel entraîneur d’Arsenal, Herbert Chapman qui l’engage pour la somme de 4 000 £, ce qui constitue un record à l’époque pour un gardien de but. Il fait ses débuts avec les Gunners le pour une victoire 6-1 contre Bury. Il s’impose rapidement comme le gardien numéro 1 de l’équipe, devant Jock Robson(en) et Dan Lewis(en), et joue la grande majorité des matches de la fin de la saison 1925-26 et du début de celle de 1926-27, jusqu’à une défaite 2-4 contre leurs rivaux du North London derby, Tottenham Hotspur, le . Herbert Chapman blâme alors Harper pour cette défaite et titularise Dan Lewis(en) à partir de ce moment.
Harper ne supportant pas cette situation décide de quitter Arsenal de manière précipitée et rejoint alors l’American Soccer League en s’engageant pour les Fall River Marksmen(en). Il y joue 79 matches de championnat, remportant le titre de champion lors de la saison 1928-29. Il y joue également 3 matches en Coupe des États-Unis et 6 matches de Lewis Cup(en).
Toutefois, de nouvelles règles sont édictées par l’American Soccer League qui interdisent désormais à une même personne d’être propriétaire de plusieurs clubs en même temps. Sam Mark(en) est alors contraint de vendre l’un de ses clubs et il met en vente les Boston Bears(en). Ne trouvant pas de repreneur, il doit se contraindre à dissoudre l’équipe au printemps 1930.
Lors de l’été 1930, il rejoint de nouveau les Fall River Marksmen(en), sans y jouer de matches officiels, mais participant à des matches amicaux contre les équipes écossaises des Rangers et de Kilmarnock ainsi qu’à la tournée en Europe centrale.
Après trois années aux États-Unis, Harper retourne en Europe et revient à Arsenal. Dan Lewis(en), qui lui avait ravi la place de titulaire trois ans auparavant, a entre-temps quitté le club et Harper devient le gardien numéro 1 devant Charlie Preedy(en) et Gerrit Keizer.
Il devient champion d’Angleterre à l’issue de la saison 1930-31, ce qui constitue le premier titre de champion pour Arsenal. Néanmoins, la saison suivante le voit cantonner à une place de remplaçant. Son dernier match avec Arsenal a lieu le contre les Blackburn Rovers. Il dispute lors de ses deux passages à Arsenal un total de 63 matches de championnat et 10 matches de Coupe.
En décembre 1931, il s’engage pour Plymouth Argyle où il reste jusqu’à la fin de sa carrière en 1939, y jouant 82 matches officiels.
Pendant la Seconde Guerre mondiale, il travaille aux docks de Rosyth en Écosse. Après la guerre, il retourne au Plymouth Argyle, mais cette fois-ci pour y occuper divers postes, que ce soit préparateur physique ou même jardinier responsable du terrain du Home Park. Il montre un tel attachement au club que celui-ci décide de lui offrir un match jubilé contre Arsenal en 1972 et de nommer son terrain d’entraînement, le Harper’s Park, d’après son nom.