Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicCkPythonChilkat2-PythonRubySQL ServerSwift 2Swift 3/4TclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcelGo

Classic ASP Web API Examples

Primary Categories

CardConnect
Facebook
GeoOp
Jira
PayPal
Peoplevox
QuickBooks

Shopify
Stripe
SugarCRM
Twitter
VoiceBase
Walmart
Xero
eBay
effectconnect

 

 

 

(Classic ASP) Walmart - Send Shipping Notification

See Shipping notifications/updates for more information about this call.

Note: This example requires Chilkat v9.5.0.67 or greater.

Chilkat ActiveX Downloads

ActiveX for 32-bit and 64-bit Windows

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
' 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

set sbUrl = Server.CreateObject("Chilkat_9_5_0.StringBuilder")
success = sbUrl.Append("https://marketplace.walmartapis.com/v3/orders/{purchaseOrderId}/shipping")
numReplaced = sbUrl.Replace("{purchaseOrderId}","1111691995111")

requestMethod = "POST"

' First we need to generate a signature for our request.
' The signature needs to be re-generated for each new Walmart HTTP request.
set authUtil = Server.CreateObject("Chilkat_9_5_0.AuthUtil")

wmConsumerId = "WALMART_CONSUMER_ID"
wmPrivateKey = "WALMART_PRIVATE_KEY"
jsonStr = authUtil.WalmartSignature(sbUrl.GetAsString(),wmConsumerId,wmPrivateKey,requestMethod)
If (authUtil.LastMethodSuccess <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( authUtil.LastErrorText) & "</pre>"
    Response.End
End If

' 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
set json = Server.CreateObject("Chilkat_9_5_0.JsonObject")
success = json.Load(jsonStr)

set http = Server.CreateObject("Chilkat_9_5_0.Http")
http.SetRequestHeader "WM_SVC.NAME","Walmart Marketplace"
http.SetRequestHeader "WM_QOS.CORRELATION_ID",json.StringOf("correlation_id")
http.SetRequestHeader "WM_SEC.TIMESTAMP",json.StringOf("timestamp")
http.SetRequestHeader "WM_SEC.AUTH_SIGNATURE",json.StringOf("signature")
http.SetRequestHeader "WM_CONSUMER.ID",wmConsumerId
http.SetRequestHeader "WM_CONSUMER.CHANNEL.TYPE","WALMART_CHANNEL_TYPE"
http.Accept = "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:
lineNumber = 1
shippingStatus = "Shipped"
quantity = 1
carrier = "USPS"
shippingMethod = "Standard"
trackingNumber = "9999869903501929298999"

set dtNow = Server.CreateObject("Chilkat_9_5_0.CkDateTime")
success = dtNow.SetFromCurrentSystemTime()
shipDateTime = dtNow.GetAsTimestamp(0)

set xmlBody = Server.CreateObject("Chilkat_9_5_0.Xml")
xmlBody.Tag = "ns2:orderShipment"
success = xmlBody.AddAttribute("xmlns:ns2","http://walmart.com/mp/v3/orders")
success = xmlBody.AddAttribute("xmlns:ns3","http://walmart.com/")
xmlBody.UpdateChildContentInt "ns2:orderLines|ns2:orderLine|ns2:lineNumber",lineNumber

' orderLine is a Chilkat_9_5_0.Xml
Set orderLine = xmlBody.GetChildWithTag("ns2:orderLines|ns2:orderLine")
orderLine.UpdateChildContent "ns2:orderLineStatuses|ns2:orderLineStatus|ns2:status",shippingStatus

' orderLineStatus is a Chilkat_9_5_0.Xml
Set orderLineStatus = orderLine.GetChildWithTag("ns2:orderLineStatuses|ns2:orderLineStatus")
orderLineStatus.UpdateChildContent "ns2:statusQuantity|ns2:unitOfMeasurement","Each"
orderLineStatus.UpdateChildContentInt "ns2:statusQuantity|ns2:amount",quantity
orderLineStatus.UpdateChildContent "ns2:trackingInfo|ns2:shipDateTime",shipDateTime
orderLineStatus.UpdateChildContent "ns2:trackingInfo|ns2:carrierName|ns2:carrier",carrier
orderLineStatus.UpdateChildContent "ns2:trackingInfo|ns2:methodCode",shippingMethod
orderLineStatus.UpdateChildContent "ns2:trackingInfo|ns2:trackingNumber",trackingNumber

Response.Write "<pre>" & Server.HTMLEncode( "POST request body:") & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( xmlBody.GetXml()) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "--") & "</pre>"

' 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.
http.SetRequestHeader "Content-Type","application/xml"
' resp is a Chilkat_9_5_0.HttpResponse
Set resp = http.PostXml(sbUrl.GetAsString(),xmlBody.GetXml(),"utf-8")
If (http.LastMethodSuccess <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
    Response.End
End If

set xml = Server.CreateObject("Chilkat_9_5_0.Xml")
success = xml.LoadXml(resp.BodyStr)

' A successful response should have a 200 response status
If (resp.StatusCode <> 200) Then
    Response.Write "<pre>" & Server.HTMLEncode( xml.GetXml()) & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( "Response Status Code: " & resp.StatusCode) & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( "Failed.") & "</pre>"

    Response.End
End If

' Show the XML response..
Response.Write "<pre>" & Server.HTMLEncode( xml.GetXml()) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "--") & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "Success!") & "</pre>"

%>
</body>
</html>

 

© 2000-2019 Chilkat Software, Inc. All Rights Reserved.