Sample code for 30+ languages & platforms
DataFlex

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 DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    Handle hoJson
    Variant vBd
    Handle hoBd
    Handle hoGzip
    String sUrl
    Variant vResp
    Handle hoResp
    Handle hoJsonResp
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    Set ComBasicAuth Of hoHttp To True
    Set ComLogin Of hoHttp To "API_USERNAME"
    Set ComPassword Of hoHttp To "API_PASSWORD"

    // Build and send the following JSON:

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

    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End
    Get ComUpdateString Of hoJson "merchid" "MERCHANT_ID" To iSuccess
    Get ComUpdateString Of hoJson "retref" "106631225001" To iSuccess

    // Load the .bmp containing a 200px x 100px signature.
    Get Create (RefClass(cComChilkatBinData)) To hoBd
    If (Not(IsComObjectCreated(hoBd))) Begin
        Send CreateComObject of hoBd
    End
    Get ComLoadFile Of hoBd "qa_data/bmp/signature.bmp" To iSuccess
    // Gzip compress.
    Get Create (RefClass(cComChilkatGzip)) To hoGzip
    If (Not(IsComObjectCreated(hoGzip))) Begin
        Send CreateComObject of hoGzip
    End
    Get pvComObject of hoBd to vBd
    Get ComCompressBd Of hoGzip vBd To iSuccess
    // Add to the JSON in base64 format
    Get ComGetEncoded Of hoBd "base64" To sTemp1
    Get ComUpdateString Of hoJson "signature" sTemp1 To iSuccess

    Move "https://<site>.cardconnect.com:<port>/cardconnect/rest/sigcap" To sUrl

    Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
    If (Not(IsComObjectCreated(hoResp))) Begin
        Send CreateComObject of hoResp
    End
    Get ComEmit Of hoJson To sTemp1
    Get pvComObject of hoResp to vResp
    Get ComHttpStr Of hoHttp "PUT" sUrl sTemp1 "utf-8" "application/json" vResp To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_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.
    Get ComStatusCode Of hoResp To iTemp1
    Showln "response status code = " iTemp1

    Get Create (RefClass(cComChilkatJsonObject)) To hoJsonResp
    If (Not(IsComObjectCreated(hoJsonResp))) Begin
        Send CreateComObject of hoJsonResp
    End
    Get ComBodyStr Of hoResp To sTemp1
    Get ComLoad Of hoJsonResp sTemp1 To iSuccess
    Set ComEmitCompact Of hoJsonResp To False

    Showln "response JSON:"
    Get ComEmit Of hoJsonResp To sTemp1
    Showln sTemp1

    // A successful response looks like this:

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


End_Procedure