return не выводит данные никуда, он возвращает значение функции. Да, таким способом можно возвращать массив, ничего плохого нет. В современных версиях PHP можно массивы записывать короче:
return ['str' => $result[0], 'gor' => $result[1]];
Если проблема проявляется в нескольких браузерах - то возможно, стоит программа наподобие антивируса или какого-нибудь клинера, и она настроена так, чтобы удалять при выходе следы за браузерами.
На стороне браузеров - запретить флеши и прочие плагины (при условии отсутствия в браузере уязвимости, приводящей к выполнению произвольного кода). На стороне приложений - никак, ибо приложения могут узнать список доступных сетевых адаптеров и слить налево. Разве что при помощи брандмауэра запретить ходить в сеть всему, кроме нескольких доверенных приложений.
Подключаете агрегатор платежей, там настраиваете URL обратного вызова, по которому отправляется информация об успешном платеже, а на стороне этого скрипта обязательно при каждом запросе не забывайте проверять контрольную сумму (чтобы знать, действительно ли запрос отправлен агрегатором или каким-то левым злоумышленником) - и в случае успеха вносите в базу и выполняете нужные действия.