Soap сервис при помощи NuSoap
server.php
client.php
https://sourceforge.net/projects/nusoap/
<?php require_once('/var/www/libs/soap/nusoap.php'); $server = new nusoap_server; $server->soap_defencoding = 'utf-8'; $server->decode_utf8 = false; $server->configureWSDL('server', 'urn:server'); $server->wsdl->schemaTargetNamespace = 'urn:server'; $namesCol = array( 'orderNumber' => 'Номер заказа', 'id' => 'ID', 'execNumber' => 'Номер исполнителя', 'deliveryDate' => 'Дата доставки', 'deliveryStart' => 'Начало интервала доставки', 'deliveryEnd' => 'Конец интервала доставки', 'region' => 'Регион', 'city' => 'Город', 'index' => 'Индекс', 'street' => 'Улица', 'house' => 'Дом', 'apartment' => 'Квартира', 'fullname' => 'ФИО', 'phone' => 'Телефон', 'email' => 'Эл адрес', 'comment' => 'Комментарий', 'IDSamovyvoz' => 'ИДСамовывоз', 'prepayment' => 'Предоплата', 'shippingAmount' => 'Сумма доставки', 'harcode' => 'Штрих код', 'amount' => 'Количество', 'summa' => 'Сумма', 'nomenclature' => 'Номенклатура', 'character' => 'Характеристика', 'status_dt' => 'Дата установки статуса', 'status' => 'Статус', 'uploaded' => 'Отправлен', 'deliveryNumber' => 'Номер доставки', 'order' => 'Заявка', 'implemented' => 'Реализован', 'map' => 'Карта', 'previousPoints' => 'Снятые баллы', 'stock' => 'Склад', 'statusID' => 'Статус ID', 'paymentAmount' => 'Сумма оплаты', 'fitting' => 'Примерка', 'customerName' => 'Имя заказчика', 'customerFamily' => 'Фамилия заказчика', 'customerMiddleName' => 'Отчество заказчика', 'order' => 'Заказ', 'areaSD' => 'Регион для СД', 'implementation' => 'Реализация', 'cityCodePVZ' => 'Код города ПВЗ', 'paid' => 'Оплачено', 'promocode' => 'Промокод', 'transportCompany' => 'Транспортная компания', 'areaCode' => 'Код региона', 'cityCode' => 'Код города', 'postfix' => 'Постфикс' ); $complexType = array(); foreach ($namesCol as $key => $value) { $complexType[$key] = array('name'=> $key, 'type'=> 'xsd:string'); } //first simple function $server->register('one', array('one' => 'xsd:string'), //parameter array('return' => 'xsd:string'), //output 'urn:server', //namespace 'urn:server#helloServer', //soapaction 'rpc', // style 'encoded', // use 'One param'); //description function one($param) { return '['.$param.']'; } $server->wsdl->addComplexType( 'complexRequest', 'complexType', 'struct', 'all', '', $complexType ); $server->register('get', array('data' => 'tns:complexRequest'), //parameters array('return' => 'tns:complexRequest'), //output 'urn:server', //namespace 'urn:server#getServer', //soapaction 'rpc', // style 'encoded', // use 'description'); //description function get($param){ global $namesCol; $return = array(); foreach ($param as $key => $value) { $return[$key] = $namesCol[$key].':'.$value; } return $return; } $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA);
client.php
<?php header("Content-Type: text/html; charset=utf-8"); header('Cache-Control: no-store, no-cache'); header('Expires: '.date('r')); ini_set('display_errors', 1); error_reporting(E_ALL & ~E_NOTICE); $client = new SoapClient("/soap/server.php?wsdl", array( "trace" => 1, "exceptions" => 1, "cache_wsdl" => 0, "encoding" => "UTF-8", 'soap_version' => SOAP_1_1, 'style' => SOAP_DOCUMENT, 'use' => SOAP_LITERAL, )); $namesCol = array( 'orderNumber' => 'Номер заказа', 'id' => 'ID', 'execNumber' => 'Номер исполнителя', 'deliveryDate' => 'Дата доставки', 'deliveryStart' => 'Начало интервала доставки', 'deliveryEnd' => 'Конец интервала доставки', 'region' => 'Регион', 'city' => 'Город', 'index' => 'Индекс', 'street' => 'Улица', 'house' => 'Дом', 'apartment' => 'Квартира', 'fullname' => 'ФИО', 'phone' => 'Телефон', 'email' => 'Эл адрес', 'comment' => 'Комментарий', 'IDSamovyvoz' => 'ИДСамовывоз', 'prepayment' => 'Предоплата', 'shippingAmount' => 'Сумма доставки', 'harcode' => 'Штрих код', 'amount' => 'Количество', 'summa' => 'Сумма', 'nomenclature' => 'Номенклатура', 'character' => 'Характеристика', 'status_dt' => 'Дата установки статуса', 'status' => 'Статус', 'uploaded' => 'Отправлен', 'deliveryNumber' => 'Номер доставки', 'order' => 'Заявка', 'implemented' => 'Реализован', 'map' => 'Карта', 'previousPoints' => 'Снятые баллы', 'stock' => 'Склад', 'statusID' => 'Статус ID', 'paymentAmount' => 'Сумма оплаты', 'fitting' => 'Примерка', 'customerName' => 'Имя заказчика', 'customerFamily' => 'Фамилия заказчика', 'customerMiddleName' => 'Отчество заказчика', 'order' => 'Заказ', 'areaSD' => 'Регион для СД', 'implementation' => 'Реализация', 'cityCodePVZ' => 'Код города ПВЗ', 'paid' => 'Оплачено', 'promocode' => 'Промокод', 'transportCompany' => 'Транспортная компания', 'areaCode' => 'Код региона', 'cityCode' => 'Код города', 'postfix' => 'Постфикс' ); echo '<pre>'; var_dump($client->get($namesCol)); echo '</br>'; var_dump($client->one('Тест'));
https://sourceforge.net/projects/nusoap/
Комментарии
Отправить комментарий