{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
cana777 * [мошенник]
[автор] (3 мар 2015, 13:27) [0/0] [0] [отв] [спам] [под] +1 | -1

Подскажите как сделать на сайте выставление счета с помощью интерфейс Х1.
сам код, он есть в пабле но почему то у меня не получается сделать правильно..кто подскажет правильно 10р на вм
Добавлено 03.03.15 в 14:14:01:
не кто не знает ?

2.
Mobiaaa * Верифицирован 2.73
(3 мар 2015, 14:14) [0/0] [0] [отв] [спам] [под] +1 | -1

Условия выполнены для работы с X1?

3.
cana777 * [мошенник]
[автор] (3 мар 2015, 14:17) [0/0] [0] [отв] [спам] [под] +1 | -1

Mobiaaa, Выставление счета

4.
Mobiaaa * Верифицирован 2.73
(3 мар 2015, 14:18) [0/0] [0] [отв] [спам] [под] +1 | -1

cana777, "Интерфейс X1. Выписывание счета от одного участника (магазина, ресурса) другому участнику (покупателю).
Кипер, подписывающий запросы, должен иметь персональный аттестат или выше."

5.
cana777 * [мошенник]
[автор] (3 мар 2015, 14:18) [0/0] [0] [отв] [спам] [под] +1 | -1

Mobiaaa, все это имеется

6.
Mobiaaa * Верифицирован 2.73
(3 мар 2015, 14:19) [0/0] [0] [отв] [спам] [под] +1 | -1

http://wiki.webmoney.ru/projects/webmoney/wiki/Интерфейс_X1
Все более, чем доступно - написано

7.
cana777 * [мошенник]
[автор] (3 мар 2015, 14:19) [0/0] [0] [отв] [спам] [под] +1 | -1

// ФУНКЦИЯ ФОРМИРУЕТ УНИКАЛЬНЫЙ УВЕЛИЧИВАЮЩИЙСЯ REQN
function _GetReqn(){
$time=microtime();
$int=substr($time,11);
$flo=substr($time,2,5);
return $int.$flo;
};


// ФУНКЦИЯ ФОРМИРОВАНИЯ ПОДПИСИ
// На входе: строка для подписи. На выходе: строка с результатом подписывания
function _GetSign($inStr) {
global $Path_Folder, $Path_Signer;
chdir($Path_Folder);
$descriptorspec = array(
0 => array("pipe", "r"*,
1 => array("pipe", "w"*,
2 => array("pipe", "r"* );
$process = proc_open($Path_Signer, $descriptorspec, $pipes);
fwrite($pipes[0], "$inStr\004\r\n"*;
fclose($pipes[0]);
$s = fgets($pipes[1], 133);
fclose($pipes[1]);
$return_value = proc_close($process);
return $s;
}


// АЛЬТЕРНАТИВНАЯ ФУНКЦИЯ ПОДПИСИ ДЛЯ PHP НИЖЕ 4.3.0
// На входе: строка для подписи. На выходе: строка с результатом подписывания
function _GetSign2($inStr){
global $Path_Folder, $Path_Signer;
chdir($Path_Folder);
$PlanStr = "$inStr\004\r\n";
$fp = popen($Path_Signer, "r+"*;
fwrite($fp,$PlanStr);
$s = fgets($fp, 133);
pclose($fp);
return $s;
}


// ОТПРАВКА POST-ЗАПРОСА ЧЕРЕЗ CURL
// На входе: URL для отправки и содержимое XML-запроса. На выходе: XML-ответ от WebMoney
function _GetAnswer($address, $xml){
global $Path_Certs;
// Инициализируем сеанс CURL
$ch = curl_init($address);
// В выводе CURL http-заголовки не нужны
curl_setopt($ch, CURLOPT_HEADER, 0);
// Возвращать результат, а не выводить его в браузер
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
// Метод http-запроса - POST
curl_setopt($ch, CURLOPT_POST,1);
// Что передаем?
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
// Проверяем корневой сертификат сервера WebMoney
curl_setopt($ch, CURLOPT_CAINFO, $Path_Certs);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
// Выполняем запрос, ответ помещаем в переменную $result;
$result=curl_exec($ch);
return $result;
}

// ИНТЕРФЕЙС X1. ВЫПИСКА СЧЕТА.
// На выходе: массив ['retval'=>код выполнения, 'retdesc'=>описание результата,
// 'date'=>дата и время, 'wminvid'=>уникальный номер счёта]
function WMXML1 ($orderid,$wmid,$purse,$amount,$desc,$address,$period,$expiration) {
global $Global_WMID, $XML_addr;
$reqn=_GetReqn();
$desc=trim($desc); $address=trim($address); $amount=floatval($amount);
$rsign=_GetSign($orderid.$wmid.$purse.$amount.$desc.$address.$period.$expiration.$reqn);
$address=htmlspecialchars($address, ENT_QUOTES);
$desc=htmlspecialchars($desc, ENT_QUOTES);
$address=iconv("CP1251", "UTF-8", $address);
$desc=iconv("CP1251", "UTF-8", $desc);
$xml="
<w3s.request>
<reqn>$reqn</reqn>
<wmid>$Global_WMID</wmid>
<sign>$rsign</sign>
<invoice>
<orderid>$orderid</orderid>
<customerwmid>$wmid</customerwmid>
<storepurse>$purse</storepurse>
<amount>$amount</amount>
<desc>$desc</desc>
<address>$address</address>
<period>$period</period>
<expiration>$expiration</expiration>
</invoice>
</w3s.request>";
$resxml=_GetAnswer($XML_addr[1], $xml);
echo $resxml;
$xmlres = simplexml_load_string($resxml);
if(!$xmlres) {
$result['retval']=1000;
$result['retdesc']="Не получен XML-ответ";
return $result;
}
$result['retval']=strval($xmlres->retval);
$result['retdesc']=iconv("UTF-8", "CP1251", strval($xmlres->retdesc));
$result['date']=strval($xmlres->invoice->datecrt);
$result['wminvid']=strval($xmlres->invoice->attributes()->id);
return $result;
}
Добавлено 03.03.15 в 14:21:18:
include("wmxml.inc.php"*;
$orderid="11";
$wmid="6565600449266"; // укажите!
$purse="R63155582541"; // укажите!
$amount="0.05";
$desc="тестовый счёт";
$address="http://";
$period="1";
$expiration="2";

$r=WMXML1($orderid,$wmid,$purse,$amount,$desc,$address,$period,$expiration);

echo "Результат (0 - успешно) - ".$r['retval']."<br>";
echo "Расшифровка - ".$r['retdesc']."<br>";
echo "Дата и время - ".$r['date']."<br>";
echo "Номер счёта в WebMoney - ".$r['wminvid']."<br>";
Добавлено 03.03.15 в 14:22:27:
в итоге получается вот так и счет не выставляется


include("wmxml.inc.php"*;
$orderid="11";
$wmid="159200449266"; // укажите!
$purse="R631798882541"; // укажите!
$amount="0.05";
$desc="тестовый счёт";
$address="http://serverok.mobi";
$period="1";
$expiration="2";

$r=WMXML1($orderid,$wmid,$purse,$amount,$desc,$address,$period,$expiration);

echo "Результат (0 - успешно) - ".$r['retval']."<br>";
echo "Расшифровка - ".$r['retdesc']."<br>";
echo "Дата и время - ".$r['date']."<br>";
echo "Номер счёта в WebMoney - ".$r['wminvid']."<br>";

КТО ПОМОЖЕТ

8.
wapoleg * 2.59
(3 мар 2015, 14:26) [0/0] [0] [отв] [спам] [под] +1 | -1

Ошибку какую выводит?

9.
cana777 * [мошенник]
[автор] (3 мар 2015, 14:31) [0/0] [0] [отв] [спам] [под] +1 | -1

wapoleg,
Результат (0 - успешно) - 1000
Расшифровка - Не получен XML-ответ
Дата и время -
Номер счёта в WebMoney -

и все больше не чего

10.
wapoleg * 2.59
(3 мар 2015, 15:00) [0/0] [0] [отв] [спам] [под] +1 | -1

cana777, ну вот, написано, что не получен xml ответ.
Вообще мне больше этот класс нравится http://sourceforge.net/projects/wmxi/files/wmxi%20v2/

Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений