WebMoney-кофейня
Наша группа ВКонтакте. Получай бонусы просто так!WebMoney TOP - только для лучших сайтов!
Поставить музыку в Кофейне:
Louis Armstrong - La Vie En Rose
Страницы: (3) [1] 2 3  ( Перейти к первому непрочитанному сообщению ) ОтветитьНовая тема

> Интерфейсы для Telepay
adviser
Post #1 (Отправлено: 1.02.2009 22:38)     Быстрое цитирование
Цитировать


Гурман
****

Сообщений: 180
Регистрация: 2.04.2006
Откуда: Ульяновск
Выкладываю функции для взаимодействия с telepay.wmtransfer.com через SOAP на PHP4 без использования сторонних библиотек типа NuSOAP, которые весят ~500 Кб... Взаимодействие происходит через Curl.

<?
$wsdl = "https://telepay.webmoney.ru/telepayws/telepay.asmx?WSDL";
$host_wsdl = "telepay.webmoney.ru";
$dir_wsdl = "http://telepay.wmtransfer.com/";
$Currency = 1;

//////////////////////////////
//                          //
//     Запрос к серверу     //
//                          //
//////////////////////////////

function connect($operation, $req)
{
global $wsdl,$host_wsdl,$dir_wsdl;

$header = array('Host: '.$host_wsdl.'','Content-Type: text/xml; charset=utf-8','Content-Length: '.strlen($req),'SOAPAction: "'.$dir_wsdl.''.$operation.'"');

$ch = curl_init($wsdl);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);

ob_start();
curl_exec($ch);
$content=ob_get_contents();
ob_end_clean();
curl_close($ch);

$content=str_replace("&lt;", "<", $content);
$content=str_replace("&gt;", ">", $content);

return $content;
}

////////////////////////////////////////////////////
//                                                //
//     Cписок провайдеров указанной категории     //
//                                                //
////////////////////////////////////////////////////

function GetContractorsByCategory($type)
{
global $dir_wsdl;

$operation = "GetContractorsByCategory2";

$req .= "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$req .= "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$req .= "<soap:Body>";
$req .= "<GetContractorsByCategory2 xmlns=\"".$dir_wsdl."\">";
$req .= "<type>".$type."</type>";
$req .= "</GetContractorsByCategory2>";
$req .= "</soap:Body>";
$req .= "</soap:Envelope>";

$content=connect($operation, $req);

       // Номер провайдера        
       preg_match_all("|<ID>(.*)</ID>|U", $content, $ID, PREG_PATTERN_ORDER);              
       $ID = $ID[1];
       // Имя провайдера        
       preg_match_all("|<Name>(.*)</Name>|U", $content, $Name, PREG_PATTERN_ORDER);              
       $Name = $Name[1];
       // Принимаемые валюты        
       preg_match_all("|<Currencies>(.*)</Currencies>|U", $content, $Currencies, PREG_PATTERN_ORDER);              
       $Currencies = $Currencies[1];
 
return array($ID, $Name, $Currencies);
}

//////////////////////////////////////
//                                  //
//     Определение ID оператора     //
//                                  //
//////////////////////////////////////

function DetectContractor($Account)
{
global $dir_wsdl;

$operation = "DetectContractor2";

$req .= "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$req .= "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$req .= "<soap:Body>";
$req .= "<DetectContractor2 xmlns=\"".$dir_wsdl."\">";
$req .= "<Account>".$Account."</Account>";
$req .= "</DetectContractor2>";
$req .= "</soap:Body>";
$req .= "</soap:Envelope>";

$content=connect($operation, $req);

       // Номер провайдера        
       preg_match_all("|<DetectContractor2Result>(.*)</DetectContractor2Result>|U", $content, $ID, PREG_PATTERN_ORDER);              
       $ID = $ID[1];        
 
return array($ID);
}

////////////////////////////////////////////////////////////////////////
//                                                                    //
//     Предварительная проверка возможности зачисления провайдеру     //
//                                                                    //
////////////////////////////////////////////////////////////////////////

