RuWeb.net Forum

WMSigner - помогите пожалуйста!
Anonymous - 17.5.2003 в 00:22

Никто не сталкивался с установкой on-line магазина с использованием wmsigner? Ну никак не совладать - php-скрипт выдает ошибки:

Warning: popen(./WMSigner,r+) [function.popen]: Invalid argument in /home/xxx/public_html/wm.inc on line 38
Warning: fwrite(): supplied argument is not a valid stream resource in /home/xxx/public_html/wm.inc on line 41
Warning: fgets(): supplied argument is not a valid stream resource in /home/xxx/public_html/wm.inc on line 42
Warning: pclose(): supplied argument is not a valid stream resource in /home/xxx/public_html/wm.inc on line 43

Что бы это значило?


support - 17.5.2003 в 23:53

http://forum.webmoney.ru/asp/n_message.asp?idcl=21&MessageID=22077


Anonymous - 23.8.2003 в 03:10

У меня то же самое.
Пробывал все примеры, которые опубликованы на форуме webmoney. То вообще пустую строку возвращает, то пишет, какуе-то лабуду. Замучился уже. Как правидьно все это дело настроить?


Anonymous - 12.10.2003 в 10:44

Если правильно помню, r+ надо просто на r заменить (убрать плюсик).


support - 12.10.2003 в 15:49

Неправильно помните. Этого недостаточно.


Anonymous - 12.10.2003 в 16:33

Ок, тогда привожу пример, который реально работает:

function _GetSign($inStr) {
$inStr=EscapeShellCmd($inStr);
$fp = popen("echo $inStr04 | ./WMSigner", "r" );
$s = fgets($fp, 133 );
pclose($fp);

return $s;
}


Anonymous - 9.11.2003 в 10:48

to support
Так какой код работает на Вашем хостинге а то всё дело встало
ЗЫ: ссылки не давайте уже всё прочитал лучше сам код напишите


support - 9.11.2003 в 11:44

Смотря на каком сервере.
И код чего вас интересует? _GetSign? Вышеприведенный работает без проблем. (Если все настроено правильно.)


Anonymous - 10.11.2003 в 07:43

Цитата:
сообщение support
Вышеприведенный работает без проблем. (Если все настроено правильно.)


А что может быть не правильно настроенно?
там вроде и настраивать то не чего


support - 10.11.2003 в 11:52

Нечего настраивать? Ну так значит у вас все работает? Ну и хорошо. ;)


Anonymous - 14.11.2003 в 07:34

Цитата:
сообщение support
Нечего настраивать? Ну так значит у вас все работает? Ну и хорошо. ;)


Значит я совсем тупой
Раскажите по порядку где чего настраивать и куда чего ложить (в смысле кикие файлы в какие папки)
Ну ЧАЙНИК я


Anonymous - 14.11.2003 в 07:36

Забыл
А как проверить работает он или нет
какой командой а то в скриптах пишет не правильная подпись


support - 15.11.2003 в 14:14

Создаете WMSigner.cgi (права - 755)


Код:
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo ""
echo "<pre>"
./WMSigner < WMSigner 2>&1
При обращении через браузер должен выдавать строку, сгенерированную WMSigner'ом.


Anonymous - 12.2.2004 в 15:05

У меня такая же проблема.
Можете сами позырить http://195.161.118.119/~azartnet/demo.php

Я так думаю, что скрипт не может прочесть Wmsigner.


Anonymous - 12.2.2004 в 18:50

Тепеть другая проблема.
WMSigner не генерирует строку :(http://195.161.118.119/~azartnet/demo.php


support - 12.2.2004 в 23:15

Аноним, раз уж вы себе завели отдельную тему, отвечаю вам там http://ruweb.net/forum/viewthread.php?tid=525


support - 18.3.2004 в 23:09

На хостингах с включенным safe_mode (а значит и на наших новых серверах с DirectAdmin) следует использзовать следующий вариант


Код:

function _GetSign($inStr){
$dptpec = array(0 => array("pipe", "r"),
1 => array("pipe", "w"));

$fp = proc_open("./WMSigner", $dptpec, $pipes);
$PlanStr = "$inStr04rn";
fwrite($pipes[0], $PlanStr);
fclose($pipes[0]);
while(!feof($pipes[1])) $s .= fgets($pipes[1], 133);
fclose($pipes[1]);
return $s;
}


Nikola - 15.2.2005 в 15:38

А кто может подсказать что за ошибка '-3' которую возвращает функция _GetSign ????


support - 15.2.2005 в 21:19

кажется это когда пароль от WM-идентификатора неправильный или когда файл с ключем не удается прочитать.


Nikola - 16.2.2005 в 14:24

Ваша правда.
Но тогда возникает еще одна проблема. Функция возвращает пустое значение. Что не так:
________________________
function _XMLReq($addr)
{
$ch = curl_init("https://w3s.webmoney.ru/asp/XMLPurses.asp";);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $addr);

$fp = tmpfile();
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_exec($ch);
curl_close($ch);

$result = "";
fseek($fp,0,SEEK_SET);
while (!feof($fp))
{
$result = fgets($fp,128);
}
fclose($fp);
return $result;
}
_____________________________
??????????????


