Yes, I would agree with the above and secure a visa before you arrive in CAN - the money will be well worth it in saving yourself some stress! You will clear immigration in CAN, so you will arrive at the domestic terminal in Hainan - not very likely you will get a VOA there, unless you are Russian!