function Verify($Contractor, $Account, $Amount)
{
global $dir_wsdl,$Currency;

$operation = "Verify2";

$req .= "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$req .= "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$req .= "<soap:Body>";
$req .= "<Verify2 xmlns=\"".$dir_wsdl."\">";
$req .= "<Contractor>".$Contractor."</Contractor>";
$req .= "<Account>".$Account."</Account>";
$req .= "<Amount>".$Amount."</Amount>";
$req .= "<Currency>".$Currency."</Currency>";
$req .= "</Verify2>";
$req .= "</soap:Body>";
$req .= "</soap:Envelope>";

$content=connect($operation, $req);

       // Статус        
       preg_match_all("|<Verify2Result>(.*)</Verify2Result>|U", $content, $Verify2Result, PREG_PATTERN_ORDER);              
       $Verify2Result = $Verify2Result[1];
 
return array($Verify2Result[0]);
}

//////////////////////////////////////////////////////////////
//                                                          //
//     Предварительный запрос на зачисление провайдеру      //
//                                                          //
//////////////////////////////////////////////////////////////

function Request($Contractor, $Account, $Amount)
{
global $dir_wsdl,$Currency;

$operation = "Request";

$req .= "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$req .= "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$req .= "<soap:Body>";
$req .= "<Request xmlns=\"".$dir_wsdl."\">";
$req .= "<Contractor>".$Contractor."</Contractor>";
$req .= "<Account>".$Account."</Account>";
$req .= "<Amount>".$Amount."</Amount>";
$req .= "<Currency>".$Currency."</Currency>";
$req .= "</Request>";
$req .= "</soap:Body>";
$req .= "</soap:Envelope>";

$content=connect($operation, $req);

       // Статус        
       preg_match_all("|<RequestResult>(.*)</RequestResult>|U", $content, $RequestResult, PREG_PATTERN_ORDER);              
       $RequestResult = $RequestResult[1];
       // Уникальный номер транзакции в сервисе        
       preg_match_all("|<TranID>(.*)</TranID>|U", $content, $TranID, PREG_PATTERN_ORDER);              
       $TranID = $TranID[1];
 
return array($RequestResult[0], $TranID[0]);
}

////////////////////////////////////////////
//                                        //
//     Проверка состояния транзакции      //
//                                        //
////////////////////////////////////////////

function Check($TranID)
{
global $dir_wsdl;

$operation = "Check2";

$req .= "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$req .= "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$req .= "<soap:Body>";
$req .= "<Check2 xmlns=\"".$dir_wsdl."\">";
$req .= "<TranID>".$TranID."</TranID>";
$req .= "</Check2>";
$req .= "</soap:Body>";
$req .= "</soap:Envelope>";

$content=connect($operation, $req);

       // Статус        
       preg_match_all("|<Check2Result>(.*)</Check2Result>|U", $content, $Check2Result, PREG_PATTERN_ORDER);              
       $Check2Result = $Check2Result[1];
 
return array($Check2Result[0]);
}

/////////////////////////////
//                         //
//     Номер кошелька      //
//                         //
/////////////////////////////

function PurseFor($Contractor)
{
global $dir_wsdl,$Currency;

$operation = "PurseFor";

$req .= "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$req .= "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$req .= "<soap:Body>";
$req .= "<PurseFor xmlns=\"".$dir_wsdl."\">";
$req .= "<Contractor>".$Contractor."</Contractor>";
$req .= "<Currency>".$Currency."</Currency>";
$req .= "</PurseFor>";
$req .= "</soap:Body>";
$req .= "</soap:Envelope>";

$content=connect($operation, $req);

       // Номер кошелька        
       preg_match_all("|<PurseForResult>(.*)</PurseForResult>|U", $content, $PurseForResult, PREG_PATTERN_ORDER);              
       $PurseForResult = $PurseForResult[1];
 
return array($PurseForResult[0]);
}

