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
(Go) effectconnect Create or Replace Product CatalogUse this call to create or replace a product catalog in EffectConnect. This is always a purge and replace action for the entire catalog.
// This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. var success bool uri := "/products" apiVersion := "2.0" http := chilkat.NewHttp() req := chilkat.NewHttpRequest() // Use your effectconnect public key here... req.AddHeader("KEY","PUBLIC_KEY") req.AddHeader("VERSION",apiVersion) req.AddHeader("URI",uri) req.AddHeader("RESPONSETYPE","XML") req.AddHeader("RESPONSELANGUAGE","en") // Get the current date/time in timestamp format. dt := chilkat.NewCkDateTime() dt.SetFromCurrentSystemTime() timestamp := dt.GetAsTimestamp(true) req.AddHeader("TIME",*timestamp) fmt.Println("timestamp = ", *timestamp) sbXml := chilkat.NewStringBuilder() success = sbXml.LoadFile("qa_data/xml/effectconnect/effconCreate.xml","utf-8") fmt.Println("length = ", sbXml.Length()) req.SetHttpVerb("POST") req.SetPath(uri) req.SetContentType("multipart/form-data") success = req.AddStringForUpload("payload","effcon.xml",*sbXml.GetAsString(),"utf-8") if success == false { fmt.Println(req.LastErrorText()) http.DisposeHttp() req.DisposeHttpRequest() dt.DisposeCkDateTime() sbXml.DisposeStringBuilder() return } // Build a string-to-sign and sign it using our effectconnect private key sbStringToSign := chilkat.NewStringBuilder() sbStringToSign.AppendInt(sbXml.Length()) sbStringToSign.Append("POST") sbStringToSign.Append(uri) sbStringToSign.Append(apiVersion) sbStringToSign.Append(*timestamp) crypt := chilkat.NewCrypt2() crypt.SetMacAlgorithm("hmac") crypt.SetHashAlgorithm("sha512") crypt.SetEncodingMode("base64") // Use your effectconnect private key here: crypt.SetMacKeyString("PRIVATE_KEY") req.AddHeader("SIGNATURE",*crypt.MacStringENC(*sbStringToSign.GetAsString())) resp := http.SynchronousRequest("submit.effectconnect.com",443,true,req) if http.LastMethodSuccess() == false { fmt.Println(http.LastErrorText()) http.DisposeHttp() req.DisposeHttpRequest() dt.DisposeCkDateTime() sbXml.DisposeStringBuilder() sbStringToSign.DisposeStringBuilder() crypt.DisposeCrypt2() return } fmt.Println("response status code = ", resp.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. xmlResp := chilkat.NewXml() xmlResp.LoadXml(resp.BodyStr()) resp.DisposeHttpResponse() fmt.Println("response body:") fmt.Println(*xmlResp.GetXml()) // A sample response: // <?xml version="1.0" encoding="utf-8"?> // <ApiResponseContainer> // <Request> // <RequestType>Products</RequestType> // <RequestAction>Create</RequestAction> // <RequestVersion>2.0</RequestVersion> // <RequestIdentifier/> // <ProcessedAt>2019-04-18T15:28:55+02:00</ProcessedAt> // </Request> // <Response> // <Result>Success</Result> // <ProductsCreateResponseContainer> // <ProcessID><![CDATA[J048hgS4OkNn0JnH]]></ProcessID> // </ProductsCreateResponseContainer> // </Response> // </ApiResponseContainer> // Parsing the response... var tagPath string var RequestType *string = new(string) var RequestAction *string = new(string) var RequestVersion *string = new(string) var ProcessedAt *string = new(string) var Result *string = new(string) var ProcessID *string = new(string) RequestType = xmlResp.GetChildContent("Request|RequestType") RequestAction = xmlResp.GetChildContent("Request|RequestAction") RequestVersion = xmlResp.GetChildContent("Request|RequestVersion") ProcessedAt = xmlResp.GetChildContent("Request|ProcessedAt") Result = xmlResp.GetChildContent("Response|Result") ProcessID = xmlResp.GetChildContent("Response|ProductsCreateResponseContainer|ProcessID") http.DisposeHttp() req.DisposeHttpRequest() dt.DisposeCkDateTime() sbXml.DisposeStringBuilder() sbStringToSign.DisposeStringBuilder() crypt.DisposeCrypt2() xmlResp.DisposeXml() |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.