Дмитрий Чередниченко: А зачем вы делаете json_encode уже для кодированного массива? Т.е. получается двойной json_encode... А по поводу пустого ответа - надо смотреть, что за скрипт на принимающей стороне. Может быть банально - ошибка входных данных и вместо текстового описания ошибки возвращается пустая строка.
Посетил ваш сайт - сайты под ключ делать хорошо, а пытаться учиться новому самостоятельно - плохо?) По каждому параметру из вашего вопроса гугл отдает подробные ответы. Но по сути вот как надо
На сайте робокассы есть даже примеры кода на разных языках. Везде ее использую, особо подводных камней нет, кроме вывода только на WM для частных лиц. А так - делается 3 скрипта (success, fail, result) и 2 страницы (success, fail) и в путь. С обновленным кабинетом магазина у них даже поддержка стала быстрее.
Этот класс делает не совсем то, что по-видимому требовалось. Он заставляет футер прижаться к низу страницы и висеть там все время. А изначальная цель (как я понял) - это прижать футер к низу, если контента меньше, чем высота области окна, но если контента больше - футер должен уезжать вниз и не быть видным до момента скролла в самый низ.