function Pay($Purse, $WMTranID, $TranID)
{
global $dir_wsdl;

$operation = "Pay";

$req .= "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$req .= "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$req .= "<soap:Body>";
$req .= "<Pay xmlns=\"".$dir_wsdl."\">";
$req .= "<Purse>".$Purse."</Purse>";
$req .= "<WMTranID>".$WMTranID."</WMTranID>";
$req .= "<TranID>".$TranID."</TranID>";
$req .= "</Pay>";
$req .= "</soap:Body>";
$req .= "</soap:Envelope>";

$content=connect($operation, $req);

       // Статус        
       preg_match_all("|<PayResult>(.*)</PayResult>|U", $content, $PayResult, PREG_PATTERN_ORDER);              
       $PayResult = $PayResult[1];
 
return array($PayResult[0]);
}
?>


Извиняюсь заранее за то что нет никаких комментариев, но честное слово, лень было писать smile.gif


==================
ЕСП Веб-касса - оплата онлайн игр, пополнение счета Skype, Одноклассники за WebMoney!
Написать приватное сообщениеНаписать по emailВебсайтICQ
2nik
Post #2 (Отправлено: 2.02.2009 10:45)     Быстрое цитирование
Цитировать


Прохожий
*

Сообщений: 17
Регистрация: 5.09.2008
Откуда: Львов
Спасибо большое, уверен - пригодится smile.gif


==================
======
wm-life :)
Написать приватное сообщениеНаписать по emailВебсайтICQ
adviser
Post #3 (Отправлено: 2.02.2009 10:50)     Быстрое цитирование
Цитировать


Гурман
****

Сообщений: 180
Регистрация: 2.04.2006
Откуда: Ульяновск
ob_start();
curl_exec($ch);
$content=ob_get_contents();
ob_end_clean();
curl_close($ch);


заменить на

$content=curl_exec($ch);


$content=str_replace("&lt;", "<", $content);
$content=str_replace("&gt;", ">", $content);


Не факт что необходимо, тестировал на другом WSDL документе, там надо было заменять smile.gif


==================
ЕСП Веб-касса - оплата онлайн игр, пополнение счета Skype, Одноклассники за WebMoney!
Написать приватное сообщениеНаписать по emailВебсайтICQ
ganushak
Post #4 (Отправлено: 2.02.2009 11:43)     Быстрое цитирование
Цитировать


Ценитель кофе
***

Сообщений: 75
Регистрация: 9.10.2006
Участник WM-Клуба # 310
Чтобы обойтись без обвязок вида ob_start() ... ob_end_clean() задавайте параметр

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


Это сообщение отредактировал ganushak - 2.02.2009 11:44


Написать приватное сообщениеНаписать по emailВебсайт
Capitoshka
Post #5 (Отправлено: 9.02.2009 23:16)     Быстрое цитирование
Цитировать


Завсегдатай кофейни
**

Сообщений: 20
Регистрация: 9.02.2009
Зарегистрировался, ввел свой кошелек, вписал IP-адрес сервера. Но все же выдает ошибку:
HTTP Error 403.6 - Forbidden: IP address of the client has been rejected.
В чем дело?


Написать приватное сообщениеНаписать по email
adviser
Post #6 (Отправлено: 9.02.2009 23:19)     Быстрое цитирование
Цитировать


Гурман
****

Сообщений: 180
Регистрация: 2.04.2006
Откуда: Ульяновск
Capitoshka сказал
Зарегистрировался, ввел свой кошелек, вписал IP-адрес сервера. Но все же выдает ошибку:
HTTP Error 403.6 - Forbidden: IP address of the client has been rejected.
В чем дело?

Напишити им на E-mail telepay@webmoney.ru, WMID который подключили, номер кошелька и IP адрес сервера с которого будут запросы к интерфейсам


==================
ЕСП Веб-касса - оплата онлайн игр, пополнение счета Skype, Одноклассники за WebMoney!
Написать приватное сообщениеНаписать по emailВебсайтICQ
Capitoshka
Post #7 (Отправлено: 9.02.2009 23:26)     Быстрое цитирование
Цитировать


