Fatal error: throw exception SoapFault: [Client] SOAP-ERROR: encoding: object does not have the "source" property in

I am trying to connect osticket support system with opencart. I tried to integrate with this SOAP

<?php error_reporting(E_ALL); ini_set('display_errors', '1'); $osticket = new SoapClient('http://www.website.com/osticket/api/soap/index.php?wsdl'); // Set up the parameters $args = array( 'username' => 'WebService', 'password' => ' MySecr3tp@ssword ', 'origin' => 'Web', 'alertUser' => true, 'alertStaff' => true, 'ticketData' => array( 'name' => utf8_encode('sir Test'), 'email' => utf8_encode(' some@email.com '), 'subject' => utf8_encode('testing'), 'message' => utf8_encode('this is a message'), 'topicId' => 3, //topic Website Support 'deptId' => 2, //department Sales 'staffId' => null, 'duedate' => null, 'time' => null, 'pri' => 2, // default priority 'phone' => null, ) ); try { // Send the request and receive the ticketID $result = $osticket->__call('ostTicket.open',$args); } catch (SoapFault $e) { throw $e; } ?> 

The error I get is

 Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object hasn't 'source' property in /home/website/website.com/catalog/view/theme/testtheme/template/information/contact.tpl:60 Stack trace: #0 /home/website/website.com/catalog/view/theme/testtheme/template/information/contact.tpl(60): SoapClient->__call('ostTicket.open', Array) #1 /home/website/website.com/vqmod/vqcache/vq2-system_engine_controller.php(67): require('/home/website/tu...') #2 /home/website/website.com/catalog/controller/information/contact.php(127): Controller->render() #3 /home/website/website.com/vqmod/vqcache/vq2-system_engine_front.php(43): ControllerInformationContact->index() #4 /home/website/website.com/vqmod/vqcache/vq2-system_engine_front.php(29): Front->execute(Array, Array) #5 /home/website/website.com/index.php(238): Front->dispatch(Object(Action)) #6 {main} thrown in/home/website/website.com/catalog/view/theme/testtheme/template/information/contact.tpl on line 60 

Here is line 60 ( /template/information/contact.tpl ):

 $result = $osticket->__call('ostTicket.open',$args); 

I would be grateful if someone would kindly help me in this matter.

SOAP Information

This is from phpinfo

 Soap Client enabled Soap Server enabled Directive Local Value Master Value soap.wsdl_cache 1 1 soap.wsdl_cache_dir /tmp /tmp soap.wsdl_cache_enabled 1 1 soap.wsdl_cache_limit 5 5 soap.wsdl_cache_ttl 86400 86400 
+4
source share
1 answer

I have the same problem too, and I searched the Internet and could not find the answer. So, I traced it myself. And I loved sharing how I fixed it.

As you can see at http://www.website.com/osticket/api/soap/index.php?wsdl (change it to your URL)

under (xsd: complexType name = "TicketData") what parameters are needed for ostTicket.open

you can see that there is an element (xsd: element name = "source" type = "xsd: string") with the name source, so that is not in the ticketData array. Just add that inside your ticketData strong> array, w / null can be assigned.

ex. 'source' => null,

This solved my problem. Hope this helps.

+4
source

Source: https://habr.com/ru/post/1480420/


All Articles