Vse o BUX

Объявление

Если вам помогли на форуме, помогите и вы нам.

Разместите здесь свой баннер всего за 1 wmr в сутки.



Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Vse o BUX » SoooFast » Подключение Интерфейсов


Подключение Интерфейсов

Сообщений 1 страница 10 из 68

1

Здравствуйте. Возникла небольшая проблемка, Wm просят прислать им пример XML запроса, которым производится выплаты и соответственно ответ. Помогите пожалуйста (Подключение Х2 интерфейса дял Автовыплат БЕЗ участия админа, т.е. обычные автовыплаты не через кнопку из админки а сразу по запросу) Благодарю

0

2

Проверка работоспособности WMSigner

Модуль WMSigner используется при подписи запроса ключом WM Keeper Classic. Ознакомьтесь с подробной информации о модуле WMSigner, получении ключей и настройке. Ниже описывается, как можно проверить его работоспособность из PHP. Вызов модуля происходит из функции wm_GetSign(), на вход она получает строку для подписи, возвращает строку из 132-х символов, либо текст ошибки, либо пустую строку в случае когда невозможно вызвать модуль WMSigner.

<? echo wm_GetSign('123'); ?>

Формирование XML-запроса

Формировать XML-запрос можно любым способом, главное чтобы результат соответствовал синтаксису XML и формату запроса. Воспользуемся функциями DOM XML.

Код:
<?
    $reqID = wm_ReqID();
	
    $doc = domxml_new_doc('1.0');
	$root = $doc->create_element('w3s.request');
	$root = $doc->append_child($root);
	$tmp = $doc->create_element('reqn');
    $tmp->set_content($reqID);
    $root->append_child($tmp);
    $tmp = $doc->create_element('wmid');
    $tmp->set_content($wmWMID);
    $root->append_child($tmp);
    $getpurses = $doc->create_element('getpurses');
    $root->append_child($getpurses);
    $tmp = $doc->create_element('wmid');
    $tmp->set_content($wmWMID);
    $getpurses->append_child($tmp);
	
	$request = $doc->dump_mem(TRUE);
?>

Функция wm_ReqID() генерирует уникальный идентификатор запроса, основываясь на функциях времени.

Выполнение запросов к сертификационному центру

Запросы к разным интерфейсам похожи друг на друга и отличаются лишь URL-ом, форматом XML-запроса и возвращаемым результатом. Приведем код функции осуществляющей вызов CURL:

Код:
<?
function wm_xmlHttpsReq($addr, $xml){

	# Использовать переменные из конфигурационного файла config.php
	global $wmURL, $wmCAcert, $wmType, $wmKey, $wmCert, $wmPass;

	# Инициализируем CURL нужным URL
	$ch = curl_init($wmURL.$addr);
	# В выводе CURL http-заголовки не нужны
	curl_setopt($ch, CURLOPT_HEADER, 0);
	# Возвращать результат, а не выводить его в stdout
	curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
	# Метод http-запроса POST
	curl_setopt($ch, CURLOPT_POST,1);
	# Данные запроса
	curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
	# Укажем путь к корневому сертификату WebMoney CA:
	curl_setopt($ch, CURLOPT_CAINFO, $wmCAcert);
	# Внимание! Не используйте curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE)!
	# Это дает возможность осуществить атаку с подменой DNS.

	# Выполнить запрос
	$result=curl_exec($ch);
	# Обработаем возможные ошибки
	if( curl_errno($ch) != 0 ) {
    die('CURL_error: ' . curl_errno($ch) . ', ' . curl_error($ch));
	};
	# Закроем обработчик
	curl_close($ch);
	return $result;
}
?>

Разбор полученного ответа
Ниже приведена структура ответа сервера:

Код:
<w3s.response>
	<reqn></reqn> - номер запроса, на который высылается ответ
	<retval></retval> - код ошибки выполнения запроса: 0 - выполнен успешно 
	<retdesc></retdesc> - описание ошибки если retval != 0
	<тип_ответа>
    ... - параметры ответа
	</тип_ответа>
</w3s.response>

Осуществлять разбор XML-ответа можно любым удобным методом (SAX, DOM, Regexp и т.д.) В данном случае был использован способ через функцию PHP xml_parse_into_struct():

Код:
<?
    $xml_parser = xml_parser_create('UTF-8');
    # Парсим XML в переменные $vals, $index
    xml_parse_into_struct($xml_parser, $result, $vals, $index);
    xml_parser_free($xml_parser);

# Проверим ответ на корректность

Код:
    $check = wm_CheckResp($vals,$index);
    if( $check != 0) die($check);

# Поместим список кошельков, их описаний, и сумм на них в переменную $purses
   

Код:
 $purses = array();
    $pursename = '';
    $amount = '';
    $desc = '';
    for($n = 0; $n < count($vals); ++$n){
        $e = $vals[$n];
        switch ($e['tag']){
            case 'PURSE':
                switch ($e['type']){
                    case 'open':
                            $pursename = ''; $amount = ''; $desc = '';
                            break;
                    case 'close':
                            $purses[$pursename] = array('amount' => $amount, 'desc' => $desc);
                            break;
                }
                break;
            case 'PURSENAME':
                $pursename = $e['value'];
                break;
            case 'AMOUNT':
                $amount = $e['value'];
                break;
            case 'DESC':
                $desc = $e['value'];
                break;
        }
    }
?>

Более подробная информация по интерфейсу х2 здесь.

0

3

Благодарю!

0

4

И это всё им надо??

0

5

dedmaro3 написал(а):

И это всё им надо??

Если просят, значит надо.
Щас все кто подают заявку на подключение х2 проходят проверку, и на знание PHP тоже.

0

6

Да. С этим вообще жесть, куча вопросов сыпится. Жаль, что отвечают они раз в сутки... Так же нужно писать Бизнес-план им расписывать, по мимо всего прочего..

0

7

У меня вот попросили пример запроса в XML формате, которым бы вы выполнили перевод с одного кошелька на другой. Мне нужно всё, написанное выше, прислать им?
У меня раньше автовыплаты работали без проблем, 1 раз перезжал на новый хост за 2 дня обновили ip, а тут на свой сервер переехал и выдали своё((, хорошо что Ваш проект прошел проверку.
Но с запросами я думаю, явно перегнули

Отредактировано web669 (2010-04-03 18:01:50)

0

8

web669 написал(а):

Мне нужно всё, написанное выше, прислать им?

Все написанное выше - это пример запросов, подстраивать нужно именно к своему сайту и IP.

0

9

Супер.. Это не те запросы, мне отказали.. Вообще весело теперь ждать месяц

0

10

Народ, помогите пожалуйста. Кто знает что конкретно ответить им

0


Вы здесь » Vse o BUX » SoooFast » Подключение Интерфейсов