веб-сервисы — вызов вставки клиента Soap в переполнение стека

Надеюсь, что кто-то может помочь мне с вызовом клиента SOAP из PHP

Мне нужно вызвать службу SOAP и отправить объект DTO, который служба может вставить

Документация SOAP выглядит следующим образом

public virtual resultValidation validateInvoice(
Invoice invoice
)

invoice:
Type: invoiceWebService.DTO.invoice

Мне нужно передать следующие «переменные» в объекте счета

"productNameInvoice" (VALUE: "Produkt 1")
"amount" (VALUE: 500)
"type" (VALUE: 1)

Я попытался сделать следующий код (который я использую для получения звонков), но это не работает.
Я думаю, это потому, что я послал «переменные» в виде массива, а не объекта DTO (invoiceWebService.DTO.invoice) — но могу понять, что изменить

Получите эту ошибку: Uncaught SoapFault исключение — Нестатический метод требует цели

Это код, который я пробовал

$client = new soapClient(...) // As I use to when getting from service (is working)

$params = array(
"productNameInvoice"=>"Product 1",
"amount"=>500,
"type"=>1
);

$response = $client->__soapCall("validateInvoice", array($params))

Надеюсь, кто-нибудь может мне помочь 🙂

Заранее — спасибо
Ким

1

Решение

Как насчет этого?

$client = new soapClient(...)
$validateInvoice = new stdClass();
$validateInvoice->productNameInvoice = "Product 1";
$validateInvoice->amount = 500;
$validateInvoice->type = 1;
$response = $client->validateInvoice($validateInvoice);
1

Другие решения

Нашел решение используя ответ miknik

$client = new soapClient(...)
$validateInvoice = new stdClass();
$validateInvoice->productNameInvoice = "Product 1";
$validateInvoice->amount = 500;
$validateInvoice->type = 1;

$params = array(
"invoice" => $validateInvoice
);

$response = $client->__soapCall("validateInvoice", array($params));
0

По вопросам рекламы [email protected]