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
(PowerShell) Generate an E-way BillDemonstrates how to send an HTTP POST request to generate an e-way bill.
Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll" # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # This example uses the previously obtained access token that was retrieved # in this example: Get EWAY Auth Token using Gstin, username, password, and app_key $jsonAuth = New-Object Chilkat.JsonObject $success = $jsonAuth.LoadFile("qa_data/tokens/ewayAuth.json") if ($success -ne $true) { $($jsonAuth.LastErrorText) exit } # The jsonAuth contains something like this: # { # "authToken": "IBTeFtxNfVurg71LTzZ2r0xK7", # "decryptedSek": "5g1TyTie7yoslU3DrbYATa7mWyPazlODE7cEh5Vy4Ho=" # } # Generate the JSON data for the e-way bill. # The following code can be generated by pasting representative JSON into this online tool: # Generate JSON Code $jsonData = New-Object Chilkat.JsonObject $jsonData.UpdateString("supplyType","O") $jsonData.UpdateString("subSupplyType","1") $jsonData.UpdateString("docType","INV") $jsonData.UpdateString("docNo","AW1234-2") $jsonData.UpdateString("docDate","05/04/2018") $jsonData.UpdateString("fromGstin","09ABDC24212B1FK") $jsonData.UpdateString("fromTrdName","willy") $jsonData.UpdateString("fromAddr1","3RD CROSS NO 200 19 A") $jsonData.UpdateString("fromAddr2","GROUND FLOOR OZZY ROAD") $jsonData.UpdateString("fromPlace","BUSY TOWN") $jsonData.UpdateNumber("fromPincode","640033") $jsonData.UpdateNumber("actFromStateCode","05") $jsonData.UpdateNumber("fromStateCode","05") $jsonData.UpdateString("toGstin","01AAAASCC10BBBB") $jsonData.UpdateString("toTrdName","mthustra") $jsonData.UpdateString("toAddr1","Shrek Ogre") $jsonData.UpdateString("toAddr2","Basadronsil") $jsonData.UpdateString("toPlace","Grifl Blagar") $jsonData.UpdateNumber("toPincode","699988") $jsonData.UpdateNumber("actToStateCode","29") $jsonData.UpdateNumber("toStateCode","02") $jsonData.UpdateNumber("totalValue","5609889") $jsonData.UpdateNumber("cgstValue","0") $jsonData.UpdateNumber("sgstValue","0") $jsonData.UpdateNumber("igstValue","168296.67") $jsonData.UpdateNumber("cessValue","224395.56") $jsonData.UpdateString("transporterId","09ABDC24212B1FK") $jsonData.UpdateString("transporterName","") $jsonData.UpdateString("transDocNo","12332") $jsonData.UpdateNumber("transMode","1") $jsonData.UpdateString("transDistance","656") $jsonData.UpdateString("transDocDate","10/04/2018") $jsonData.UpdateString("vehicleNo","PBN4567") $jsonData.UpdateString("vehicleType","R") $jsonData.I = 0 $jsonData.UpdateString("itemList[i].productName","Wheat") $jsonData.UpdateString("itemList[i].productDesc","Wheat") $jsonData.UpdateNumber("itemList[i].hsnCode","1001") $jsonData.UpdateNumber("itemList[i].quantity","4") $jsonData.UpdateString("itemList[i].qtyUnit","BOX") $jsonData.UpdateNumber("itemList[i].cgstRate","0") $jsonData.UpdateNumber("itemList[i].sgstRate","0") $jsonData.UpdateNumber("itemList[i].igstRate","3") $jsonData.UpdateNumber("itemList[i].cessRate","4") $jsonData.UpdateNumber("itemList[i].cessAdvol","0") $jsonData.UpdateNumber("itemList[i].taxableAmount","5609889") # The body of the HTTP POST will contain JSON that looks like this: # { # "action":"GENEWAYBILL", # "data": " iJiJGXq ... oUZp/25Y " # } # The "data" is the encrypted jsonData using our previously agreed-upon symmetric encryption key. # Let's begin build the JSON request body.. $jsonRequestBody = New-Object Chilkat.JsonObject $jsonRequestBody.UpdateString("action","GENEWAYBILL") # Setup the encryptor using the decryptedSek from the jsonAuth $crypt = New-Object Chilkat.Crypt2 $crypt.CryptAlgorithm = "aes" $crypt.CipherMode = "ecb" $crypt.KeyLength = 256 $crypt.SetEncodedKey($jsonAuth.StringOf("decryptedSek"),"base64") $crypt.EncodingMode = "base64" # Encrypt the jsonData and add it to our JSON request body $jsonRequestBody.UpdateString("data",$crypt.EncryptStringENC($jsonData.Emit())) $http = New-Object Chilkat.Http # Add the authtoken to the request header. # Be careful to be precise with uppercase/lowercase ("authtoken" vs "authToken") $http.SetRequestHeader("authtoken",$jsonAuth.StringOf("authToken")) $http.SetRequestHeader("Gstin","09ABDC24212B1FK") $http.Accept = "application/json" # POST the request to generate an e-way bill: $resp = $http.PostJson2("http://ewb.wepgst.com/api/EWayBill","application/json",$jsonRequestBody.Emit()) if ($http.LastMethodSuccess -ne $true) { $($http.LastErrorText) exit } $respStatusCode = $resp.StatusCode $("response status code =" + $respStatusCode) $("response body:") $($resp.BodyStr) if ($respStatusCode -ne 200) { $("Failed in some unknown way.") exit } # When the response status code = 200, we'll have either # success response like this: # {"status":"1","data":"..."} # # or a failed response like this: # # {"status":"0","error":"eyJlcnJvckNvZGVzIjoiMTA4In0="} # Load the response body into a JSON object. $json = New-Object Chilkat.JsonObject $json.Load($resp.BodyStr) $status = $json.IntOf("status") $("status = " + $status) if ($status -ne 1) { # Failed. Base64 decode the error # {"status":"0","error":"eyJlcnJvckNvZGVzIjoiMTA4In0="} # For an invalid password, the error is: {"errorCodes":"108"} $sbError = New-Object Chilkat.StringBuilder $json.StringOfSb("error",$sbError) $sbError.Decode("base64","utf-8") $("error: " + $sbError.GetAsString()) exit } $json.EmitCompact = $false $("JSON response:") $($json.Emit()) $bdData = New-Object Chilkat.BinData $bdData.AppendEncoded($json.StringOf("data"),"base64") $crypt.DecryptBd($bdData) # Decrypts to # {"ewayBillNo":331001121234,"ewayBillDate":"24/05/2018 04:38:00 PM","validUpto":"31/05/2018 11:59:00 PM"} $jsonBill = New-Object Chilkat.JsonObject $jsonBill.Load($bdData.GetString("utf-8")) $ewayBillNo = $jsonBill.IntOf("ewayBillNo") $("ewayBillNo = " + $ewayBillNo) $ewayBillDate = $jsonBill.StringOf("ewayBillDate") $("ewayBillDate = " + $ewayBillDate) $validUpto = $jsonBill.StringOf("validUpto") $("validUpto = " + $validUpto) # Sample output: # ewayBillNo = 331001121234 # ewayBillDate = 24/05/2018 04:55:00 PM # validUpto = 31/05/2018 11:59:00 PM |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.