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
(Perl) effectconnect Product UpdateUse this call to update a product (f.e. stock or price) in EffectConnect.
use chilkat(); # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $uri = "/products"; $apiVersion = "2.0"; $http = chilkat::CkHttp->new(); $req = chilkat::CkHttpRequest->new(); # 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::CkDateTime->new(); $dt->SetFromCurrentSystemTime(); $timestamp = $dt->getAsTimestamp(1); $req->AddHeader("TIME",$timestamp); print "timestamp = " . $timestamp . "\r\n"; $sbXml = chilkat::CkStringBuilder->new(); $success = $sbXml->LoadFile("qa_data/xml/effectconnect/effconUpdate.xml","utf-8"); print "length = " . $sbXml->get_Length() . "\r\n"; $req->put_HttpVerb("PUT"); $req->put_Path($uri); $req->put_ContentType("multipart/form-data"); $success = $req->AddStringForUpload("payload","effconUpdate.xml",$sbXml->getAsString(),"utf-8"); if ($success == 0) { print $req->lastErrorText() . "\r\n"; exit; } # Build a string-to-sign and sign it using our effectconnect private key $sbStringToSign = chilkat::CkStringBuilder->new(); $sbStringToSign->AppendInt($sbXml->get_Length()); $sbStringToSign->Append("PUT"); $sbStringToSign->Append($uri); $sbStringToSign->Append($apiVersion); $sbStringToSign->Append($timestamp); $crypt = chilkat::CkCrypt2->new(); $crypt->put_MacAlgorithm("hmac"); $crypt->put_HashAlgorithm("sha512"); $crypt->put_EncodingMode("base64"); # Use your effectconnect private key here: $crypt->SetMacKeyString("PRIVATE_KEY"); $req->AddHeader("SIGNATURE",$crypt->macStringENC($sbStringToSign->getAsString())); # resp is a HttpResponse $resp = $http->SynchronousRequest("submit.effectconnect.com",443,1,$req); if ($http->get_LastMethodSuccess() == 0) { print $http->lastErrorText() . "\r\n"; exit; } print "response status code = " . $resp->get_StatusCode() . "\r\n"; # 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::CkXml->new(); $xmlResp->LoadXml($resp->bodyStr()); print "response body:" . "\r\n"; print $xmlResp->getXml() . "\r\n"; # 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> # $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|ProductsUpdateResponseContainer|ProcessID"); |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.