Получение информации о балансе на кошельках
#1 Новичок
Отправлено 03 мая 2006 - 03:08
Существует ли возможность получить информацию о балансе на своих кошельках через HTTPS-интерфейс ? Хочется написать скрипт на Perl который будет раз в час проверять баланс кошельков и при его изменении слать уведомление по почте.
http://www.webmoney....evelhttp1.shtml Сдесь описание подобной функции не нашёл.
#2 Продвинутый пользователь
Отправлено 03 мая 2006 - 12:45
Привет
Существует ли возможность получить информацию о балансе на своих кошельках через HTTPS-интерфейс ? Хочется написать скрипт на Perl который будет раз в час проверять баланс кошельков и при его изменении слать уведомление по почте.
http://www.webmoney....evelhttp1.shtml Сдесь описание подобной функции не нашёл.
На HTTPS нет. Что Вам мешает воспользоваться интерфейсом Х9
http://www.webmoney....evelxml19.shtml
А прикрутить интерфейс можно. Только вот в Perl я не смогу Вам помочь.
#3 Новичок
Отправлено 03 мая 2006 - 15:12
Предложеный вами вариант, как мне показалось не очень подходит для моей задачи, может я не прав просветите пожалуйста.
#4 Продвинутый пользователь
Отправлено 03 мая 2006 - 16:50
Задача такова что, нужно быстро реагировать на изменения баланся денег на кошельке, сидеть круглые сутки самому перед компьютером не очень интересно, поэтому и родилась идея написания скрипта, который будет по расписанию проверять баланс, при его изменении делать уведомление мне по электронной почте. Я себе предстовлял это как скрипт на Perl (хотя это не принципиально) который запускается из CRONа.
Предложеный вами вариант, как мне показалось не очень подходит для моей задачи, может я не прав просветите пожалуйста.
Предложенный нами вариант используется в атоматическом обменнике для выборки баланса с кошельков, которые по крону прописываются в базу каждые 10 минут. так же возможно уведомление в виде смс на телефон.
Файл выполнен в виде пхп-скрипта с использованием XML-интерфеса Х9, поскольку проверка баланса на кошельках возможна только при его использовании
#5 Новичок
Отправлено 03 мая 2006 - 17:05
Если вы ещё поделились бы со мной вашим скриптом на пхп, благодарность моя вам была бы безграничной.
#6 Продвинутый пользователь
Отправлено 03 мая 2006 - 17:15
Меня сбил с толку пример с вашего сайта на Javascript, увидев его я как-то даже не подумал что XML вполне можно использовать в Перле. Спасибо вам за помощ.
Если вы ещё поделились бы со мной вашим скриптом на пхп, благодарность моя вам была бы безграничной.
Пожалуйста:
include "wm.inc";
$wmconst__shop_wmid = "111111111111"; // WMID
$usd = "Z111111111111"; // WMZ
$rur = "R111111111111"; // WMR
// Формируем уникальный номер запроса
$RequestN = _DateID();
// WM идентификатор магазина.
global $wmconst__shop_wmid;
// Формирование строки для подписи
$PlanStr = "$wmconst__shop_wmid$RequestN";
// Формирование подписи
$SignStr = _GetSign($PlanStr);
// XML-запрос к системе WMT
$W3sUrl = "
<w3s.request>
<reqn>$RequestN</reqn>
<wmid>$wmconst__shop_wmid</wmid>
<sign>$SignStr</sign>
<getpurses>
<wmid>$wmconst__shop_wmid</wmid>
</getpurses>
</w3s.request>
";
// Вызов сервисной функции модуля wm. Получение результатов XML-запроса к системе WMT
$XMLRes = _XMLReq($W3sUrl);
//Обработка результата
// определяем количество кошельков
$countpurses = eregi_replace("([^\[]*)<purses cnt=\"","",$XMLRes);
$countpurses = eregi_replace("\" wmid=([^\[]*)","",$countpurses);
// веделяем облась данных о кошельке из результата запроса
$datas = eregi_replace("([^\[]*)<purses[^>]+>","",$XMLRes);
$datas = eregi_replace("</purses>([^\[]*)","",$datas);
// определяем номера кошельков
preg_match_all ("|<purse [^>]+><[^>]+>(.*)</[^>]+>|U", $datas, $purses, PREG_PATTERN_ORDER);
$purses = $purses[1];
// определяем суммы кошельков
preg_match_all ("|<am[^>]+>(.*)</[^>]+>|U", $datas, $money, PREG_PATTERN_ORDER);
$money = $money[1];
//Раскладываем деньги по кошелькам
$i = 0;
while ($i < $countpurses)
{
// Вычисляем сумму, которую нужно положить в кошелек обменнго пункта
$money[$i] = round($money[$i],2);
// распределяем суммы кошельков по соответствующим переменным
if ($purses[$i] == $rur)
{
$WMR = $money[$i];
}
if ($purses[$i] == $usd)
{
$WMZ = $money[$i];
}
$i++;
}
#7 Новичок
Отправлено 03 мая 2006 - 18:52
#8 Продвинутый пользователь
Отправлено 03 мая 2006 - 19:07
Наверное покажусь вам наглым, но всётаки осмелюсь попросить вас, показать листинг функции _XMLReq().
В файле wm.inc
/******************************************************************
* _XMLReq - реализация XML-запроса к сертификационному центру WM *
* Для внутреннего пользования функциями данного модуля *
* *
* Параметры : $addr - формат запроса *
* *
* Возвращает : Результат вызова XML-запроса (в формате XML) *
* *
******************************************************************/
function _XMLReq($addr)
{
$ch = curl_init("https://w3s.webmoney...p/XMLPurses.asp");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $addr);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
if (curl_error($ch)) echo '<p>'.curl_error($ch).'</p>'
curl_close($ch);
return $result;
}