Chilkat Online Tools

C / GP-API Collection / TKA_2.6 Verification with Tokenization

Back to Collection Items

#include <C_CkHttp.h>
#include <C_CkJsonObject.h>
#include <C_CkHttpResponse.h>

void ChilkatSample(void)
    {
    HCkHttp http;
    BOOL success;
    HCkJsonObject json;
    HCkHttpResponse resp;

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

    http = CkHttp_Create();

    // Use this online tool to generate code from sample JSON: Generate Code to Create JSON

    // The following JSON is sent in the request body.

    // {
    //   "account_name": "{{acc_name}}",
    //   "channel": "CNP",
    //   "currency": "USD",
    //   "reference": "My Own Reference",
    //   "country": "US",
    //   "payment_method": {
    //     "first_name": "Jane",
    //     "last_name": "Doe",
    //     "entry_mode": "ECOM",
    //     "id": "PMT_f275ef91-c2cb-49b1-92ce-595b25067cfa"
    //   }
    // }

    json = CkJsonObject_Create();
    CkJsonObject_UpdateString(json,"account_name","{{acc_name}}");
    CkJsonObject_UpdateString(json,"channel","CNP");
    CkJsonObject_UpdateString(json,"currency","USD");
    CkJsonObject_UpdateString(json,"reference","My Own Reference");
    CkJsonObject_UpdateString(json,"country","US");
    CkJsonObject_UpdateString(json,"payment_method.first_name","Jane");
    CkJsonObject_UpdateString(json,"payment_method.last_name","Doe");
    CkJsonObject_UpdateString(json,"payment_method.entry_mode","ECOM");
    CkJsonObject_UpdateString(json,"payment_method.id","PMT_f275ef91-c2cb-49b1-92ce-595b25067cfa");

    CkHttp_SetRequestHeader(http,"Content-Type","application/json");
    CkHttp_SetRequestHeader(http,"X-GP-Idempotency","12345");
    CkHttp_SetRequestHeader(http,"X-GP-Version","{{version}}");
    // Adds the "Authorization: Bearer {{token}}" header.
    CkHttp_putAuthToken(http,"{{token}}");
    CkHttp_SetRequestHeader(http,"Accept","application/json");

    resp = CkHttp_PostJson3(http,"https://{{url}}/ucp/verifications","application/json",json);
    if (CkHttp_getLastMethodSuccess(http) == FALSE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        CkHttp_Dispose(http);
        CkJsonObject_Dispose(json);
        return;
    }

    printf("%d\n",CkHttpResponse_getStatusCode(resp));
    printf("%s\n",CkHttpResponse_bodyStr(resp));
    CkHttpResponse_Dispose(resp);


    CkHttp_Dispose(http);
    CkJsonObject_Dispose(json);

    }

Curl Command

curl -X POST
	-H "Content-Type: application/json"
	-H "Authorization: Bearer {{token}}"
	-H "Accept: application/json"
	-H "X-GP-Version: {{version}}"
	-H "X-GP-Idempotency: 12345"
	-d '{
    "account_name": "{{acc_name}}",
    "channel": "CNP",
    "currency": "USD",
    "reference": "My Own Reference",
    "country": "US",
    "payment_method": {
        "first_name": "Jane",
        "last_name": "Doe",
        "entry_mode": "ECOM",
        "id":"PMT_f275ef91-c2cb-49b1-92ce-595b25067cfa"
    }
}'
https://{{url}}/ucp/verifications

Postman Collection Item JSON

{
  "name": "TKA_2.6 Verification with Tokenization",
  "event": [
    {
      "listen": "test",
      "script": {
        "exec": [
          "pm.environment.unset(\"trn_id\");\r",
          "\r",
          "var jsonData = JSON.parse(responseBody);\r",
          "postman.setEnvironmentVariable(\"trn_id\", jsonData.id);\r",
          "postman.setEnvironmentVariable(\"reference\", jsonData.reference);\r",
          "tests[\"Transaction ID \" + pm.environment.get(\"trn_id\")] = true;\r",
          "\r",
          "tests[\"Response time is acceptable\"] = _.inRange(responseTime, 100, 1500); \r",
          "\r",
          "\r",
          "pm.test(\"Successful POST request\", function () {\r",
          "    pm.expect(pm.response.code).to.be.oneOf([200,201,202]);\r",
          "});\r",
          "\r",
          "pm.test(\"Status code name has string\", function () {\r",
          "    pm.response.to.have.status(\"OK\");\r",
          "});"
        ],
        "type": "text/javascript"
      }
    },
    {
      "listen": "prerequest",
      "script": {
        "exec": [
          "var str = String(\"00000000\"+ Math.floor(Math.random()*100000000) + 1).slice(-8);",
          "",
          "pm.environment.set(\"reference\",str);"
        ],
        "type": "text/javascript"
      }
    }
  ],
  "request": {
    "method": "POST",
    "header": [
      {
        "key": "Content-Type",
        "value": "application/json"
      },
      {
        "key": "Authorization",
        "value": "Bearer {{token}}"
      },
      {
        "key": "Accept",
        "value": "application/json"
      },
      {
        "key": "X-GP-Version",
        "type": "text",
        "value": "{{version}}"
      },
      {
        "key": "X-GP-Idempotency",
        "value": "12345",
        "type": "text"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n    \"account_name\": \"{{acc_name}}\",\n    \"channel\": \"CNP\",\n    \"currency\": \"USD\",\n    \"reference\": \"My Own Reference\",\n    \"country\": \"US\",\n    \"payment_method\": {\n        \"first_name\": \"Jane\",\n        \"last_name\": \"Doe\",\n        \"entry_mode\": \"ECOM\",\n        \"id\":\"PMT_f275ef91-c2cb-49b1-92ce-595b25067cfa\"\n    }\n}"
    },
    "url": {
      "raw": "https://{{url}}/ucp/verifications",
      "protocol": "https",
      "host": [
        "{{url}}"
      ],
      "path": [
        "ucp",
        "verifications"
      ]
    },
    "description": "This request verifys a card. As you can see in the body of the request, Jane Doe's card details to be verified are present. On success, the status of the transaction in the response will be \"verified\".\r\n\r\nFor more details on verifying a card, visit: https://developer.globalpay.com/api/verifications#/Verify/post_verifications"
  },
  "response": [
  ]
}