Кто нибудь работал в последнее время с WMSigner на Valuehost

AleksejVL

Новичок
Кто нибудь работал в последнее время с WMSigner на Valuehost

Третий день мучаю WMSigner на Valuehost-e (причем когда-то там все нормально работало), было много вопросов, большую часть поборол самостоятельно, но вот последний необъяснимый какойто глюк.

Используется стандартный пример с сайта WM: http://download.webmoney.ru/php-20060131.zip

После долгих мучений WMSigner-а нормально заработали:
Интерфейс 1. Выписывание счета от одного участника (магазина, ресурса) другому участнику (покупателю) системы
Интерфейс 2. Проверка состояния выписанного ранее счета (оплачен счет или нет).
Интерфейс 5. Проверка выполнения операции по переводу средств между кошельками.
Интерфейс 7. Идентификация и аутентификация клиента - владельца WebMoney Keeper Classic на стороннем сайте, проекте, ресурсе.
Интерфейс 8. Получение информации о принадлежности кошелька wm-идентификатору.

А при попытке использованиия:
Интерфейс 3. Перевод средств с одного кошелька на другой.
Интерфейс 4. Перевод средств с одного кошелька на другой с протекцией сделки.


Получаю "Ошибка перевода : Неверная подпись"

Как такое может быть?
Почему для некоторых запросов подпись валидна а для некоторых нет???

-~{}~ 03.04.06 21:43:

Вопрос снят, если кому интересно - напишу :)
 

SiMM

Новичок
> Вопрос снят, если кому интересно - напишу :)
Так написал бы - найдёт кто тему поиском - не будет долго ждать ответа, а увидит его сразу.
 

AleksejVL

Новичок
Во-первых, стандартный пример http://download.webmoney.ru/php-20060131.zip неработает на Валуе.
Необходимо заменить функцию _GetSign в wm.inc на:
Код:
function _GetSign($inStr)
{
  $fp = popen("./WMSigner", "r+");

  $PlanStr = "$inStr\004\r\n";
  fwrite($fp,$PlanStr);
  $s = fgets($fp, 133);
  pclose($fp);

  return $s;
}
или
Код:
function _GetSign($inStr)
{
$tmp=tempnam("/pub/home/woodbr/webdengi/cards/wmpay","wm");
$fp = popen("./WMSigner >".$tmp, "w");
$PlanStr = "$inStr\004\r\n";
fwrite($fp,$PlanStr);
pclose($fp);
$fp=fopen($tmp,"r");
$s = fgets($fp, 133);
fclose($fp);
unlink($tmp);
return $s;
};
Во-вторых, WMSigner можете скопировать в свою папку из /usr/local/bin/WMSigner

В-третьих, не знаю у всех ли из 49-ти серверов так, но на моем "входящий" и "исходящий" IP разные.
 

alexhemp

Новичок
AleksejVL

Понятно - почему они разные, потому что входящие проходят через прозрачный прокси-акселлератор...
 
Сверху