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
(VB.NET) Generate an E-way BillDemonstrates how to send an HTTP POST request to generate an e-way bill.
' 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 Dim jsonAuth As New Chilkat.JsonObject Dim success As Boolean = jsonAuth.LoadFile("qa_data/tokens/ewayAuth.json") If (success <> True) Then Debug.WriteLine(jsonAuth.LastErrorText) Exit Sub End If ' 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 Dim jsonData As New 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.. Dim jsonRequestBody As New Chilkat.JsonObject jsonRequestBody.UpdateString("action","GENEWAYBILL") ' Setup the encryptor using the decryptedSek from the jsonAuth Dim crypt As New 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())) Dim http As New 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: Dim resp As Chilkat.HttpResponse = http.PostJson2("http://ewb.wepgst.com/api/EWayBill","application/json",jsonRequestBody.Emit()) If (http.LastMethodSuccess <> True) Then Debug.WriteLine(http.LastErrorText) Exit Sub End If Dim respStatusCode As Integer = resp.StatusCode Debug.WriteLine("response status code =" & respStatusCode) Debug.WriteLine("response body:") Debug.WriteLine(resp.BodyStr) If (respStatusCode <> 200) Then Debug.WriteLine("Failed in some unknown way.") Exit Sub End If ' 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. Dim json As New Chilkat.JsonObject json.Load(resp.BodyStr) Dim status As Integer = json.IntOf("status") Debug.WriteLine("status = " & status) If (status <> 1) Then ' Failed. Base64 decode the error ' {"status":"0","error":"eyJlcnJvckNvZGVzIjoiMTA4In0="} ' For an invalid password, the error is: {"errorCodes":"108"} Dim sbError As New Chilkat.StringBuilder json.StringOfSb("error",sbError) sbError.Decode("base64","utf-8") Debug.WriteLine("error: " & sbError.GetAsString()) Exit Sub End If json.EmitCompact = False Debug.WriteLine("JSON response:") Debug.WriteLine(json.Emit()) Dim bdData As New 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"} Dim jsonBill As New Chilkat.JsonObject jsonBill.Load(bdData.GetString("utf-8")) Dim ewayBillNo As Integer = jsonBill.IntOf("ewayBillNo") Debug.WriteLine("ewayBillNo = " & ewayBillNo) Dim ewayBillDate As String = jsonBill.StringOf("ewayBillDate") Debug.WriteLine("ewayBillDate = " & ewayBillDate) Dim validUpto As String = jsonBill.StringOf("validUpto") Debug.WriteLine("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.