"В чем разница между этими словами?"
Хмм. Хороший вопрос.
На мой взгляд, разница в основном не смысловая, а грамматическая. Так, глаголы "платить" (несовершенный вид) и "заплатить" (совершенный вид) при обозначении предметов или услуг, которые вы покупаете, требуют предлог "за". Например, в супермаркете вы можете "заплатить ЗА покупки".
Глаголы "оплачивать" (несовершенный вид) и "оплатить" (совершенный вид) предлога в этом случае не требуют. Например, в супермаркете вы можете "оплатить покупки".
Однако не всё так просто. Так, глаголы "платить/заплатить" не требуют предлога, если существительное в винительном падеже относится не к покупке, а к самой плате.
Например, вы можете "заплатить тысячу рублей", "заплатить нужную сумму" и даже "заплатить налоги". Предлоги здесь не нужны.
При этом помните, что с этими глаголами можно, конечно же, использовать существительные не только в винительном падеже. Так, например, вы можете:
1) Заплатить по чеку (дательный падеж, предлог "по")
2) Оплатить покупку карточкой (творительный падеж, без предлога).
Большой смысловой разницы я лично не вижу, но, может быть, кто-нибудь ещё что-то подскажет)