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
(Objective-C) MyInvois Malaysia Submit DocumentSee more Malaysia MyInvois ExamplesDemonstrates how to submit a document to MyInvois. For more information, see https://sdk.myinvois.hasil.gov.my/einvoicingapi/02-submit-documents/
#import <CkoHttp.h> #import <CkoStringBuilder.h> #import <NSString.h> #import <CkoJsonObject.h> #import <CkoHttpResponse.h> // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkoHttp *http = [[CkoHttp alloc] init]; BOOL success; // The following JSON is sent in the request body. // { // "documents": [ // { // "format": "XML", // "documentHash": "<SHA256_hash_of_document>", // "codeNumber": "INV12345", // "document": "<Document_encoded_in_Base64>" // } // ] // } // Load the document to be sent. CkoStringBuilder *sbXmlDoc = [[CkoStringBuilder alloc] init]; success = [sbXmlDoc LoadFile: @"c:/invoices/invoice1.xml" charset: @"utf-8"]; // The MyInvois online documentation neglects to tell us the encoding of the documentHash. // Should it be base64? Or hex? We can only guess. MyInvois provides no samples, // and omits these crucial details which are needed for actual implementation. // // *** Note: It was confirmed that "hex" is the encoding that is needed. NSString *sha256 = [sbXmlDoc GetHash: @"sha256" encoding: @"hex" charset: @"utf-8"]; CkoStringBuilder *sbEncoded = [[CkoStringBuilder alloc] init]; [sbEncoded AppendSb: sbXmlDoc]; [sbEncoded Encode: @"base64" charset: @"utf-8"]; CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json UpdateString: @"documents[0].format" value: @"XML"]; [json UpdateString: @"documents[0].documentHash" value: sha256]; [json UpdateString: @"documents[0].codeNumber" value: @"INV12345"]; [json UpdateSb: @"documents[0].document" sb: sbEncoded]; // Adds the "Authorization: Bearer <access_token>" header. http.AuthToken = @"<access_token>"; CkoHttpResponse *resp = [http PostJson3: @"https://preprod-api.myinvois.hasil.gov.my/api/v1.0/documentsubmissions" contentType: @"application/json" json: json]; if (http.LastMethodSuccess == NO) { NSLog(@"%@",http.LastErrorText); return; } NSLog(@"%@%d",@"response status code = ",[resp.StatusCode intValue]); NSLog(@"%@",resp.BodyStr); |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.