Sample code for 30+ languages & platforms
Lua Requires Chilkat v11.0.0+

CardConnect Signature Capture

See more CardConnect Examples

Demonstrates how to upload a BMP image of a handwritten signature.
This signature capture service augments an existing authorization record with the provided signature data. ...

See https://developer.cardconnect.com/cardconnect-api?lang=json#signature-capture

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

local http = chilkat.Http.new()

http.basic_auth = true
http.login = "API_USERNAME"
http.password = "API_PASSWORD"

-- Build and send the following JSON:

-- {
--   "merchid": "MERCHANT_ID",
--   "retref": "112989260941",
--   "signature": "BASE64_GZIPPED_BMP_DATA"
-- }

local json = chilkat.JsonObject.new()
json:update_string("merchid", "MERCHANT_ID")
json:update_string("retref", "106631225001")

-- Load the .bmp containing a 200px x 100px signature.
local bd = chilkat.BinData.new()
local success = bd:load_file("qa_data/bmp/signature.bmp")
-- Gzip compress.
local gzip = chilkat.Gzip.new()
success = gzip:compress_bd(bd)
-- Add to the JSON in base64 format
json:update_string("signature", bd:get_encoded("base64"))

local url = "https://<site>.cardconnect.com:<port>/cardconnect/rest/sigcap"

local resp = chilkat.HttpResponse.new()
success = http:http_str("PUT", url, json:emit(), "utf-8", "application/json", resp)
if not success then
    print(http.last_error_text)
    return
end

-- A response status of 200 indicates potential success.  The JSON response body
-- must be examined to determine if it was truly successful or an error.
print("response status code = " .. resp.status_code)

local jsonResp = chilkat.JsonObject.new()
jsonResp:load(resp.body_str)
jsonResp.emit_compact = false

print("response JSON:")
print(jsonResp:emit())

-- A successful response looks like this:

-- {
--   "resptext": "signature stored",
--   "retref": "106631225001",
--   "respcode": "02",
--   "merchid": "MERCHANT_ID"
-- }