support - 16.2.2005 в 15:14

http://forum.ruweb.net/viewthread.php?tid=968


Nikola - 16.2.2005 в 18:17

Я не совсем понимаю всю данную процедуру, но там рассматривалась другая функция (function _HttpsReq($addr) )
Или здесь нет особой разницы???


support - 16.2.2005 в 23:58

особой - нет. суть проблемы одна и та же.
===
function _XMLReq($addr){
$ch = curl_init("https://w3s.webmoney.ru/asp/XMLPurses.asp");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $addr);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CAINFO, 'WMRA.cer');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);

$result = curl_exec($ch);

curl_close($ch);

return $result;
}
===

думаю так


Nikola - 17.2.2005 в 10:28

Спасибо, все именно так!!!


Vasilij-Lavrov - 21.1.2006 в 11:53

у меня проблема я чайник короче уже где-то месяц или два лазию по вашим форумам туда и сюда как я понял у меня PHP на сервере работает в режиме Safe Mode, так как у меня есть DirectAdmin.
Защитил каталог со скриплами файлом .htaccess
и вписал в него со злости:
Deny All

сделал это я правильно?

и ещё нашел такой текст
-----------------------------------------------------
Кстати, из под mod_php вы в любом случае ничего своего запустить не сможете. Там можно использовать только наш WMSigner.
-----------------------------------------------------
Это как понять "наш WMSigner"?

где он лежит или вообще есть пример со всем необходимым (разумеется кроме файла с ключами)

мой сайт http://baksik.ru

документацию всю на форуме и на WebMoney прочитал,


Vasilij-Lavrov - 21.1.2006 в 13:07

при использовании скрипта:
<?
include("wm.inc";);

echo _GetSign("demo";);
list($wmtrn_n, $err) = TransCreate("Z677558851278", "0.01", "55555555555", "test";);
Print "<p>$wmtrn_n</p><p>$err</p>";
?>

выдает браузер:

Error 130.

Ошибка связи с сертификационным центром WebMoney

что эта такое в чем причина?


kpv - 21.1.2006 в 21:45

Цитата:
сообщение Vasilij-Lavrov
Это как понять "наш WMSigner"?

где он лежит или вообще есть пример со всем необходимым (разумеется кроме файла с ключами)

вот самый простой пример
создайте файл test.php, туда помещаете этот код:

Код:
function _GetSign($inStr)
{
$dptpec = array(0 => array("pipe", "r"),
1 => array("pipe", "w"));
$fp = proc_open("WMSigner", $dptpec, $pipes);
$PlanStr = "$inStr04rn";
fwrite($pipes[0], $PlanStr);
fclose($pipes[0]);
while(!feof($pipes[1])) $s .= fgets($pipes[1], 133);
fclose($pipes[1]);
return $s;
}
echo _GetSign("demo");


[Изменено 21.1.2006 от kpv]


kpv - 21.1.2006 в 21:48

Цитата:
сообщение Vasilij-Lavrov
Защитил каталог со скриплами файлом .htaccess
и вписал в него со злости:
Deny All

сделал это я правильно?

если права на файлы не меняли, то правильно ли Вы сделали или нет проверить достаточно просто: в браузере наберите url, который обращается, например, к файлу ключей в этом каталоге и результат увидите сами.


Anonymous - 27.1.2006 в 14:04

Где взять откомпилированный WMsinger для вашего хостинга?
Или как его самому скомпилировать?
Я какой то выложил, вроде для вашего, но он не дает подпись.


Anonymous - 27.1.2006 в 14:13

Да. я еще указваю авбсолютный путь до wmsinger. А я его расположил в domains. Он ничего не выдает :(.


kpv - 27.1.2006 в 14:46

надо указывать именно так, как в примере выше. Если WMSigner, вдруг, не установлен на Вашем сервере - укажите сервер - поставим.
и всегда пишите имя своего сайта и номер Вашего акаунта в биллинге. Серверов для шаред хостинга у нас больше десяти....