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 AuthorizationDemonstrates how to send an Authorization request. Authorization is the initial step in accepting payment from a cardholder. This action "authorizes" or requests permission from the bank to transfer money from the cardholder to the merchant. See https://developer.cardconnect.com/cardconnect-api#authorization
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: ; Note: The CardConnect online documentation might use an expiry that is in the past, such as "1218". ; This causes the request to fail. Use a month/year that is in the future.. ; (Likewise, this example will have an invalid month/year after Dec 2021) ; { ; "merchid": "MERCHANT_ID", ; "accttype": "VISA", ; "orderid": "AB-11-9876", ; "account": "4111111111111111", ; "expiry": "1221", ; "amount": "0", ; "currency": "USD", ; "name": "TOM JONES", ; "address": "123 MAIN STREET", ; "city": "anytown", ; "region": "NY", ; "country": "US", ; "postal": "55555", ; "profile": "Y", ; "ecomind": "E", ; "cvv2": "123", ; "track": null, ; "capture": "Y" ; } ; 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,"merchid","MERCHANT_ID") CkJsonObject::ckUpdateString(json,"accttype","VISA") CkJsonObject::ckUpdateString(json,"orderid","AB-11-9876") CkJsonObject::ckUpdateString(json,"account","4111111111111111") CkJsonObject::ckUpdateString(json,"expiry","1221") CkJsonObject::ckUpdateString(json,"amount","20") CkJsonObject::ckUpdateString(json,"currency","USD") CkJsonObject::ckUpdateString(json,"name","TOM JONES") CkJsonObject::ckUpdateString(json,"address","123 MAIN STREET") CkJsonObject::ckUpdateString(json,"city","anytown") CkJsonObject::ckUpdateString(json,"region","NY") CkJsonObject::ckUpdateString(json,"country","US") CkJsonObject::ckUpdateString(json,"postal","55555") CkJsonObject::ckUpdateString(json,"profile","Y") CkJsonObject::ckUpdateString(json,"ecomind","E") CkJsonObject::ckUpdateString(json,"cvv2","123") CkJsonObject::ckUpdateNull(json,"track") CkJsonObject::ckUpdateString(json,"capture","Y") url.s = "https://<site>.cardconnect.com:<port>/cardconnect/rest/auth" 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) ; Sample error: ; { ; "respproc": "PPS", ; "amount": "0.00", ; "resptext": "Invalid amount", ; "cardproc": "FNOR", ; "acctid": "1", ; "retref": "112804260418", ; "respstat": "C", ; "respcode": "43", ; "account": "41XXXXXXXXXX1111", ; "defaultacct": "Y", ; "merchid": "MERCHANT_ID", ; "token": "9418594164541111" ; } ; A successful response looks like this: ; { ; "amount": "0.20", ; "resptext": "Approval", ; "acctid": "1", ; "commcard": " C ", ; "cvvresp": "M", ; "respcode": "00", ; "batchid": "1900942291", ; "avsresp": "Z", ; "entrymode": "ECommerce", ; "defaultacct": "Y", ; "merchid": "MERCHANT_ID", ; "token": "9418594164541111", ; "authcode": "PPS158", ; "respproc": "FNOR", ; "bintype": "", ; "profileid": "16618402968441604028", ; "retref": "112989260941", ; "respstat": "A", ; "account": "41XXXXXXXXXX1111" ; } ; 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") acctid.s = CkJsonObject::ckStringOf(jsonResp,"acctid") commcard.s = CkJsonObject::ckStringOf(jsonResp,"commcard") cvvresp.s = CkJsonObject::ckStringOf(jsonResp,"cvvresp") respcode.s = CkJsonObject::ckStringOf(jsonResp,"respcode") batchid.s = CkJsonObject::ckStringOf(jsonResp,"batchid") avsresp.s = CkJsonObject::ckStringOf(jsonResp,"avsresp") entrymode.s = CkJsonObject::ckStringOf(jsonResp,"entrymode") defaultacct.s = CkJsonObject::ckStringOf(jsonResp,"defaultacct") merchid.s = CkJsonObject::ckStringOf(jsonResp,"merchid") token.s = CkJsonObject::ckStringOf(jsonResp,"token") authcode.s = CkJsonObject::ckStringOf(jsonResp,"authcode") respproc.s = CkJsonObject::ckStringOf(jsonResp,"respproc") bintype.s = CkJsonObject::ckStringOf(jsonResp,"bintype") profileid.s = CkJsonObject::ckStringOf(jsonResp,"profileid") 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.