Во время работы над серверной частью одного iphone приложения, всплыла любопытная особенность Zend_Soap_Server. Приводила она к спонтанно (на первый взгляд) возникающим ошибкам при возвращении php-ных массивов. У нас выявление и отладка заняли несколько человеко-часов, и, возможно, данная статья позволит кому-то те же самые несколько часов сэкономить.
Читать полностью »
Метка «soap» - 2
SoapServer на PHP. Пусть array всегда будет Map
2013-01-14 в 8:32, admin, рубрики: array, map, php, soap, Песочница, метки: array, map, PHP, soapБиблиотека для работы с QIWI через SOAP
2012-12-11 в 11:45, admin, рубрики: composer, packagist, php, Qiwi, soap, метки: composer, packagist, PHP, Qiwi, soapТак уж получилось, что мы решили у себя подключить прием платежей через QIWI. Сказано — сделано! Вот только в процессе разработки пришлось столкнуться с убогостью примеров кода от разработчиков киви:
<?php
/**
* На этот скрипт приходят уведомления от QIWI Кошелька.
* SoapServer парсит входящий SOAP-запрос, извлекает значения тегов login, password, txn, status,
* помещает их в объект класса Param и вызывает функцию updateBill объекта класса TestServer.
*
* Логика обработки магазином уведомления должна быть в updateBill.
*/
$s = new SoapServer('IShopClientWS.wsdl', array('classmap' => array('tns:updateBill' => 'Param', 'tns:updateBillResponse' => 'Response')));
// $s = new SoapServer('IShopClientWS.wsdl');
$s->setClass('TestServer');
$s->handle();
class Response {
public $updateBillResult;
}
class Param {
public $login;
public $password;
public $txn;
public $status;
}
class TestServer {
function updateBill($param) {
// Выводим все принятые параметры в качестве примера и для отладки
$f = fopen('c:\phpdump.txt', 'w');
fwrite($f, $param->login);
fwrite($f, ', ');
fwrite($f, $param->password);
fwrite($f, ', ');
fwrite($f, $param->txn);
fwrite($f, ', ');
fwrite($f, $param->status);
fclose($f);
// проверить password, login
// В зависимости от статуса счета $param->status меняем статус заказа в магазине
if ($param->status == 60) {
// заказ оплачен
// найти заказ по номеру счета ($param->txn), пометить как оплаченный
} else if ($param->status > 100) {
// заказ не оплачен (отменен пользователем, недостаточно средств на балансе и т.п.)
// найти заказ по номеру счета ($param->txn), пометить как неоплаченный
} else if ($param->status >= 50 && $param->status < 60) {
// счет в процессе проведения
} else {
// неизвестный статус заказа
}
// формируем ответ на уведомление
// если все операции по обновлению статуса заказа в магазине прошли успешно, отвечаем кодом 0
// $temp->updateBillResult = 0
// если произошли временные ошибки (например, недоступность БД), отвечаем ненулевым кодом
// в этом случае QIWI Кошелёк будет периодически посылать повторные уведомления пока не получит код 0
// или не пройдет 24 часа
$temp = new Response();
$temp->updateBillResult = 0;
return $temp;
}
}
?>
Я конечно понимаю, пример исчерпывающий, но можно ведь было что-нибудь «поготовее» выложить? Поскольку система популярна, как и язык PHP — я решил сразу вынести библиотеку в публичный репозитарий, дабы упростить жизнь тем, кому только предстоит подключать эту систему. Так как в недавнем моем вопросе никто против поста не возражал — выкладываю ее тут.
Читать полностью »
Сервис трекинга Почты России уподобился китайскому коллеге
2012-11-14 в 12:04, admin, рубрики: api, russianpost, soap, usability, Сетевые технологии, юзабилити, метки: api, russianpost, soap, юзабилити
Сегодня на сайте нашей любимой «Почты России» появилась капча. Это означает, что забирать информацию по почтовым отправлениям простым POST-запросом больше не получиться. Как следствие, многочисленные сервисы «Где моя посылка?» потеряют (на время, скорее всего) немалую часть своей аудитории.
Существует, конечно полусекретный SOAP API о примере использования которого рассказал уважаемый qnubЧитать полностью »
REST vs SOAP
2012-11-14 в 10:22, admin, рубрики: rest, soap, Веб-разработка, метки: rest, soap, web-services Лучшее из описаний разницы между подходами REST и SOAP нашлось в книге "Zend Framework: разработка веб-приложений на PHP". Спешу поделиться сами, чтобы вы были вооружены на тот случай, если вас спросят о разнице между REST и SOAP на вечеринке собеседовании.
Клиент для SOAP API Почты России на Python
2012-09-10 в 7:57, admin, рубрики: api, python, russianpost, soap, метки: python, russianpost, soapВ процессе работы над текущими проектами возникла ситуация когда «вдруг» перестал парситься сайт трекингов Почты России. В интернетах даже немного побурлили по поводу «ужасной» новой защиты и т.п. В тех же интернетах всплыла тогда информация, что у Почты России имеется-таки API. Не совсем человеческий (т.е. по протоколу SOAP) но какой-никакой существует и кто-то им даже, якобы, пользуется. Я сообщил шефу, шеф написал письмо на Почту России (электронное, на удивление) и оказалось — да. Всё это действительно есть и вроде бы даже работает. Видимо создали сервис ещё тогда.
Под катом будет линк на рабочий класс клиента (на python) к API Почты России и немного подробностей работы с ним.
Читать полностью »
Сегодня? Мы делаем SOAP*
2012-09-05 в 16:53, admin, рубрики: erlang, Erlang/OTP, soap, метки: erlang, soap, web-services Представьте, есть две комманды разработчиков: одни пишут на C#, другие — на Эрланге.
Первые хотят использовать функции из продуктов вторых.
Отлично, надо договориться об API, реализовать его и выдать документацию Шарповым ребятам.
На основе чего будет реализован этот API?
Подумав, пришли к выбору между SOAP и REST.
Поговорим о поддержке данных технологий нашими платформами.
C REST всё понятно: нужны инструменты для работы с HTTP и XML/JSON.
Читать полностью »
SOAP Web-сервис средствами Spring-WS
2012-07-24 в 19:42, admin, рубрики: java, soap, spring, webservice, wsdl, метки: java, soap, spring, webservice, wsdl
Когда-то поставили передо мной задачу начать разработку Web-сервисов и дали мне сорцы простейшего проекта без каких-либо объяснений. Проект, конечно же, не запускался. Что такое Spring и как он работает, я тоже представления не имел. Адекватных статей по разработке Web-сервисов средствами Spring ни русскоязычных, ни англоязычных я тоже не смог найти. Пришлось разбираться во всем самому, оказалось все не так страшно.
И вот недавно я решил посмотреть, какие новые возможности добавились в Spring с тех пор, и обновить старые сервисы, что в результате и сподвигло меня на написание данной статьи.
Данная статья является руководством по разработке простейшего Web-сервиса, использующего SOAP-протокол, средствами Spring-WS.
Читать полностью »
Обмен данными между web-приложением и MantisBT
2012-05-30 в 7:04, admin, рубрики: api, Help Desk Software, helpdesk, mantis, soap, Песочница, метки: helpdesk, mantis, soap Используя Mantis для учета заявок от абонентов, часто приходилось сталкиваться со следующими сложностями:
1) При добавлении новой заявки приходится вносить или копипастить часть информации из карточки клиента в Mantis, что во-первых, лень, а во-вторых, потенциально может привести к искажению информации.
2) Не всегда получается оперативно прочитать предыдущие заявки по этому абоненту, во-первых, потому что лень, во-вторых, см. пункт первый, относительно искаженной информации.
Для решения этой задачи, воспользуемся API от Mantis — mantisconnect.php.
Читать полностью »
Разработка / Почему веб-сервисы — отстой!
2012-02-18 в 14:10, admin, рубрики: soap, веб-сервисы, взаимодействие систем, интерфейсы, разработка, сервис, метки: soap, веб-сервисы, взаимодействие систем, интерфейсы, разработка, сервисВведение
Периодически, сталкиваясь с различными веб-сервисами, я задаюсь вопросом: «Зачем было так все усложнять?». Мы много внимания уделяем процессам разработки, чистоте кода, тестам и методологиям. Пишем комментарии и создаем документации. Но при этом слишком мало внимания уделяем основообразующим внешним системным интерфейсам – веб-сервисам.
Все нижесказанное можно относить к веб-сервисам различных видов, но в основе своей я буду говорить о веб-сервисах SOAP.
Использование
В современном мире веб-сервисы используются повсеместно. Каждый день кто-то отрывает для всего мира своеЧитать полностью »
Анализ и проектирование систем / Электронный документооборот, ЭЦП и интеграция систем. Философские выводы за бокальчиком вина
2012-02-17 в 11:24, admin, рубрики: soap, интеграция информационных систем, интеграция сервисов, эцп, метки: soap, интеграция информационных систем, интеграция сервисов, эцп
При организации взаимодействия систем, принадлежащих различным организациям, возникают вопросы по реализации интеграции ИС и юридическо – правового плана. Хотелось бы поделиться небольшим опытом и выводами, полученными в проектах такого плана. Информация может показаться интересной аналитикам, проектировщикам, разработчикам и может интересующимся руководителям.
Первое отступление.
Первый раз столкнулся с ЭЦП в своей деятельности, работая над аукционной площадкой. Требование подписывать документы появилось из-за возможного варианта отказа победителя от оплаты выигранного аукциона на повышение (английскийЧитать полностью »