Сам сейчас работаю над данным скриптом робокассы. Советы действительно дельные. Отключить проверку XSS в хуке input.
а проверить от кого пришло можно по входящим данным от робокассы. Даже когда усер оплатил и ему предлагается вернуться, то передаются и дополнительные параметры по которым можно сделать фильтр.
Читай инструкцию http://www.robokassa.ru/ru/DocTest/Ru/Interface.aspx
Переадресация пользователя при успешной оплате (SuccessURL)
В случае успешного исполнения платежа Покупатель может перейти по данному адресу.
Методом, выбранным при регистрации, будут переданы следующие параметры ("чек" об оплате):
OutSum=nOutSum&
InvId=nInvId&
SignatureValue=sSignatureValue&
Culture=sCulture
[&пользовательские_параметры]
- nOutSum
- -полученная сумма. Сумма будет передана в той валюте, которая была указана при регистрации магазина. Формат представления числа - Разделитель точка.
- nInvId
- - номер счета в магазине
- sSignatureValue
- - контрольная сумма MD5 - строка представляющая собой 32-разрядное число в 16-ричной форме и любом регистре (всего 32 символа 0-9, A-F). Формируется по строке, содержащей некоторые параметры, разделенные ':', с добавлением sMerchantPass1 (указывается при регистрации) т.е. nOutSum:nInvId:sMerchantPass1[:пользовательские параметры, в отсортированном порядке].
К примеру если при инициализации операции были переданы пользовательские параметры shpb=xxx и shpa=yyy то подпись формируется из строки ...:sMerchantPass1:shpa=yyy:shpb=xxx
- sCulture
- - язык общения с клиентом, выбранный при инициализации оплаты. Значения: en, ru.
Переход пользователя по данному адресу с корректными параметрами (соответствия CRC) означает, что платеж по реквизитам Продавца выполнен успешно. Сервис несет финансовую ответственность перед Продавцом в соответствии с Соглашением за достоверность такого подтверждения.
Однако для дополнительной защиты желательно, чтобы факт оплаты платежа проверялся скриптом исполняемым при переходе на Result URL, или путем запроса XML-интерфейса о результате данной платежной операции, и только при реальном наличии счета с номером nMerchantInvId в БД магазина.
Переадресация пользователя при отказе от оплаты (FailURL)
В случае отказа от исполнения платежа Покупатель перенаправляется по данному адресу.
Для того, чтобы Продавец мог разблокировать заказанный товар на складе при отказе от его оплаты методом, выбранным при регистрации, будут переданы параметры:
OutSum=nOutSum&
InvId=nInvId&
Culture=sCulture
[&пользовательские_параметры]
- nOutSum
- -полученная сумма. Сумма будет передана в той валюте, которая была указана при регистрации магазина. Формат представления числа - Разделитель точка.
- nInvId
- - номер счета в магазине
- sCulture
- - язык общения с клиентом, выбранный при инициализации оплаты. Значения: en, ru.