Завсегдатай кофейни
**

Сообщений: 20
Регистрация: 9.02.2009
adviser, спасибо за оперативность smile.gif


Написать приватное сообщениеНаписать по email
Capitoshka
Post #8 (Отправлено: 10.02.2009 21:36)     Быстрое цитирование
Цитировать


Завсегдатай кофейни
**

Сообщений: 20
Регистрация: 9.02.2009
Операция DetectContractor2 - Определение ID оператора. Интересно откуда инфа? В ихнем telepay.doc не нашел. (Правда у меня всё время возвращает -1).

   [Склеено в 21:39]

И еще вопрос: Я так понял что для Киевстар минимум 20 грн. Но видел сайт с онлайн оплатой где минимум 1 грн. Это у них другой сервис?


Написать приватное сообщениеНаписать по email
TelePay.WebMoney
Post #9 (Отправлено: 11.02.2009 14:01)     Быстрое цитирование
Цитировать


WMT developer
*

Сообщений: 16
Регистрация: 19.03.2008
Capitoshka сказал
Операция DetectContractor2 - Определение ID оператора. Интересно откуда инфа? В ихнем telepay.doc не нашел. (Правда у меня всё время возвращает -1).

[font=Courier]   [Склеено в 21:39][/font]

И еще вопрос: Я так понял что для Киевстар минимум 20 грн. Но видел сайт с онлайн оплатой где минимум 1 грн. Это у них другой сервис?

DetectContractor2 выдает ID оператора на основе имеющейся информации по платежам.

Киевстар действительно дает пополнять лицевые счета на суммы менее 20грн., однако в этом случае взымается дополнительная комиссия (поэтому на сервисе поставлено ограничение).


Написать приватное сообщениеНаписать по email
Capitoshka
Post #10 (Отправлено: 11.02.2009 16:16)     Быстрое цитирование
Цитировать


Завсегдатай кофейни
**

Сообщений: 20
Регистрация: 9.02.2009
Спасибо, а снять ограничение никак? А то большинство клиентов пополняются на ​меньшую сумму.
А с DetectContractor2 если так то плохо.. Нужно искать другой ​способ определения оператора


Написать приватное сообщениеНаписать по email
TelePay.WebMoney
Post #11 (Отправлено: 11.02.2009 17:26)     Быстрое цитирование
Цитировать


WMT developer
*

Сообщений: 16
Регистрация: 19.03.2008
Capitoshka сказал
Спасибо, а снять ограничение никак? А то большинство клиентов пополняются на ​меньшую сумму.
А с DetectContractor2 если так то плохо.. Нужно искать другой ​способ определения оператора

Есть метод DetectContractor, он определяет ID оператора мобильной связи на основе данных о выделенных операторам диапазонах номеров.


Написать приватное сообщениеНаписать по email
Capitoshka
Post #12 (Отправлено: 11.02.2009 17:44)     Быстрое цитирование
Цитировать


Завсегдатай кофейни
**

Сообщений: 20
Регистрация: 9.02.2009
Лайф 063 - не определяет. А Лайф 093 - определяет как Киевстар.


Написать приватное сообщениеНаписать по email
Capitoshka
Post #13 (Отправлено: 11.02.2009 22:55)     Быстрое цитирование
Цитировать


Завсегдатай кофейни
**

Сообщений: 20
Регистрация: 9.02.2009
Спасибо! Уже все ок!


Написать приватное сообщениеНаписать по email
Capitoshka
Post #14 (Отправлено: 12.02.2009 20:31)     Быстрое цитирование
Цитировать


Завсегдатай кофейни
**

Сообщений: 20
Регистрация: 9.02.2009
TelePay.WebMoney сказал
Киевстар действительно дает пополнять лицевые счета на суммы менее 20грн., однако в этом случае взымается дополнительная комиссия (поэтому на сервисе поставлено ограничение).

Как можно снять это ограничение? Видел сервис где оно снято, при этом снимаеться 0,10wmu дополнительно.


