

May I ask for the reason of refusing to get onboard !? Do I get my money back ?
I hold Iranian passport and Canadian Permanent Resident Card. I have traveled to many countries including Australia, England and seems to had police clearance checked thousand times! I purchased the ticket online 8 hours before the flight. My trip was from Vancouver to Kuala Lumpur through Guangzhou and a 16 hours waiting for the connection flight. I checked even Chinese embassy in Iran if I need any kind of visa and it shows that I didn't need any. I also don't need to have one to enter Malaysia as an agreement between two countries and all Airlines know these rules and have these information on their screens. By the check-in counter in Vancouver they told me that they had to contact immigration in China and after one hour they told me that they couldn't get me on-board because immigration in China said so !
I went to Malaysia that night without any problem with Philippine airline and came back without any problem but had to pay twice for the ticket.
The worst and funniest part is that the airline and online agency who sold the ticket put me in loophole for refund or asking for %25 penalty fee for missing flight !
Do they have the right to refuse getting me on-board ? May I complain to any services to know the reason of refusing to get me on-board? How can I claim for a full refund or compensation?
Thanks for reading such a complicated story