Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > WebMoney


Автор: Platon 22.11.2006, 11:25
Здравствуйте, уважаемые.

Что-то не могу найти информации по сайту, как можно перевести деньжата с кошелька на кошелек?
Сразу уточню, это не перевод денег покупателя сайту-продавцу. Т.е. просто перевести деньги со счета на счет, без всяких заведений карзин.

Автор: szz 22.11.2006, 13:08
скриптом? низя. Я уже достаточно хорошенько эту тему облазил, так что могу с некоторой увереностью утверждать.

единственно, только http://www.webmoney.ru/rus/developers/interfaces/index.shtml, но это, опять же, мерчант, а ты указал, что тебе как раз это не нужно.

Автор: Eugene_Bond 22.11.2006, 14:28
Почему нельзя?
Можно. Как правильно заметил szz, это делается при помощи XML-интерфейсов.

Для того, чтобы это работало надо обязательно иметь атестат необходимого уровня и WMSigner на сервере для подписывания запросов.

http://www.webmoney.ru/rus/developers/interfaces/xml/purse2purse/index.shtml

Автор: szz 22.11.2006, 14:30
да, надо иметь персональный сертификат.

Автор: Platon 22.11.2006, 16:55
Ребята, А потестить то я его смогу?
И еще вопрос, сразу по теме, чем отличаются reqn от trans? По сути выполняют одну и ту же функцию, т.е. можно их определить номером перевода, который будет всегда расти.

Начала разбираться с WMSigner, но попался на грабли.

Использую рекомендуемый код.

Код

function wm_GetSign($inStr) { 
    global $wmWMSigner;
    $descriptorspec = array(
    0 => array("pipe", "r"),
    1 => array("pipe", "w"),
    2 => array("pipe", "r") );
    $process = proc_open($wmWMSigner, $descriptorspec, $pipes );
    
    if (is_resource($process)) {
        fwrite($pipes[0], "$inStr\004\r\n");
        fclose($pipes[0]);
        $s = fgets($pipes[1], 133);
        fclose($pipes[1]);
        $return_value = proc_close($process);
        if(strlen($s)<132){
            die("WMSigner error: $s");
        };
        return $s;
    } else {
        die("Error create WMSigner process");
    die();
    };
}


WMSinger.ini
456345645636
wefgwef
keys.kwm

Расположение файлов
/dir/WmSigner.exe
/dir/WmSigner.ini
/dir/keys.kwm 

keys.kwm - содрал из папки клиента WebMoney Classic

Ошибка !LoadKeys 

В чем проблема, уже сколько бьюсь smile

Автор: tolik777 23.11.2006, 09:10
1. Вообщем заходишь в WM Keeper Classic. Делаешь резервную копию кошелька. Запоминаешь пароль к резервной копии.
На выходе у тебя получается тоже файл .kwm размером 164 байта. Вот именно этот файл ты и должен положить в ту папку и указать его имя в wmsigner.ini. А также и пароль к резервной копии.
2. Как уже сказали нужен персональный аттестат.
3. Нужно написать по внутренней почте WM письмо в тех поддержку. Цель проекта, IP адрес с которого будут запросы приходить и URL проекта. Дают не всем, мне например разрешение на отправку сообщений не дали. Сказали обоснавание нужно.
4. reqn - инкрементный номер запроса. Всегда должен быть больше предыдущего значения. Обычно используют time.
А trans - это номер в твоей системе учета. Советую завести счетчик в БД и после каждого перевода увеличивать на 1. И если хранищь логи переводов, то в БД записывать номер этого перевода.

Автор: Platon 23.11.2006, 09:16
И все равно, не больно то хочет загружать ключи. Использую WM Classic 3.0.0.1 WMSigner.exe для Windows, прочел, что не поддерживается в данный момент и что используется на свой страх и риск.
Сделал резервную копию. Задал пароль "aaa". Сохранился 34234234.kwm и 34234234.pwm я пишу в ini 
34234234
aaa
34234234.kwm

И все равно лажает.

Автор: Eugene_Bond 23.11.2006, 18:51
Цитата(Platon @  22.11.2006,  16:55 Найти цитируемый пост)
Ребята, А потестить то я его смогу?



Цитата(tolik777 @  23.11.2006,  09:10 Найти цитируемый пост)
2. Как уже сказали нужен персональный аттестат.


Вроде как был у них еще один атестат -- атестат разработчика. Но с их частыми изменениями системы аттестирования я не уверен существует такой атестат сейчас или нет

Автор: Platon 24.11.2006, 01:28
Бог с этим аттестатом, мне бы заставить тачку генерировать подпись.

