ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

WMSigner PHP
  #1  
Старый 19.12.2007, 21:22
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


Lightbulb WMSigner PHP

Тут вот хотел сделать себе WMSigner, а он только на C++ и .Net есть...
На PHP тоже есть, но им уже больше года...не фурычат..

WMSigner можно сделать по статье: http://www.opennet.ru/base/dev/webmoney_pay.txt.html
Нету перла?

Переписал перл скрипт на PHP определение SignStr...:
PHP код:
<?php
    $path    
"/home/www/wm/";
    
$sign    "/home/www/wm/wmsigner";
    
$wmid    ""#wmid
    
$kwy    ""#key for wmid
    
$base64    ""#base64 вашего ключа kwm..Чтобы узнать его запустите скрипт convert.php и запишите выведенные символы в эту строку...

    
function space($str$len)
    {
        
$sum    $len strlen($str);
        
$hwost '';
        for (
$i 0$i $sum$i++)
        {
            
$hwost $hwost.'0';
        }
        
$string $hwost.$str;
        return 
$string;
    }

    function 
GetSign($inStr)
    {
        global 
$path$sign$key$wmid$base64;
        
chdir($path);
        
$desc = array(
        
=> array("pipe""r"),
        
=> array("pipe""w"),
        
=> array("pipe""r") );
        
$process proc_open($sign." -w ".$wmid." -p ".$key." -K64 ".$base64$desc$ech);
        
fwrite($ech[0], "$inStr\004\r\n");
        
fclose($ech[0]);
        
$SignStr fgets($ech[1], 133);
        
fclose($ech[1]);
        
$return_value proc_close($process);
        return 
$SignStr;
    }

    
$OrderID '999'# номер счета на Вашем сайте
    
$PurseOfStores ='Z348176092735'# кошелек сайта
    
$LoginOfStores '521142404582'# WMID сайта
    
$LoginOfCust ''# WMID покупателя, зададим как константу
    
$InvAddress 'INVADDRESS'# адрес, после оплаты юзер придет сюда..
    
$Amount '10'#сумма счета, которую должен оплатить покупатель
    
$Desc 'DESC'# описание
    
$Period '0'#Срок протекции сделки
    
$Experation '3'#Срок действия счета - 3 дня

    
list($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());
    
$request    = (1900 $year).space($mon2);
    
$request    .= space($mday2).space($hour2);
    
$request    .= space($min2).space($sec2).space($sec2);

    
$PlanStr    $OrderID.$LoginOfCust.$PurseOfStores.$Amount;
    
$PlanStr   .= $Desc.$InvAddress.$Period.$Experation.$request;

    echo 
"Строка подписи \$PlanStr: ".$PlanStr."<br/><br/><br/>";

    
$SignStr GetSign($PlanStr);
    print 
"Цифровая подпись (возвращена WMSigner'ом): ".$SignStr."<br><br><br>";

    
$url    "https://w3s.webmoney.ru/asp/Invoice.asp?SL=".$LoginOfStores."&";
    
$url    .= "SP=".$PurseOfStores."&CL=".$LoginOfCust."&IN=".$OrderID."&D=".$Desc."&";
    
$url    .= "AD=".$InvAddress."&A=".$Amount."&E=".$Experation."&P=".$Period."&";
    
$url    .= "RN=".$request."&SS=".$SignStr;

    echo 
"HTTPS запрос к системе:<br/>".$url."<br/><br/><br/>";
?>
convert.php
PHP код:
<?php
    $fn            
"key.kwm"#.kwm key file from your wmid
    
$handle        fopen($fn,"r");
    
$contents    fread($handlefilesize($fn));
    
fclose($handle);
    echo 
base64_encode($contents);
?>
Вообщем переписал и увидел ошибку...
Пошел в гугль и увидел что WMSigner с недавнего времени сделали с минимальным персональным аттестатом...
Мда

Обновление 1.02.2008

Последний раз редактировалось Isis; 01.02.2008 в 07:10..
 
Ответить с цитированием

  #2  
Старый 01.02.2008, 07:12
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Обновление.....все через 1 функцию..безопасное хранение пароля
 
Ответить с цитированием

  #3  
Старый 27.02.2008, 05:13
Аватар для dkameleon
dkameleon
Новичок
Регистрация: 24.10.2007
Сообщений: 2
Провел на форуме:
3878

Репутация: 10
По умолчанию

Цитата:
Сообщение от Isis  
На PHP тоже есть, но им уже больше года...не фурычат..
Что значит больше года и не фурычат?

Вообще последнее обновление было как раз за две недели до твоего поста и ПХП версия отлично "фурычит".

Может быть не там и не то искали?
http://my-tools.net/wmxi/
 
Ответить с цитированием

  #4  
Старый 27.02.2008, 07:30
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Хм, допустим...
Посмотри сколько файлов требует их скрипт и сколько строк мой

+ в моем скрипте посл.апдейта не надо пихать файлы кипера на сервак...
Так что хек
 
Ответить с цитированием

  #5  
Старый 27.02.2008, 11:45
Аватар для dkameleon
dkameleon
Новичок
Регистрация: 24.10.2007
Сообщений: 2
Провел на форуме:
3878

Репутация: 10
По умолчанию

Цитата:
Сообщение от Isis  
Хм, допустим...
Посмотри сколько файлов требует их скрипт и сколько строк мой

+ в моем скрипте посл.апдейта не надо пихать файлы кипера на сервак...
Так что хек
Все аргументы притянуты за уши )
Количество файлов - не проблема пересобрать в один файл.
Файлы на сервак - ключ точно так же легко помещается в переменную. Достаточно было изучить функцию инициализации класса

Но есть существенное преимущество:
модуль Сигнера реализован на пхп, а это не требует компиляции и запуска бинарника на сервере, из-за чего либа может работать даже в сейфмоде и с кучей прочих жёстких ограничений.

есть только неудобное требование - необходим bcmath, не всегда всюду устанавливаемый.

а так же вроде бы ещё не до конца отловлены ньюансы с 64-разряными платформами (в частноти правильнось мд4 хэшей).
 
Ответить с цитированием

  #6  
Старый 27.02.2008, 14:58
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Но все мой мой скрипт работает
За знания ловите плюс )
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Статья.Оптимизация программ на PHP Dr.Z3r0 PHP, PERL, MySQL, JavaScript 2 17.12.2007 00:50
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Пишем Php код, устойчивый к ошибкам k00p3r Чужие Статьи 0 10.07.2005 22:34
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