Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Swift 3,4,5...) Peoplevox SaveDataDemonstrates how to call the Peoplevox SaveData SOAP method. This example adds a new carrier (DHL) to the system.
func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. var success: Bool // Sends a POST that looks like this: // POST /PEOPLEVOX_CLIENT_ID/resources/integrationservicev4.asmx HTTP/1.1 // Content-Type: text/xml;charset=UTF-8 // SOAPAction: http://www.peoplevox.net/SaveData // Content-Length: (automatically computed and added by Chilkat) // Host: qac.peoplevox.net // // <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:peop="http://www.peoplevox.net/"> // <soap:Header> // <peop:UserSessionCredentials> // <peop:UserId>PEOPLEVOX_USER_ID</peop:UserId> // <peop:ClientId>PEOPLEVOX_CLIENT_ID</peop:ClientId> // <peop:SessionId>PEOPLEVOX_SESSION_ID</peop:SessionId> // </peop:UserSessionCredentials> // </soap:Header> // <soap:Body> // <peop:SaveData> // <peop:saveRequest> // <peop:TemplateName>Carriers</peop:TemplateName> // <peop:CsvData>CSV_DATA</peop:CsvData> // <peop:Action>0</peop:Action> // </peop:saveRequest> // </peop:SaveData> // </soap:Body> // </soap:Envelope> // // Notice that a UserId is needed here. This is different than the username required for Peoplevox authentication. // The UserId for the admin account is 1. // let sbSoapXml = CkoStringBuilder()! sbSoapXml.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n") sbSoapXml.append("<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:peop=\"http://www.peoplevox.net/\">\r\n") sbSoapXml.append(" <soap:Header>\r\n") sbSoapXml.append(" <peop:UserSessionCredentials>\r\n") sbSoapXml.append(" <peop:UserId>PEOPLEVOX_USER_ID</peop:UserId>\r\n") sbSoapXml.append(" <peop:ClientId>PEOPLEVOX_CLIENT_ID</peop:ClientId>\r\n") sbSoapXml.append(" <peop:SessionId>PEOPLEVOX_SESSION_ID</peop:SessionId>\r\n") sbSoapXml.append(" </peop:UserSessionCredentials>\r\n") sbSoapXml.append(" </soap:Header>\r\n") sbSoapXml.append(" <soap:Body>\r\n") sbSoapXml.append(" <peop:SaveData>\r\n") sbSoapXml.append(" <peop:saveRequest>\r\n") sbSoapXml.append(" <peop:TemplateName>Carriers</peop:TemplateName>\r\n") sbSoapXml.append(" <peop:CsvData>CSV_DATA</peop:CsvData>\r\n") sbSoapXml.append(" <peop:Action>0</peop:Action>\r\n") sbSoapXml.append(" </peop:saveRequest>\r\n") sbSoapXml.append(" </peop:SaveData>\r\n") sbSoapXml.append(" </soap:Body>\r\n") sbSoapXml.append("</soap:Envelope>") let sbCsvData = CkoStringBuilder()! sbCsvData.append("Name,Reference\r\n") sbCsvData.append("DHL,D0001") var numReplacements: Int = sbSoapXml.replace("CSV_DATA", replacement: sbCsvData.getAsString()).intValue let req = CkoHttpRequest()! req.httpVerb = "POST" req.sendCharset = true req.charset = "utf-8" req.addHeader("Content-Type", value: "text/xml") req.addHeader("SOAPAction", value: "http://www.peoplevox.net/SaveData") req.path = "/PEOPLEVOX_CLIENT_ID/resources/integrationservicev4.asmx" success = req.loadBody(from: sbSoapXml.getAsString(), charset: "utf-8") let http = CkoHttp()! http.followRedirects = true var resp: CkoHttpResponse? = http.synchronousRequest("qac.peoplevox.net", port: 443, ssl: true, req: req) if http.lastMethodSuccess != true { print("\(http.lastErrorText!)") return } // We should expect a 200 response if successful. if resp!.statusCode.intValue != 200 { print("Response StatusCode = \(resp!.statusCode.intValue)") print("Response StatusLine: \(resp!.statusLine!)") print("Response Header:") print("\(resp!.header!)") print("\(resp!.bodyStr!)") return } let xmlResponse = CkoXml()! success = xmlResponse.load(resp!.bodyStr) print("\(xmlResponse.getXml()!)") resp = nil // A successful response is shown below. // To parse a successful response: var reference: String? = xmlResponse.chilkatPath("soap:Body|SaveDataResponse|SaveDataResult|Statuses|IntegrationStatusResponse|Reference|*") print("Reference = \(reference!)") var status: String? = xmlResponse.chilkatPath("soap:Body|SaveDataResponse|SaveDataResult|Statuses|IntegrationStatusResponse|Status|*") print("Status = \(status!)") // <?xml version="1.0" encoding="utf-8" ?> // <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> // <soap:Body> // <SaveDataResponse xmlns="http://www.peoplevox.net/"> // <SaveDataResult> // <ResponseId>0</ResponseId> // <TotalCount>1</TotalCount> // <Detail /> // <Statuses> // <IntegrationStatusResponse> // <Reference>D0001</Reference> // <Status>Success</Status> // <LineNo>0</LineNo> // </IntegrationStatusResponse> // </Statuses> // <ImportingQueueId>0</ImportingQueueId> // <SalesOrdersToDespatchIds /> // </SaveDataResult> // </SaveDataResponse> // </soap:Body> // </soap:Envelope> } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.