Автор: Eugene_Bond 24.11.2006, 10:50
Цитата(Platon @  23.11.2006,  09:16 Найти цитируемый пост)
Сделал резервную копию. Задал пароль "aaa". Сохранился 34234234.kwm и 34234234.pwm я пишу в ini 
34234234
aaa
34234234.kwm


полный путь от корня сервера к .kwm файлу, если не ошибаюсь

Автор: Platon 24.11.2006, 10:55
Спасибо!!! Выручил. Только мне каждый раз исправлять эту штуку при переносе ее с одного хоста на другой? Или можно какой нибуддь хорошей мулькой воспользоваться?

Автор: Eugene_Bond 24.11.2006, 13:55
Лучше исправлять.
Но можно попробовать указать относительный путь типа: ./34234234.kwm

Проверить не могу поэтому результат не гарантируется.

Автор: tolik777 25.11.2006, 11:36
Не обязательно полный путь. Если скрипт вызывается из той же папки, то протсо достаточно указание имени файла. У меня например полный путь не прописан и все работает.
Еще попробуй поставь самую последнюю версию WM Keeper.

Цитата

Вроде как был у них еще один атестат -- атестат разработчика. Но с их частыми изменениями системы аттестирования я не уверен существует такой атестат сейчас или нет


Система аттестации у них менялась всего один раз (ввели аттестат продавца и разработчтика, они приравниваются к персональному), и формальный еще и псевдонима.
Аттестат разработчика тут не при чем. Нужен персоналный и выше, т.е. >= 130.
А я еще не встречал к примеру ни одного человека у которого был бы аттестат разработчика и вообще мне не понятно для чего он нужен.

Автор: Platon 25.11.2006, 11:40
Дак, как же? Я вот впервые работаю с WebMoney через XML интерфейс, более того стаж работы довольно небольшой, т.е. вероятность напортачить весьма велика. А с аттестатом разработчика можно было бы вдоволь поэкспериментировать. 
И еще: 1110create error step=13 - это и есть, то что нужен аттестат?

П.С.: Странно, мне относительным путем не получалось, зато абсолютный оттарабанил отлично.

Автор: tolik777 26.11.2006, 11:21
Цитата

А с аттестатом разработчика можно было бы вдоволь поэкспериментировать. 

А с чего вы взяли что с аттестатом разработчика можно было бы вдоволь эксперементировать? Вы знаете для чего он вообще нужен?

Цитата

1110create error step=13 - это и есть, то что нужен аттестат?

Номер ошибки скажите. Непонятно или 1110 или 110?
Если 110, то нужно сначала прописать интерфейс. Как - я выше обьяснял. 
А вообще все коды ошибок в доке описаны. Дока там нормальная, по ней вполне можно разобраться, что и как.

Автор: Platon 26.11.2006, 11:33
Цитата(tolik777 @  26.11.2006,  11:21 Найти цитируемый пост)
Вы знаете для чего он вообще нужен?

Оказывается что нет.


Извините, многоуважаемый tolik777, но 110 - это "нет доступа к интерфейсу", а не "нужно сначала прописать интерфейс" (похоже я чего то не понял), все шаги, кроме получения аттестата я проделал.
Логичный ответ на такое сообщение, что может дело в аттестате.

Добавлено @ 11:35 
curl_setopt($ch, CURLOPT_CAINFO, $wm_ca_cert);
использую WebMoneyCA.cer (скачанный с сайта WebMoney), может в этом проблема? По идее наверно надо WebMoneyCA.crt, но где его взять.

Автор: tolik777 27.11.2006, 10:22
Цитата

но 110 - это "нет доступа к интерфейсу", а не "нужно сначала прописать интерфейс"

Это оно и есть.

Так у вас даже аттестата нет? Тогда естественно ничего не будет работать. После получения аттестата нужно будет еще прописывать интерфейс. 110 ошибка как раз из-за этого и возникает. А на формальный или аттестат псевдонима вам никто интерфесы не пропишет.

А WebMoneyCA.crt береться на офсайте в разделе разработчикам. Но проблема не в этом.

Автор: Platon 27.11.2006, 11:48
Цитата(tolik777 @  27.11.2006,  10:22 Найти цитируемый пост)
А на формальный или аттестат псевдонима вам никто интерфесы не пропишет.


Ну, во для этого как раз я и думал, годится аттестат разработчика.


Автор: tolik777 27.11.2006, 12:08
Дело в том чтобы получить аттестат разработчика нужно иметь большой опыт программирования и работы с их интерфейсами. При чем не только под PHP, ASP, но и под Си юникс и т.п. Т.е. более продвинутое. Ну и плюс персональный аттестат должен быть, а на него уже выдается аттестат разработчика. Получить его не так просто, как вы думаете, я бы даже сказал очень сложно.
Но вот для чего он нужен непонятно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)