Как защитить от смены значение values?
Не передавать в открытом виде данные, которые можно подменить.
Передавать ID, а цену и всё прочее вытягивать из БД.
Правильно будет проверять после оплаты, или сделать так, чтобы пользователь отправлял форму с ID товара на Ваше сайт, на стороне сервера разбираете запрос, устанавливаете все необходимые параметры и отправляете (редирект) пользователя на страницу оплаты