Swift
Swift
MercadoLibre - Cargar factura (Upload Invoice)
See more MercadoLibre Examples
Cargar factura en detalle de ventaChilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let http = CkoHttp()!
// First get our previously obtained OAuth2 access token.
let jsonToken = CkoJsonObject()!
success = jsonToken.loadFile(path: "qa_data/tokens/mercadolibre.json")
// Implements the following CURL command:
// curl -X POST https://api.mercadolibre.com/packs/$PACK_ID/fiscal_documents?access_token=$ACCESS_TOKEN
// -H 'content-type: multipart/form-data;'
// -F 'fiscal_document=@/home/user/.../Factura_adjunta.pdf'
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
let sbPath = CkoStringBuilder()!
sbPath.append(value: "/packs/$PACK_ID/fiscal_documents?access_token=$ACCESS_TOKEN")
// Use an actual pack ID.
var numReplaced: Int = sbPath.replace(value: "$PACK_ID", replacement: "2000000089077943").intValue
numReplaced = sbPath.replace(value: "$ACCESS_TOKEN", replacement: jsonToken.string(of: "access_token")).intValue
let req = CkoHttpRequest()!
req.httpVerb = "POST"
req.path = sbPath.getAsString()
req.contentType = "multipart/form-data"
success = req.addFile(forUpload2: "fiscal_document", path: "/home/user/.../Factura_adjunta.pdf", contentType: "application/pdf")
req.addHeader(name: "Expect", value: "100-continue")
req.addHeader(name: "content-type", value: "multipart/form-data;")
let resp = CkoHttpResponse()!
success = http.httpSReq(domain: "api.mercadolibre.com", port: 443, ssl: true, request: req, response: resp)
if success == false {
print("\(http.lastErrorText!)")
return
}
let sbResponseBody = CkoStringBuilder()!
resp.getBodySb(sb: sbResponseBody)
let jResp = CkoJsonObject()!
jResp.loadSb(sb: sbResponseBody)
jResp.emitCompact = false
print("Response Body:")
print("\(jResp.emit()!)")
var respStatusCode: Int = resp.statusCode.intValue
print("Response Status Code = \(respStatusCode)")
if respStatusCode >= 400 {
print("Response Header:")
print("\(resp.header!)")
print("Failed.")
return
}
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "ids": [
// "415460047_a96d8dea-38cd-4402-938e-80a1c134fc5d"
// ]
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
var strVal: String?
var i: Int = 0
var count_i: Int = jResp.size(ofArray: "ids").intValue
while i < count_i {
jResp.i = i
strVal = jResp.string(of: "ids[i]")
i = i + 1
}
}