I am not sure why their contracts stipulated ONLY $ and euros, apparently, but they are valid contract nevertheless.
You can't just ask to be paid in rubles when the contract says: euros (for example).
There might be willing intermediaries, though (for the low low 5% or something).
Putin doesn't need rubles, he has all the rubles that he can print, and he's the only supplier because no sane country/bank/etc would hold that worthless crap. Even if e.g. Germany wanted to pay in rubles, they'd be buying them from Putin anyway and giving them back to him. Anyway, it's all just propaganda for Russian population despite the best efforts of Kremlin botfarms to make it seem like some grand tactical move.