Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) CardConnect Signature CaptureDemonstrates 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
IncludeFile "CkBinData.pb" IncludeFile "CkHttp.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkGzip.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i CkHttp::setCkBasicAuth(http, 1) CkHttp::setCkLogin(http, "API_USERNAME") CkHttp::setCkPassword(http, "API_PASSWORD") ; Build and send the following JSON: ; { ; "merchid": "MERCHANT_ID", ; "retref": "112989260941", ; "signature": "BASE64_GZIPPED_BMP_DATA" ; } json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(json,"merchid","MERCHANT_ID") CkJsonObject::ckUpdateString(json,"retref","106631225001") ; Load the .bmp containing a 200px x 100px signature. bd.i = CkBinData::ckCreate() If bd.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkBinData::ckLoadFile(bd,"qa_data/bmp/signature.bmp") ; Gzip compress. gzip.i = CkGzip::ckCreate() If gzip.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkGzip::ckCompressBd(gzip,bd) ; Add to the JSON in base64 format CkJsonObject::ckUpdateString(json,"signature",CkBinData::ckGetEncoded(bd,"base64")) url.s = "https://<site>.cardconnect.com:<port>/cardconnect/rest/sigcap" responseStr.s = CkHttp::ckPutText(http,url,CkJsonObject::ckEmit(json),"utf-8","application/json",0,0) If CkHttp::ckLastMethodSuccess(http) = 0 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkBinData::ckDispose(bd) CkGzip::ckDispose(gzip) ProcedureReturn EndIf ; 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. Debug "response status code = " + Str(CkHttp::ckLastStatus(http)) jsonResp.i = CkJsonObject::ckCreate() If jsonResp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoad(jsonResp,responseStr) CkJsonObject::setCkEmitCompact(jsonResp, 0) Debug "response JSON:" Debug CkJsonObject::ckEmit(jsonResp) ; A successful response looks like this: ; { ; "resptext": "signature stored", ; "retref": "106631225001", ; "respcode": "02", ; "merchid": "MERCHANT_ID" ; } CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkBinData::ckDispose(bd) CkGzip::ckDispose(gzip) CkJsonObject::ckDispose(jsonResp) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.