Sample code for 30+ languages & platforms
DataFlex

CardConnect Authorization

See more CardConnect Examples

Demonstrates 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

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    Handle hoJson
    String sUrl
    Variant vResp
    Handle hoResp
    Handle hoJsonResp
    String sAmount
    String sResptext
    String sAcctid
    String sCommcard
    String sCvvresp
    String sRespcode
    String sBatchid
    String sAvsresp
    String sEntrymode
    String sDefaultacct
    String sMerchid
    String sToken
    String sAuthcode
    String sRespproc
    String sBintype
    String sProfileid
    String sRetref
    String sRespstat
    String sAccount
    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:

    // 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
    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 "accttype" "VISA" To iSuccess
    Get ComUpdateString Of hoJson "orderid" "AB-11-9876" To iSuccess
    Get ComUpdateString Of hoJson "account" "4111111111111111" To iSuccess
    Get ComUpdateString Of hoJson "expiry" "1221" To iSuccess
    Get ComUpdateString Of hoJson "amount" "20" To iSuccess
    Get ComUpdateString Of hoJson "currency" "USD" To iSuccess
    Get ComUpdateString Of hoJson "name" "TOM JONES" To iSuccess
    Get ComUpdateString Of hoJson "address" "123 MAIN STREET" To iSuccess
    Get ComUpdateString Of hoJson "city" "anytown" To iSuccess
    Get ComUpdateString Of hoJson "region" "NY" To iSuccess
    Get ComUpdateString Of hoJson "country" "US" To iSuccess
    Get ComUpdateString Of hoJson "postal" "55555" To iSuccess
    Get ComUpdateString Of hoJson "profile" "Y" To iSuccess
    Get ComUpdateString Of hoJson "ecomind" "E" To iSuccess
    Get ComUpdateString Of hoJson "cvv2" "123" To iSuccess
    Get ComUpdateNull Of hoJson "track" To iSuccess
    Get ComUpdateString Of hoJson "capture" "Y" To iSuccess

    Move "https://<site>.cardconnect.com:<port>/cardconnect/rest/auth" 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

    // 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

    Get ComStringOf Of hoJsonResp "amount" To sAmount
    Get ComStringOf Of hoJsonResp "resptext" To sResptext
    Get ComStringOf Of hoJsonResp "acctid" To sAcctid
    Get ComStringOf Of hoJsonResp "commcard" To sCommcard
    Get ComStringOf Of hoJsonResp "cvvresp" To sCvvresp
    Get ComStringOf Of hoJsonResp "respcode" To sRespcode
    Get ComStringOf Of hoJsonResp "batchid" To sBatchid
    Get ComStringOf Of hoJsonResp "avsresp" To sAvsresp
    Get ComStringOf Of hoJsonResp "entrymode" To sEntrymode
    Get ComStringOf Of hoJsonResp "defaultacct" To sDefaultacct
    Get ComStringOf Of hoJsonResp "merchid" To sMerchid
    Get ComStringOf Of hoJsonResp "token" To sToken
    Get ComStringOf Of hoJsonResp "authcode" To sAuthcode
    Get ComStringOf Of hoJsonResp "respproc" To sRespproc
    Get ComStringOf Of hoJsonResp "bintype" To sBintype
    Get ComStringOf Of hoJsonResp "profileid" To sProfileid
    Get ComStringOf Of hoJsonResp "retref" To sRetref
    Get ComStringOf Of hoJsonResp "respstat" To sRespstat
    Get ComStringOf Of hoJsonResp "account" To sAccount


End_Procedure