При использовании ebay API он отправляет уведомления на ваш сервер, которые могут выглядеть примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
Stuff in header
</soapenv:Header>
<soapenv:Body>
<GetItemResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2015-02-22T16:19:51.956Z</Timestamp>
<Ack>Success</Ack>
<CorrelationID>3759873</CorrelationID>
<Version>885</Version>
<Build>E885_CORE_APIMSG_16971418_R1</Build>
<NotificationEventName>ItemRevised</NotificationEventName>
.
.
</GetItemResponse>
</soapenv:Body>
</soapenv:Envelope>
Я определяю функцию GetItemResponse
затем зарегистрируйте его в объекте сервера SOAP $server->addFunction("GetItemResponse");
, Проблема в том, что функции передается только первый элемент » в качестве первого аргумента. Как мне передать все тело в мою функцию?
Попробуйте преобразовать результат в объект XML, как показано ниже:
$xml = simplexml_load_string($response);
и передать $ xml
Попробуй это:
function GetItem($arg1, $arg2, $arg3){
var_dump(func_get_args());
}
$soapServer->addFunction('GetItem')
GetItemResponse — это имя узла, которое содержит ответ на вызов GetItem. Также вам следует добавить дополнительные параметры в функцию GetItem, если они вам нужны.
Больше информации о параметрах: http://developer.ebay.com/DevZone/XML/docs/Reference/ebay/GetItem.html
Если вам действительно нужно полное тело, тогда переопределите метод дескриптора из SoapServer. Это позволит вам получить все тело.