как в момент покупки проверить, что у покупателя на счете цр есть
Всё просто -
у каждого ЦР есть свой собственный идентификатор.
На счёте кошелька в ЦБ ничего проверять не нужно. Покупатель заранее перемещает ЦР с кошелька в ЦБ на типа "холодный" кошелёк на своём смартфоне. При оплате он через, например, НФС переводит ЦР с кошелька на смартфоне на кошелёк в терминале продавца. А продавец потом переводит тем или иным способом с кошелька терминала на кошелёк организации.
Так это и задумано - осталось только реализовать это практически, технически никаких проблем нет.
Всё новое это старое - именно так перемещаются наличные купюры,
на каждой из которых внезапно есть свой уникальный
айдишник номер.
Теперь понятно, почему такое нельзя провернуть с простым безналом? Именно потому, что он не имеет индивидуальных уникальных номеров. Поэтому ему нужны банки-шманки, клиринги-шмилинги, интернет в торговом зале и всё такое!