Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отправить xml запрос 
:(
    Опции темы
kpuknet
Дата 6.8.2006, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 28.10.2005

Репутация: нет
Всего: нет



Работаю с сервисом, который предоставляет sms доступ к сайту. Каким образом все это делать понятия не имею. PHP пример кода не дают.

нада отправить xml запрос на другой сайт и получить ответ с этого сайта тоже в  xml виде
Не понимаю, как отправить xml запрос.
(+ Объясните плз зачем мне приводиться  XSD схемы запроса/ответа в техническом описании ? - это обязательные данные или нет?)

XML запрос
Код

<?xml version="1.0" ?> 
<request>
<authentication>
        <login>partner-name</login> 
        <password>1234-1234-1234-1234</password> 
   </authentication>
    <transaction-id>123456</transaction-id> 
    <card>12345678901234</card> 
</request>



Получаю ответ:
Код

<?xml version="1.0" ?> 
<response>
    <transaction-id>123456</transaction-id>     
    <status>0</status>
    <card-value>5,0</card-value>
</response>



Ну понятно что ответ нада парсить. Это разберусь.
Помогите отправить запрос
PM MAIL WWW   Вверх
Darhazer
Дата 9.8.2006, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: нет
Всего: 29



Через SOAP работаеть?
Еслил да, тогда тебе нужен NuSOAP
И еще не много кода:

Код

function getSoapClient( $wsdl, $use_cert=false ) {

    $c = new soapclient( $wsdl, true );
    if( $use_cert ) {
        $c->setCredentials (
        false,
        false,
        "certificate",
        array(
        'cainfofile' => SSL_CAINFOFILE,
        'sslcertfile' => SSL_CLIENTCERTFILE,
        'sslcertpasswd' => SSL_CLIENTCERTPASS,
        'sslkeyfile' => false,
        'passphrase' => false
        )
        );
    }

    $c->soap_defencoding = 'UTF-8';

    return $c;

}

function getWSDL( $url, $use_cert = true ) {

    $ch = curl_init ( $url );

    curl_setopt ( $ch, CURLOPT_HEADER, 0 );

    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    if( $use_cert ) {
        curl_setopt ( $ch, CURLOPT_CAINFO, SSL_CAINFOFILE );

        curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, 1 );

        curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, 1 ); // 0 ??

        curl_setopt ( $ch, CURLOPT_SSLCERT, SSL_CLIENTCERTFILE );

        curl_setopt ( $ch, CURLOPT_SSLCERTPASSWD, SSL_CLIENTCERTPASS );
    }
    //curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 5 );

    //curl_setopt( $ch, CURLOPT_TIMEOUT, 10 );



    $result = curl_exec ( $ch );

    if( curl_errno( $ch ) <> CURLE_OK ) {

        $result = false;

    }

    curl_close ( $ch );

    return $result;

}



class soapWrapp
{

var $sc;

var $isvalid;

function _init( $wsdl_url = "") {

        $wsdl = getWSDL( $wsdl_url );

        if( $wsdl ) {

            $this->sc = getSoapClient( $wsdl );

            $p = $this->sc->getProxy();

            if( count( $p->operations ) > 0 ) {

                $this->isvalid = true;

            }

            $p = null;

        } else {

            $this->sc = null;

            $this->isvalid = false;

        }

    }

function soapCall( $method, $param ) {
        if( ! is_array( $param ) ) {

            return false;

        }

        $params = array( "request" => $param );
        $res = $this->sc->call( $method, $params  );
        return $res;
    }


Все что тебе нужно - отправить масив
Код
Array(
"authentication" => Array("login"=>"partner-name", "password" => "1234-1234-1234-1234"),
"transaction-id" => "123456",
"card" => "12345678901234");

Конечно во первих _init, а потом везде можеш делать soapCall() и будеш получать тоже массив, а не XML smile



--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.