Надеюсь, что кто-то может помочь мне с вызовом клиента SOAP из PHP
Мне нужно вызвать службу SOAP и отправить объект DTO, который служба может вставить
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))
Надеюсь, кто-нибудь может мне помочь 🙂
Заранее — спасибо
Ким
Как насчет этого?
$client = new soapClient(...)
$validateInvoice = new stdClass();
$validateInvoice->productNameInvoice = "Product 1";
$validateInvoice->amount = 500;
$validateInvoice->type = 1;
$response = $client->validateInvoice($validateInvoice);
Нашел решение используя ответ 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));