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.
&l
Provided the prefixes match up with the xmlns
declarations on the Envelope
element, then it is valid XML and therefore valid SOAP so you should be fine. However, XML is case sensitive and I notice that your code has and idTag
element in inside the Body
element rather than the IdTag
element in the output you're expecting.
According to OCPP specs, your current output is closer to what's correct but still has many problems.
.../2015/10/
which is for OCPP 1.6 but in your code, you're using WSDL for OCPP 1.5 which requires .../2012/06/
for URN.idTag
is correct field name for Authorize
message.<authorizeRequest />
in the SOAP body.xmlns:wsa="http://www.w3.org/2005/08/addressing"
for addressing fields (MessageId
, From
, To
, ReplyTo
, RelatesTo
and Action
in the SOAP header.chargeBoxIdentity
belongs to OCPP URN namespace.MessageId
should be MessageID
and it should not have mustUnderstand
attribute.Action
, To
, ReplyTo
and chargeBoxIdentity
should have mustUnderstand="true"
attribute. Others should not.ReplyTo
is required and should always have the value http://www.w3.org/2005/08/addressing/anonymous
RelatesTo
is required for responses only. This is a request.Final version of the expected output should be like below:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:cs="urn://Ocpp/Cs/2012/06/"
xmlns:wsa="http://www.w3.org/2005/08/addressing">
<soap:Header>
<cs:chargeBoxIdentity soap:mustUnderstand="true">XXX01</cs:chargeBoxIdentity>
<wsa:Action soap:mustUnderstand="true">/Authorize</wsa:Action>
<wsa:MessageID>123</wsa:MessageID>
<wsa:From><wsa:Address>http://from-endpoint</wsa:Address></wsa:From>
<wsa:ReplyTo soap:mustUnderstand="true"><wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address></wsa:ReplyTo>
<wsa:To soap:mustUnderstand="true"><wsa:Address>http://to-endpoint</wsa:Address></wsa:To>
</soap:Header>
<soap:Body>
<cs:authorizeRequest>
<cs:idTag>1234567</cs:idTag>
</cs:authorizeRequest>
</soap:Body>
</soap:Envelope>
Note: I've set a bit meaningful namespace prefixes, you can set anything you like.