Написать приватное сообщениеНаписать по email
TelePay.WebMoney
Post #15 (Отправлено: 13.02.2009 13:53)     Быстрое цитирование
Цитировать


WMT developer
*

Сообщений: 16
Регистрация: 19.03.2008
Capitoshka сказал
Как можно снять это ограничение? Видел сервис где оно снято, при этом снимаеться 0,10wmu дополнительно.

Никак.


Написать приватное сообщениеНаписать по email
adviser
Post #16 (Отправлено: 13.02.2009 21:41)     Быстрое цитирование
Цитировать


Гурман
****

Сообщений: 180
Регистрация: 2.04.2006
Откуда: Ульяновск
Самая основная проблема пока в том, что при оплате с доверенных кошельков партнерская комиссия идет им, а не тому на чей WMID и кошелек зарегистрированы интерфейсы sad.gif Правда в таком случае и не понятно зачем вообще при регистрации указывать WMID и кошелек... Можно просто IP, адрес сайта и способ использования smile.gif

Это сообщение отредактировал adviser - 13.02.2009 21:42


==================
ЕСП Веб-касса - оплата онлайн игр, пополнение счета Skype, Одноклассники за WebMoney!
Написать приватное сообщениеНаписать по emailВебсайтICQ
Capitoshka
Post #17 (Отправлено: 13.02.2009 22:04)     Быстрое цитирование
Цитировать


Завсегдатай кофейни
**

Сообщений: 20
Регистрация: 9.02.2009
TelePay.WebMoney, тогда как один сервис пополняет на сумму менее 20 грн? Это НЕ через Вас?
- - -
adviser, им это кому? Тому кто подписывает? Или тому кто подписывает? Или сервису telepat?


Написать приватное сообщениеНаписать по email
adviser
Post #18 (Отправлено: 13.02.2009 22:09)     Быстрое цитирование
Цитировать


Гурман
****

Сообщений: 180
Регистрация: 2.04.2006
Откуда: Ульяновск
Capitoshka сказал
TelePay.WebMoney, тогда как один сервис пополняет на сумму менее 20 грн? Это НЕ через Вас?
- - -
adviser, им это кому? Тому кто подписывает? Или тому кто подписывает? Или сервису telepat?

Тому с чьего кипера производится оплата. Как я понимаю, в партнерской программе регистрироваться вообще не обязательно, просто раньше видимо нижний порог был 1000 WMZ, а теперь 500 сделали и партнерку в массы smile.gif


==================
ЕСП Веб-касса - оплата онлайн игр, пополнение счета Skype, Одноклассники за WebMoney!
Написать приватное сообщениеНаписать по emailВебсайтICQ
vint
Post #19 (Отправлено: 14.02.2009 17:13)     Быстрое цитирование
Цитировать


Ценитель кофе
***

Сообщений: 80
Регистрация: 7.02.2008
Спасибо за скрипты, вчера вечером через них пополнил себе телефон.
Есть ли возможность не платить комиссию за перевод на кошельки Телепэя?
Если мне оплачивают пополнение на мой кошелек, я перевожу на кошелек сервиса, то теряю 0.8%......


==================
http://pintorg.com.ua/ : продажа кодов пополнения GSM/CDMA операторов - дешево и быстро
Написать приватное сообщениеНаписать по email
Capitoshka
Post #20 (Отправлено: 14.02.2009 18:28)     Быстрое цитирование
Цитировать


Завсегдатай кофейни
**

Сообщений: 20
Регистрация: 9.02.2009
Да, уж.. с 0,8% тоже не согласен. Сами подумайте от партнерки 0,5% а на перевод 0,8%! Это смешно! Какая тогда партнерка??? Если коммисию 0,8% за перевод считаеть нормальным, то как назвать партнерку с 0,5% прибыли???


Написать приватное сообщениеНаписать по email
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции этого топикаСтраницы: (3) [1] 2 3  ОтветитьНовая тема

 





Powered by Invision Power Board © 2003 IPS, Inc.