Sample code for 30+ languages & platforms
Swift

MercadoLibre - Cargar factura (Upload Invoice)

See more MercadoLibre Examples

Cargar factura en detalle de venta

Chilkat Swift Downloads

Swift

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
    }


}