Whether you might like the policy or not, a business is free to decide who it will sell to and who it won't for whatever reason the owner sees fit, bar those specific cases which have been legislated against (race, sex, etc.). So if they want to restrict it to somebody holding their card who has, presumably, in obtaining that card been vetted to see that he meets the relevant criteria, they're perfectly free to do so.
But that said, it does seem that whoever was on duty that day should have checked that before accepting the cash and completing the transaction. And having realized his mistake, it would surely be much better for the manager to have let it go on that occasion for goodwill, as he's now no doubt lost a customer for good.