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
(Lianja) effectconnect Product UpdateUse this call to update a product (f.e. stock or price) in EffectConnect.
// This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. lcUri = "/products" lcApiVersion = "2.0" loHttp = createobject("CkHttp") loReq = createobject("CkHttpRequest") // Use your effectconnect public key here... loReq.AddHeader("KEY","PUBLIC_KEY") loReq.AddHeader("VERSION",lcApiVersion) loReq.AddHeader("URI",lcUri) loReq.AddHeader("RESPONSETYPE","XML") loReq.AddHeader("RESPONSELANGUAGE","en") // Get the current date/time in timestamp format. loDt = createobject("CkDateTime") loDt.SetFromCurrentSystemTime() lcTimestamp = loDt.GetAsTimestamp(.T.) loReq.AddHeader("TIME",lcTimestamp) ? "timestamp = " + lcTimestamp loSbXml = createobject("CkStringBuilder") llSuccess = loSbXml.LoadFile("qa_data/xml/effectconnect/effconUpdate.xml","utf-8") ? "length = " + str(loSbXml.Length) loReq.HttpVerb = "PUT" loReq.Path = lcUri loReq.ContentType = "multipart/form-data" llSuccess = loReq.AddStringForUpload("payload","effconUpdate.xml",loSbXml.GetAsString(),"utf-8") if (llSuccess = .F.) then ? loReq.LastErrorText release loHttp release loReq release loDt release loSbXml return endif // Build a string-to-sign and sign it using our effectconnect private key loSbStringToSign = createobject("CkStringBuilder") loSbStringToSign.AppendInt(loSbXml.Length) loSbStringToSign.Append("PUT") loSbStringToSign.Append(lcUri) loSbStringToSign.Append(lcApiVersion) loSbStringToSign.Append(lcTimestamp) loCrypt = createobject("CkCrypt2") loCrypt.MacAlgorithm = "hmac" loCrypt.HashAlgorithm = "sha512" loCrypt.EncodingMode = "base64" // Use your effectconnect private key here: loCrypt.SetMacKeyString("PRIVATE_KEY") loReq.AddHeader("SIGNATURE",loCrypt.MacStringENC(loSbStringToSign.GetAsString())) loResp = loHttp.SynchronousRequest("submit.effectconnect.com",443,.T.,loReq) if (loHttp.LastMethodSuccess = .F.) then ? loHttp.LastErrorText release loHttp release loReq release loDt release loSbXml release loSbStringToSign release loCrypt return endif ? "response status code = " + str(loResp.StatusCode) // Examine the response. The response status code can be 200 for both errors and success. // The success or error is based on the XML returned in the response body. loXmlResp = createobject("CkXml") loXmlResp.LoadXml(loResp.BodyStr) release loResp ? "response body:" ? loXmlResp.GetXml() // A sample response: // <?xml version="1.0" encoding="utf-8"?> // <ApiResponseContainer> // <Request> // <RequestType>Products</RequestType> // <RequestAction>Update</RequestAction> // <RequestVersion>2.0</RequestVersion> // <RequestIdentifier/> // <ProcessedAt>2019-04-18T15:37:32+02:00</ProcessedAt> // </Request> // <Response> // <Result>Success</Result> // <ProductsUpdateResponseContainer> // <ProcessID><![CDATA[f81ngzD2S7gooFk3]]></ProcessID> // </ProductsUpdateResponseContainer> // </Response> // </ApiResponseContainer> // lcRequestType = loXmlResp.GetChildContent("Request|RequestType") lcRequestAction = loXmlResp.GetChildContent("Request|RequestAction") lcRequestVersion = loXmlResp.GetChildContent("Request|RequestVersion") lcProcessedAt = loXmlResp.GetChildContent("Request|ProcessedAt") lcResult = loXmlResp.GetChildContent("Response|Result") lcProcessID = loXmlResp.GetChildContent("Response|ProductsUpdateResponseContainer|ProcessID") release loHttp release loReq release loDt release loSbXml release loSbStringToSign release loCrypt release loXmlResp |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.