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
(DataFlex) Walmart - Send Shipping NotificationSee Shipping notifications/updates for more information about this call. Note: This example requires Chilkat v9.5.0.67 or greater.
Use ChilkatAx-win32.pkg Procedure Test Handle hoSbUrl Boolean iSuccess Integer iNumReplaced String sRequestMethod Handle hoAuthUtil String sWmConsumerId String sWmPrivateKey String sJsonStr Handle hoJson Handle hoHttp Integer iLineNumber String sShippingStatus Integer iQuantity String sCarrier String sShippingMethod String sTrackingNumber Handle hoDtNow String sShipDateTime Body Handle hoXmlBody Variant vOrderLine Handle hoOrderLine Variant vOrderLineStatus Handle hoOrderLineStatus Variant vResp Handle hoResp Handle hoXml String sTemp1 String sTemp2 Integer iTemp1 Boolean bTemp1 // --------------------------------------------------------------------------------------------------------- // Note: This example is deprecated. The Walmart API no longer uses the Signature method of authenticating. // Walmart now uses OAuth2. // --------------------------------------------------------------------------------------------------------- // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Sends the following POST request: // POST https://marketplace.walmartapis.com/v3/orders/{purchaseOrderId}/shipping Get Create (RefClass(cComChilkatStringBuilder)) To hoSbUrl If (Not(IsComObjectCreated(hoSbUrl))) Begin Send CreateComObject of hoSbUrl End Get ComAppend Of hoSbUrl "https://marketplace.walmartapis.com/v3/orders/{purchaseOrderId}/shipping" To iSuccess Get ComReplace Of hoSbUrl "{purchaseOrderId}" "1111691995111" To iNumReplaced Move "POST" To sRequestMethod // First we need to generate a signature for our request. // The signature needs to be re-generated for each new Walmart HTTP request. Get Create (RefClass(cComChilkatAuthUtil)) To hoAuthUtil If (Not(IsComObjectCreated(hoAuthUtil))) Begin Send CreateComObject of hoAuthUtil End Move "WALMART_CONSUMER_ID" To sWmConsumerId Move "WALMART_PRIVATE_KEY" To sWmPrivateKey Get ComGetAsString Of hoSbUrl To sTemp1 Get ComWalmartSignature Of hoAuthUtil sTemp1 sWmConsumerId sWmPrivateKey sRequestMethod To sJsonStr Get ComLastMethodSuccess Of hoAuthUtil To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoAuthUtil To sTemp1 Showln sTemp1 Procedure_Return End // The JSON returned by WalmartSignature contains the values to be used in the following // header fields: WM_SEC.AUTH_SIGNATURE, WM_SEC.TIMESTAMP, and WM_QOS.CORRELATION_ID Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Get ComLoad Of hoJson sJsonStr To iSuccess Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End Send ComSetRequestHeader To hoHttp "WM_SVC.NAME" "Walmart Marketplace" Get ComStringOf Of hoJson "correlation_id" To sTemp1 Send ComSetRequestHeader To hoHttp "WM_QOS.CORRELATION_ID" sTemp1 Get ComStringOf Of hoJson "timestamp" To sTemp1 Send ComSetRequestHeader To hoHttp "WM_SEC.TIMESTAMP" sTemp1 Get ComStringOf Of hoJson "signature" To sTemp1 Send ComSetRequestHeader To hoHttp "WM_SEC.AUTH_SIGNATURE" sTemp1 Send ComSetRequestHeader To hoHttp "WM_CONSUMER.ID" sWmConsumerId Send ComSetRequestHeader To hoHttp "WM_CONSUMER.CHANNEL.TYPE" "WALMART_CHANNEL_TYPE" Set ComAccept Of hoHttp To "application/xml" // Note: Do not explicitly set the "Host" header. Chilkat will set it automatically. // The body of the POST request will be XML that looks something like this: // <?xml version="1.0" encoding="UTF-8" standalone="yes"?> // <ns2:orderShipment // xmlns:ns2="http://walmart.com/mp/v3/orders" // xmlns:ns3="http://walmart.com/"> // <ns2:orderLines> // <ns2:orderLine> // <ns2:lineNumber>2</ns2:lineNumber> // <ns2:orderLineStatuses> // <ns2:orderLineStatus> // <ns2:status>Shipped</ns2:status> // <ns2:statusQuantity> // <ns2:unitOfMeasurement>Each</ns2:unitOfMeasurement> // <ns2:amount>1</ns2:amount> // </ns2:statusQuantity> // <ns2:trackingInfo> // <ns2:shipDateTime>2016-06-27T05:30:15.000Z</ns2:shipDateTime> // <ns2:carrierName> // <ns2:carrier>FedEx</ns2:carrier> // </ns2:carrierName> // <ns2:methodCode>Standard</ns2:methodCode> // <ns2:trackingNumber>12333634122</ns2:trackingNumber> // </ns2:trackingInfo> // </ns2:orderLineStatus> // </ns2:orderLineStatuses> // </ns2:orderLine> // </ns2:orderLines> // </ns2:orderShipment> // Build the XML request body: Move 1 To iLineNumber Move "Shipped" To sShippingStatus Move 1 To iQuantity Move "USPS" To sCarrier Move "Standard" To sShippingMethod Move "9999869903501929298999" To sTrackingNumber Get Create (RefClass(cComCkDateTime)) To hoDtNow If (Not(IsComObjectCreated(hoDtNow))) Begin Send CreateComObject of hoDtNow End Get ComSetFromCurrentSystemTime Of hoDtNow To iSuccess Get ComGetAsTimestamp Of hoDtNow False To sShipDateTime Get Create (RefClass(cComChilkatXml)) To hoXmlBody If (Not(IsComObjectCreated(hoXmlBody))) Begin Send CreateComObject of hoXmlBody End Set ComTag Of hoXmlBody To "ns2:orderShipment" Get ComAddAttribute Of hoXmlBody "xmlns:ns2" "http://walmart.com/mp/v3/orders" To iSuccess Get ComAddAttribute Of hoXmlBody "xmlns:ns3" "http://walmart.com/" To iSuccess Send ComUpdateChildContentInt To hoXmlBody "ns2:orderLines|ns2:orderLine|ns2:lineNumber" iLineNumber Get ComGetChildWithTag Of hoXmlBody "ns2:orderLines|ns2:orderLine" To vOrderLine If (IsComObject(vOrderLine)) Begin Get Create (RefClass(cComChilkatXml)) To hoOrderLine Set pvComObject Of hoOrderLine To vOrderLine End Send ComUpdateChildContent To hoOrderLine "ns2:orderLineStatuses|ns2:orderLineStatus|ns2:status" sShippingStatus Send Destroy of hoOrderLine Get ComGetChildWithTag Of hoOrderLine "ns2:orderLineStatuses|ns2:orderLineStatus" To vOrderLineStatus If (IsComObject(vOrderLineStatus)) Begin Get Create (RefClass(cComChilkatXml)) To hoOrderLineStatus Set pvComObject Of hoOrderLineStatus To vOrderLineStatus End Send ComUpdateChildContent To hoOrderLineStatus "ns2:statusQuantity|ns2:unitOfMeasurement" "Each" Send ComUpdateChildContentInt To hoOrderLineStatus "ns2:statusQuantity|ns2:amount" iQuantity Send ComUpdateChildContent To hoOrderLineStatus "ns2:trackingInfo|ns2:shipDateTime" sShipDateTime Send ComUpdateChildContent To hoOrderLineStatus "ns2:trackingInfo|ns2:carrierName|ns2:carrier" sCarrier Send ComUpdateChildContent To hoOrderLineStatus "ns2:trackingInfo|ns2:methodCode" sShippingMethod Send ComUpdateChildContent To hoOrderLineStatus "ns2:trackingInfo|ns2:trackingNumber" sTrackingNumber Send Destroy of hoOrderLineStatus Showln "POST request body:" Get ComGetXml Of hoXmlBody To sTemp1 Showln sTemp1 Showln "--" // This is a simple POST that can be sent w/ the PostXml method. // Explicitly set the Content-Type header, otherwise "text/xml" will be used. Send ComSetRequestHeader To hoHttp "Content-Type" "application/xml" Get ComGetAsString Of hoSbUrl To sTemp1 Get ComGetXml Of hoXmlBody To sTemp2 Get ComPostXml Of hoHttp sTemp1 sTemp2 "utf-8" To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End Get ComBodyStr Of hoResp To sTemp1 Get ComLoadXml Of hoXml sTemp1 To iSuccess // A successful response should have a 200 response status Get ComStatusCode Of hoResp To iTemp1 If (iTemp1 <> 200) Begin Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 Get ComStatusCode Of hoResp To iTemp1 Showln "Response Status Code: " iTemp1 Showln "Failed." Send Destroy of hoResp Procedure_Return End Send Destroy of hoResp // Show the XML response.. Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 Showln "--" Showln "Success!" End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.