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
(Delphi DLL) SII POST boleta.electronica.envioAlmacenamiento de un conjunto de boletas en el SII For more information, see https://www4c.sii.cl/bolcoreinternetui/api/
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpRequest, HttpResponse, StringBuilder, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var http: HCkHttp; success: Boolean; req: HCkHttpRequest; xmlStr: PWideChar; resp: HCkHttpResponse; sbResponseBody: HCkStringBuilder; jResp: HCkJsonObject; respStatusCode: Integer; rut_emisor: PWideChar; rut_envia: PWideChar; trackid: Integer; fecha_recepcion: PWideChar; estado: PWideChar; file: PWideChar; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := CkHttp_Create(); // Implements the following CURL command: // curl -X POST "https://pangal.sii.cl/recursos/v1/boleta.electronica.envio" -H "accept: application/json" // -H "User-Agent: Mozilla/4.0 ( compatible; PROG 1.0; Windows NT)" // -H "Cookie: YZVQNQY4J5DT9" -H "Content-Type: multipart/form-data" // -F "rutSender=1234" -F "dvSender=xyz" -F "rutCompany=9999" -F "dvCompany=abc" // -F "archivo=@starfish20.jpg;type=image/jpeg" // Use the following online tool to generate HTTP code from a CURL command // Convert a cURL Command to HTTP Source Code req := CkHttpRequest_Create(); CkHttpRequest_putHttpVerb(req,'POST'); CkHttpRequest_putPath(req,'/recursos/v1/boleta.electronica.envio'); CkHttpRequest_putContentType(req,'multipart/form-data'); CkHttpRequest_AddParam(req,'rutSender','66666666'); CkHttpRequest_AddParam(req,'dvSender','6'); CkHttpRequest_AddParam(req,'rutCompany','60803000'); CkHttpRequest_AddParam(req,'dvCompany','K'); // Add an XML file that contains something like this: // <?xml version="1.0" encoding="ISO-8859-1"?> // <EnvioBOLETA version="1.0" xmlns="http://www.sii.cl/SiiDte" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sii.cl/SiiDte EnvioBOLETA_v11.xsd"> // <SetDTE ID="SetDocB0T39_20201103_131999"> // <Caratula version="1.0"> // ... xmlStr := '...'; success := CkHttpRequest_AddStringForUpload2(req,'archivo','envioBoleta.xml',xmlStr,'ISO-8859-1','text/xml'); CkHttpRequest_AddHeader(req,'Expect','100-continue'); CkHttpRequest_AddHeader(req,'User-Agent','Mozilla/4.0 ( compatible; PROG 1.0; Windows NT)'); CkHttpRequest_AddHeader(req,'Cookie','TOKEN=YZVQNQY4J5DT9'); CkHttpRequest_AddHeader(req,'accept','application/json'); CkHttpRequest_AddHeader(req,'Content-Type','multipart/form-data'); // For debugging, you can save the exact HTTP request sent and response received // to a session log file: CkHttp_putSessionLogFilename(http,'someDir/sessionLog.txt'); // Use one of the following domains, depending on the environment: // pangal.sii.cl - Certification Environment // rahue.sii.cl - Production Environment resp := CkHttp_SynchronousRequest(http,'pangal.sii.cl',443,True,req); if (CkHttp_getLastMethodSuccess(http) = False) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; sbResponseBody := CkStringBuilder_Create(); CkHttpResponse_GetBodySb(resp,sbResponseBody); jResp := CkJsonObject_Create(); CkJsonObject_LoadSb(jResp,sbResponseBody); CkJsonObject_putEmitCompact(jResp,False); Memo1.Lines.Add('Response Body:'); Memo1.Lines.Add(CkJsonObject__emit(jResp)); respStatusCode := CkHttpResponse_getStatusCode(resp); Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode)); if (respStatusCode >= 400) then begin Memo1.Lines.Add('Response Header:'); Memo1.Lines.Add(CkHttpResponse__header(resp)); Memo1.Lines.Add('Failed.'); CkHttpResponse_Dispose(resp); Exit; end; CkHttpResponse_Dispose(resp); // Sample JSON response: // (Sample code for parsing the JSON response is shown below) // { // "rut_emisor": "45000054-K", // "rut_envia": "83154595-0", // "trackid": 1014, // "fecha_recepcion": "2020-09-01 20:30:10", // "estado": "REC", // "file": "boleta-2020-09-01-001.xml" // } // Sample code for parsing the JSON response... // Use the following online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON rut_emisor := CkJsonObject__stringOf(jResp,'rut_emisor'); rut_envia := CkJsonObject__stringOf(jResp,'rut_envia'); trackid := CkJsonObject_IntOf(jResp,'trackid'); fecha_recepcion := CkJsonObject__stringOf(jResp,'fecha_recepcion'); estado := CkJsonObject__stringOf(jResp,'estado'); file := CkJsonObject__stringOf(jResp,'file'); CkHttp_Dispose(http); CkHttpRequest_Dispose(req); CkStringBuilder_Dispose(sbResponseBody); CkJsonObject_Dispose(jResp); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.