Вопрос знающим php - помогите разобраться
В php можно сделать такую замечательную вещь, как var_dump(@$_POST['LMI_SYS_TRANS_DATE'])
может через неделю я его уже и подучу и сам разбирусь, что здесь к чему, но пока нужна помощь.
Заранее thx.
распечатай значение переменной
Конкретно в твоем случае могу сказать, что бы ты не заморачивался и тупо хавал любые типы переменных без ограничений. Как ты сам догадался, через LMI_HASH передается контрольный md5 полученой строки, и если тебе будут впаривать не ту строку, то он просто не совпадет и у тебя ничего выполнятся не будет. Проверки и приведение переменных к какому-либо типу считаю в данном случае излишней параноей.
PS + %20 и остальная фигня тебя должна интересовать мало. По крайней мере у меня с этим вопросов никогда не возникало, а если у тебя не принимаются платежи - то проверь, что включил аккаунт в режим реальной работы, а не в режим теста - из-за этого может несовпадать хеш.
Правда мне это пока мало поможет. Я на php не пишу. Мне этот код надо перегнать в bash или C++.
С документацией на их сайте я ознакомлен уже давно. Бесит, что у них стоит проверка при уведомлении о платеже, но нет никаких проверок при предварительной проверке платежа.
Имею на руках реальный https-запрос, пришедший мне от Web Money Merchant Server'a и подписанный md5 - хэшем. Секретное слово у меня есть. Перебрал уже более 20 способов сконфигурировать такую подпись с помощью openssl dgst -md5, пока безуспешно.
Короче туплю.
Ладно, тему можно закрыть. Думаю завтра сам осилю.
Спасибо за ответы.
Мне этот код надо перегнать в bash или C++.тогда тебе придётся распарсивать переменные вручную.
всё. осилил
Оставить комментарий
Yulka-MOl
дан код$LMI_HASH = isset($_POST['LMI_HASH']) ? strval($_POST['LMI_HASH']) : '';
//загружаем остальные параметры аналогичным образом
$code = md5($LMI_PAYEE_PURSE.$LMI_PAYMENT_AMOUNT.$LMI_PAYMENT_NO.$LMI_MODE.
$LMI_SYS_INVS_NO.$LMI_SYS_TRANS_NO.
$LMI_SYS_TRANS_DATE.SECRET_KEY.$LMI_PAYER_PURSE.$LMI_PAYER_WM);
if ($code != strtolower($LMI_HASH{
exit;
}
дан запрос
http://zavidovo:8080?LMI_MODE=1&LMI_PAYMENT_AMOUNT=0.50...
Вопрос, что храниться в переменной $LMI_SYS_TRANS_DATE?
(имеется ввиду, заменено ли в ней : на %3A, пробел на %20, и на что заменен +)