Objective-C
Objective-C
MyInvois Malaysia Get Document Types
See more Malaysia MyInvois Examples
There are multiple types of documents supported by MyInvois, and this API retrieves their definitions through API call.Chilkat Objective-C Downloads
#import <CkoHttp.h>
#import <CkoStringBuilder.h>
#import <CkoJsonObject.h>
#import <NSString.h>
BOOL success = NO;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoHttp *http = [[CkoHttp alloc] init];
// Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken = @"<access_token>";
// Note: The access token is valid for a short amount of time. Perhaps 1 hour.
// The access token is used in the "Authorization: Bearer <access_token>" header in subsequent requests until it expires.
// Your application would then need to get a new access token, and so on..
// To get an access token, see How to Get a MyInvois Access Token
CkoStringBuilder *sb = [[CkoStringBuilder alloc] init];
success = [http QuickGetSb: @"https://preprod-api.myinvois.hasil.gov.my/api/v1.0/documenttypes" sbContent: sb];
if (success == NO) {
NSLog(@"%@",http.LastErrorText);
return;
}
int statusCode = [http.LastStatus intValue];
NSLog(@"%@%d",@"response status code = ",statusCode);
if (statusCode != 200) {
// Failed.
NSLog(@"%@",[sb GetAsString]);
return;
}
// Sample response:
// {"result":
// [
// {"id":45,
// "invoiceTypeCode":4,
// "description":"Invoice",
// "activeFrom":"2015-02-13T13:15:00Z",
// "activeTo":"2027-03-01T00:00:00Z",
// "documentTypeVersions":
// [
// {"id":454,
// "name":"1.0",
// "description":"Invoice version 1.1",
// "activeFrom":"2015-02-13T13:15:00Z",
// "activeTo":"2027-03-01T00:00:00Z",
// "versionNumber":1.1,
// "status":"published"
// }
// ]
// }
// ]
// }
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json LoadSb: sb];
int id;
int invoiceTypeCode;
NSString *description = 0;
NSString *activeFrom = 0;
NSString *activeTo = 0;
int j;
int count_j;
NSString *name = 0;
NSString *versionNumber = 0;
NSString *status = 0;
int i = 0;
int count_i = [[json SizeOfArray: @"result"] intValue];
while (i < count_i) {
json.I = [NSNumber numberWithInt: i];
id = [[json IntOf: @"result[i].id"] intValue];
invoiceTypeCode = [[json IntOf: @"result[i].invoiceTypeCode"] intValue];
description = [json StringOf: @"result[i].description"];
activeFrom = [json StringOf: @"result[i].activeFrom"];
activeTo = [json StringOf: @"result[i].activeTo"];
j = 0;
count_j = [[json SizeOfArray: @"result[i].documentTypeVersions"] intValue];
while (j < count_j) {
json.J = [NSNumber numberWithInt: j];
id = [[json IntOf: @"result[i].documentTypeVersions[j].id"] intValue];
name = [json StringOf: @"result[i].documentTypeVersions[j].name"];
description = [json StringOf: @"result[i].documentTypeVersions[j].description"];
activeFrom = [json StringOf: @"result[i].documentTypeVersions[j].activeFrom"];
activeTo = [json StringOf: @"result[i].documentTypeVersions[j].activeTo"];
versionNumber = [json StringOf: @"result[i].documentTypeVersions[j].versionNumber"];
status = [json StringOf: @"result[i].documentTypeVersions[j].status"];
j = j + 1;
}
i = i + 1;
}