Войти

Показать полную графическую версию : Магазин по продаже контента (php)


Страниц : 1 [2]

dmitryst
17-12-2010, 23:45
Нарисовалась проблема такого характера. Результат оплаты - это xml файл, который выдается банковским сервером. Если зайти вручную, браузером, то всё нормально, нормальный файл с данными. Мне нужно получить эти данные программно, я использовал вариант с прямым обращением к сокетам:

<?php

$fp = fsockopen ("e-commerce.*bank.ge",443, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
///fputs ($fp, "GET /servlet/ICBSXPProxyServlet/trn_xml.jsp?xICBSXPProxy.Version=01.02&xICBSXPProxy.UserName=FAshdget352&xICBSXPProxy.UserPassword=fashdg6sa&MerchantID=08000395&PurchaseDesc=1292184160-5 HTTP/1.1\r\nHost: e-commerce.*bank.ge\r\n\r\n");
fputs ($fp, "GET /index.html HTTP/1.0\r\nHost: e-commerce.*bank.ge\r\n\r\n");
while (!feof($fp)) {
echo fgets ($fp,1024);
}
fclose ($fp);
}
?>

Выдается фигня (пара юникод-символов). libcurl не стоит и ставить не будут, уже спрашивал. Можно ли как-то еще попробовать получить этот злополучный файл???

Sham
18-12-2010, 00:13
file_get_contents

Sham
18-12-2010, 02:40
хм, 443 - не SSL ли? Тогда нужно сертификатом как-то рулить...
ssl:// в fsockopen (https:// в file_get_contents - если обработчик есть). Нужен хотя бы openSSL... иначе погуглить готовые скрипты, где реализовано ssl-шифрование.

dmitryst
18-12-2010, 22:15
file_get_contents »
ага, ну да.. :)

хм, 443 - не SSL ли? »
он :(
Тогда нужно сертификатом как-то рулить... »
рулим...
(строка 3) $data = file_get_contents('https://e-commerce.*bank.ge', false, stream_context_create (array ('https'=>array ('verify_peer'=>false))) );////Получим файл
однако ж, нифига..
Warning: file_get_contents(https://e-commerce.*bank.ge) [function.file-get-contents]: failed to open stream: No such file or directory in /home/*/public_html/get_test.php on line 3

UPD: пока через wget получаю файл, записываю, потом этот файл читаю через file_get_contents(имя_файла), но это ж изврат %)

Sham
18-12-2010, 23:07
https://e-commerce.*bank.ge »
* - звездочка в урле зачем?
If OpenSSL support is installed, you may prefix the hostname with either ssl:// or tls:// to use an SSL or TLS client connection over TCP/IP to connect to the remote host.
fsockopen (http://php.net/manual/en/function.fsockopen.php)

dmitryst
18-12-2010, 23:24
* - звездочка в урле зачем? »
не будем палить банк :lol: (в реале, конечно, без звездочки)
If OpenSSL support is installed »
а он не installed, как выяснилось. Однако, wget прекрасно забирает данные по ssl ! :durak:




© OSzone.net 2001-2012