Вариант "платить по QR-коду" является наиболее правильным. Код в данном случае выступает как некий выставленный продавцом документ, в соответствии с которым нужно произвести оплату, поэтому фраза продолжает ряд аналогичных устоявшихся выражений "платить по счету", "платить по векселю", "платить по накладной".
Вариант "платить QR-кодом" неудачен, так как творительный падеж после слова "платить" отсылает к платежному средству: "платить золотом", "платить крупными купюрами", "оплатить банковским переводом", а код — это не платежное средство, а ссылка на сумму и способ оплаты.