On the giffgaff dashboard (https://giffgaff.com/call-services) there's an option to bar incoming premium texts but that does not bar Payforit charges (the very ones that are used to scam us) and only ads to confusion and/or creates a false sense of protection.
I've enquired with giffgaff agent and got told that this bar blocks Payforit charges as well which isn't true. Me being persistent, the agent agreed to double check with the technical team who simply decided that silent treatment was the best way to deal with my question.
As for getting your money back, I would definitely call them. Even though you'll pay for the call (unless you have a goodybag), it'll probably still work out far less than the £4.50 you've been charged.
I fixed the problem by email contacting them as soon as possible. But make sure also to send "STOP" to the number indicated. This is the answer:
Thank you for providing the mobile number charged, the service joined is ZapWin Games, a Network approved PayForIt service
The service has been entered from browsing the internet and clicking on a banner advert which opened the site, then the on-screen prompts where clicked which lead to the charge. The billing is PayForIt which is a mobile billing gateway approved by all Network operators.
A £4.50 refund of the subscription has been arranged as you are not happy with the service that was joined.
The refund will be issued via the Post Office SMS refund service. This is issued within 5 days, upon receipt of the SMS from the Post Office (it has a unique code within it) please present the text message to any Post Office counters and the staff will verify the code and give you the cash over the counter.