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 Capture Level 3 DataDemonstrates how to send a CardConnect Capture request with Lavel 3 line item data. If available, Level 3 line item data can be sent with the capture request, particularly for any commercial or corporate payment cards. To qualify for Level 3 Interchange rates, Level 2 data must also be provided. ... See https://developer.cardconnect.com/cardconnect-api#capture-level-3-data
IncludeFile "CkJsonObject.pb" IncludeFile "CkHttp.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: ; The "retref" is the value returned in the JSON response for the Authorization request. ; { ; "retref": "2880000333", ; "shiptozip": "11111-1111", ; "shipfromzip": "99999-9999", ; "amount": "596.00", ; "items": [ ; { ; "discamnt": "0", ; "unitcost": "900", ; "uom": "CS", ; "lineno": "1", ; "description": "DESCRIPTION-1", ; "taxamnt": "117", ; "quantity": "1000", ; "upc": "UPC-1", ; "netamnt": "150", ; "material": "MATERIAL-1" ; }, ; { ; "discamnt": "0", ; "unitcost": "450", ; "uom": "CS", ; "lineno": "2", ; "description": "DESCRIPTION-2", ; "taxamnt": "117", ; "quantity": "2000", ; "upc": "UPC-1", ; "netamnt": "300", ; "material": "MATERIAL-2" ; } ; ], ; "taxamount": "40.00", ; "merchid": "123456789012", ; "account": "4111111111111111", ; "ponumber": "PO-0736332" ; } ; ; Use this online tool to generate the code from sample JSON: ; Generate Code to Create JSON json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(json,"retref","112989260941") CkJsonObject::ckUpdateString(json,"shiptozip","11111-1111") CkJsonObject::ckUpdateString(json,"shipfromzip","99999-9999") CkJsonObject::ckUpdateString(json,"amount","596.00") CkJsonObject::ckUpdateString(json,"items[0].discamnt","0") CkJsonObject::ckUpdateString(json,"items[0].unitcost","900") CkJsonObject::ckUpdateString(json,"items[0].uom","CS") CkJsonObject::ckUpdateString(json,"items[0].lineno","1") CkJsonObject::ckUpdateString(json,"items[0].description","DESCRIPTION-1") CkJsonObject::ckUpdateString(json,"items[0].taxamnt","117") CkJsonObject::ckUpdateString(json,"items[0].quantity","1000") CkJsonObject::ckUpdateString(json,"items[0].upc","UPC-1") CkJsonObject::ckUpdateString(json,"items[0].netamnt","150") CkJsonObject::ckUpdateString(json,"items[0].material","MATERIAL-1") CkJsonObject::ckUpdateString(json,"items[1].discamnt","0") CkJsonObject::ckUpdateString(json,"items[1].unitcost","450") CkJsonObject::ckUpdateString(json,"items[1].uom","CS") CkJsonObject::ckUpdateString(json,"items[1].lineno","2") CkJsonObject::ckUpdateString(json,"items[1].description","DESCRIPTION-2") CkJsonObject::ckUpdateString(json,"items[1].taxamnt","117") CkJsonObject::ckUpdateString(json,"items[1].quantity","2000") CkJsonObject::ckUpdateString(json,"items[1].upc","UPC-1") CkJsonObject::ckUpdateString(json,"items[1].netamnt","300") CkJsonObject::ckUpdateString(json,"items[1].material","MATERIAL-2") CkJsonObject::ckUpdateString(json,"taxamount","40.00") CkJsonObject::ckUpdateString(json,"merchid","MERCHANT_ID") CkJsonObject::ckUpdateString(json,"account","4111111111111111") CkJsonObject::ckUpdateString(json,"ponumber","PO-0736332") url.s = "https://<site>.cardconnect.com:<port>/cardconnect/rest/capture" 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) 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: ; { ; "amount": "596.00", ; "resptext": "Approval", ; "setlstat": "Queued for Capture", ; "commcard": " C ", ; "respcode": "00", ; "batchid": "1900942291", ; "merchid": "MERCHANT_ID", ; "token": "9418594164541111", ; "authcode": "PPS158", ; "respproc": "FNOR", ; "retref": "112989260941", ; "respstat": "A", ; "account": "9418594164541111" ; } ; Use this online tool to generate parsing code from sample JSON: ; Generate Parsing Code from JSON amount.s = CkJsonObject::ckStringOf(jsonResp,"amount") resptext.s = CkJsonObject::ckStringOf(jsonResp,"resptext") setlstat.s = CkJsonObject::ckStringOf(jsonResp,"setlstat") commcard.s = CkJsonObject::ckStringOf(jsonResp,"commcard") respcode.s = CkJsonObject::ckStringOf(jsonResp,"respcode") batchid.s = CkJsonObject::ckStringOf(jsonResp,"batchid") merchid.s = CkJsonObject::ckStringOf(jsonResp,"merchid") token.s = CkJsonObject::ckStringOf(jsonResp,"token") authcode.s = CkJsonObject::ckStringOf(jsonResp,"authcode") respproc.s = CkJsonObject::ckStringOf(jsonResp,"respproc") retref.s = CkJsonObject::ckStringOf(jsonResp,"retref") respstat.s = CkJsonObject::ckStringOf(jsonResp,"respstat") account.s = CkJsonObject::ckStringOf(jsonResp,"account") CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkJsonObject::ckDispose(jsonResp) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.