Introductie


Hieronder vind je een voorbeeld van een applicatie waarmee je met PHP verkoopfacturen via de methode ProcessSalesInvoices(sessionID, administrationId, xmlDoc) in Yuki kunt aanmaken.


Voorbeeld


<%
Dim objXmlHttp
Dim objXmlHttp2
Dim strSessionId
Dim strXml
Dim strAccessKey
Dim strAdministrationId
Dim strWebserviceUrl
Dim strSalesXml

strAccessKey = "VERVANGEN MET WEBSERVICEACCESSKEY"
strAdministrationId = "VERVANGEN MET ADMINISTRATIONID"
strWebserviceUrl = "https://api.yukiworks.be/ws/Sales.asmx"

' Build SOAP XML message for WebServiceMethod "http://www.theyukicompany.com/Authenticate".
strXml = "<?xml version=""1.0"" encoding=""utf-8""?>" & _
                        "<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">" & _
                        "<soap12:Body>" & _
                        "<Authenticate xmlns=""http://www.theyukicompany.com/"">" & _
                        "<accessKey>" & strAccessKey & "</accessKey>" & _

                        "</Authenticate>" & _
                        "</soap12:Body>" & _
                        "</soap12:Envelope>"

' Create ServerXMLHTTP object.
Set objXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
objXmlHttp.open "POST", strWebserviceUrl, False
objXmlHttp.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8"
objXmlHttp.setRequestHeader "SOAPAction", "http://www.theyukicompany.com/Authenticate"
objXmlHttp.setRequestHeader "Content-Length", Len(strXml)

' Send SOAP message.
objXmlHttp.send strXml

' Print out the request status.
Response.Write "WebServiceMethod ""Authenticate"" request status: <b>" & objXmlHttp.status & " " & objXmlHttp.statusText & "</b><br /><br />"

' Print out the SOAP XML response.
Response.Write "<div style=""border: solid 1px black;"">" & Server.HTMLEncode(objXmlHttp.responseText) & "</div><br /><br />"

' Parse sessionKey from SOAP XML response with ActiveXObject. If the ActiveXObject "MSXML2.DomDocument.X.X" cannot be found try to find
' another version on MSDN.
Set objXML = Server.CreateObject("MSXML2.DomDocument.3.0")
objXML.loadXML(objXmlHttp.responseText)
strSessionId = objXML.selectNodes("/").item(0).text

Set objXML = Nothing
Set objXmlHttp = Nothing

strSalesXml = "<SalesInvoices xmlns=""urn:xmlns:http://www.theyukicompany.com:salesinvoices""" & _

                " xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">" & _
                "  <SalesInvoice>" & _

                "    <Reference>XX-1234</Reference>" & _

                "    <Subject>Testfactuur - 1</Subject>" & _
                "    <PaymentMethod>ElectronicTransfer</PaymentMethod>" & _
                "    <Process>true</Process>" & _
                "    <EmailToCustomer>false</EmailToCustomer>" & _
                "    <Layout />" & _
                "    <Date>2012-06-22</Date>" & _
                "    <DueDate>2012-07-22</DueDate>" & _
                "    <PriceList />" & _
                "    <Currency />" & _
                "    <Remarks />" & _
                "    <Contact>" & _
                "      <ContactCode>1122</ContactCode>" & _
                "      <FullName>Apple Sales International</FullName>" & _
                "      <FirstName />" & _
                "      <MiddleName />" & _
                "      <LastName />" & _
                "      <Gender>Male</Gender>" & _
                "      <CountryCode>NL</CountryCode>" & _
                "      <City>Rotterdam</City>" & _
                "      <Zipcode>1234 AA</Zipcode>" & _
                "      <AddressLine_1>Bergweg 25</AddressLine_1>" & _
                "      <AddressLine_2 />" & _
                "      <EmailAddress>info@test.nl</EmailAddress>" & _
                "      <Website />" & _
                "      <CoCNumber />" & _
                "      <VATNumber />" & _
                "      <ContactType>Person</ContactType>" & _
                "    </Contact>" & _
                "    <InvoiceLines>" & _
                "      <InvoiceLine>" & _
                "        <Description>Regel 1</Description>" & _
                "        <ProductQuantity>2</ProductQuantity>" & _
                "        <Product>" & _
                "          <Description>Product 1</Description>" & _
                "          <Reference>TP-1122</Reference>" & _
                "          <Category xsi:nil=""true"" />" & _
                "          <SalesPrice>14.88</SalesPrice>" & _
                "          <VATPercentage>6.00</VATPercentage>" & _
                "          <VATIncluded>true</VATIncluded>" & _
                "          <VATType>2</VATType>" & _
                "          <GLAccountCode></GLAccountCode>" & _
                "          <Remarks />" & _
                "        </Product>" & _
                "      </InvoiceLine>" & _
                "    </InvoiceLines>" & _
                "  </SalesInvoice>" & _
                "</SalesInvoices>"

' Build SOAP XML message for WebServiceMethod "http://www.theyukicompany.com/ProcessSalesInvoices".
strXml = "<?xml version=""1.0"" encoding=""utf-8""?>" & _
                        "<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">" & _

                        "<soap12:Body>" & _
                        "<ProcessSalesInvoices xmlns=""http://www.theyukicompany.com/"">" & _
                        "<sessionId>" & strSessionId & "</sessionId>" & _
                        "<administrationId>" & strAdministrationId & "</administrationId>" & _
                        "<xmlDoc>" & strSalesXml & "</xmlDoc>" & _
                        "</ProcessSalesInvoices>" & _
                        "</soap12:Body>" & _
                        "</soap12:Envelope>"

' Create ServerXMLHTTP object.
Set objXmlHttp2 = Server.CreateObject("Msxml2.ServerXMLHTTP")
objXmlHttp2.open "POST", strWebserviceUrl, False
objXmlHttp2.setRequestHeader "SOAPAction", "http://www.theyukicompany.com/ProcessSalesInvoices"
objXmlHttp2.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8"
objXmlHttp2.setRequestHeader "Content-Length", Len(strXml)

' Send SOAP message.
objXmlHttp2.send strXml

' Print out the request status.
Response.Write "WebServiceMethod ""ProcessSalesInvoices"" request status: <b>" & objXmlHttp2.status & " " & objXmlHttp2.statusText & "</b><br /><br />"

' Print out the SOAP XML response.
Response.Write "<div style=""border: solid 1px black;"">" & Server.HTMLEncode(objXmlHttp2.responseText) & "</div>"

Set objXmlHttp2 = Nothing
%>