Success URL пусть пишет в базу айдишник юзера и оплачено: true, и при входе на нужную страницу пусть это проверяется, и если нет такого, то редирект?
Это не очень хорошая идея, так делать небезопасно. Обычно делается след образом - после того как провайдер вызвал станицу success, вам надо обратится к провайдеру, используя данные платежа который вы получили в запросе, с целью получить статус платежа Непосредственно у провайдера. Только после этого запись в базу итп.
К страниц success может обратится кто угодно, это не безопастно.