I am working on a Simple php Client that uses OCPP (Open Charge Point Protocol). I have created the client and This is the request XML that goes from my code.
<?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urn://Ocpp/Cs/2015/10/"> <env:Header> <ns1:chargeBoxIdentity env:mustUnderstand="true">XXX01</ns1:chargeBoxIdentity> <ns1:Action env:mustUnderstand="true">/Authorize</ns1:Action> <ns1:MessageId env:mustUnderstand="true">123</ns1:MessageId> <ns1:RelatesTo>relatesTo</ns1:RelatesTo> <ns1:From/> <ns1:ReplyTo/> <ns1:To/> </env:Header> <env:Body> <ns1:authorizeRequest> <ns1:idTag>1234567</ns1:idTag> </ns1:authorizeRequest> </env:Body> </env:Envelope>
But I am suppose to get this XML output
<?xml version='1.0' encoding='utf8'?> <ns0:Envelope xmlns:ns0="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urn://Ocpp/Cs/2015/10/"> <ns0:Header> <ns1:chargeBoxIdentity mustUnderstand="true">XXX01 </ns1:chargeBoxIdentity> <ns1:Action mustUnderstand="true">/Authorize</ns1:Action> <ns1:MessageId mustUnderstand="true">123</ns1:MessageId> <ns1:RelatesTo>relatesTo</ns1:RelatesTo> <ns1:From /> <ns1:ReplyTo /> <ns1:To /> </ns0:Header> <ns0:Body> <ns1:IdTag>1234567</ns1:IdTag> </ns0:Body> </ns0:Envelope>
Notice that my code has env:Envelope
and output has ns0:Envelope
and in my code extra attribute is there in the Soap Body. I have very limited knowledge in php SOAP. The relevant code is below.
ini_set('soap.wsdl_cache_enabled',0); $wsdl_centralsystem = "OCPP_centralsystemservice_1.5_final.wsdl"; $params = "0.1.1.255.0.0.1.0."; $vLocation = "linktoserver/server.php"; $client = new SoapClient($wsdl_centralsystem, array( "soap_version" => SOAP_1_2, "location" => $vLocation, "trace"=>1, "exceptions"=>0, )); $chargeboxid = "XXX01"; $action = "/Authorize"; $msgid = "123"; $relatesto = "relatesTo"; //Create Soap Headers $headerCchargeBoxIdentity = new SoapHeader("urn://Ocpp/Cs/2015/10/", 'chargeBoxIdentity', $chargeboxid, true); $headerAction = new SoapHeader("urn://Ocpp/Cs/2015/10/", 'Action', $action, true); $headerMessageId = new SoapHeader("urn://Ocpp/Cs/2015/10/", 'MessageId', $msgid, true); $headerRelatesTo = new SoapHeader("urn://Ocpp/Cs/2015/10/", 'RelatesTo', $relatesto, false); $headerFrom = new SoapHeader("urn://Ocpp/Cs/2015/10/", 'From', NULL, false); $headerReplyTo= new SoapHeader("urn://Ocpp/Cs/2015/10/", 'ReplyTo', NULL, false); $headerTo = new SoapHeader("urn://Ocpp/Cs/2015/10/", 'To', NULL, false); //set the Headers of Soap Client. $client->__setSoapHeaders(array($headerCchargeBoxIdentity,$headerAction,$headerMessageId,$headerRelatesTo,$headerFrom,$headerReplyTo,$headerTo)); $output = $client-> __soapCall('Authorize',array($params));
No comments:
Post a Comment