Chilkat Online Tools

Android / GP-API Collection / AUT_1.1 3DS2 Initiate

Back to Collection Items

// Important: Don't forget to include the call to System.loadLibrary
// as shown at the bottom of this code sample.
package com.test;

import android.app.Activity;
import com.chilkatsoft.*;

import android.widget.TextView;
import android.os.Bundle;

public class SimpleActivity extends Activity {

  private static final String TAG = "Chilkat";

  // Called when the activity is first created.
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

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

    CkHttp http = new CkHttp();
    boolean success;

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

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

    // {
    //   "three_ds": {
    //     "source": "BROWSER",
    //     "preference": "NO_PREFERENCE"
    //   },
    //   "account_name": "{{acc_name}}",
    //   "channel": "CNP",
    //   "amount": "5",
    //   "currency": "EUR",
    //   "country": "US",
    //   "method_url_completion_status": "YES",
    //   "payment_method": {
    //     "id": "{{pmt_id}}"
    //   },
    //   "order": {
    //     "time_created_reference": "2019-04-26T10:19:32.552327Z",
    //     "amount": "1001",
    //     "currency": "EUR",
    //     "reference": "3400dd37-101d-4940-be15-3c963b6109b3",
    //     "address_match_indicator": "false",
    //     "shipping_address": {
    //       "line1": "Apartment 852",
    //       "line2": "Complex 741",
    //       "line3": "House 963",
    //       "city": "Chicago",
    //       "postal_code": "50001",
    //       "state": "IL",
    //       "country": "840"
    //     },
    //     "gift_card_count": "01",
    //     "gift_card_currency": "EUR",
    //     "gift_card_amount": "25000",
    //     "delivery_email": "james.mason@example.com",
    //     "delivery_timeframe": "ELECTRONIC_DELIVERY",
    //     "shipping_method": "ANOTHER_VERIFIED_ADDRESS",
    //     "shipping_name_matches_cardholder_name": "true",
    //     "preorder_indicator": "MERCHANDISE_AVAILABLE",
    //     "preorder_availability_date:": "2019-04-18",
    //     "reorder_indicator": "FIRST_TIME_ORDER",
    //     "transaction_type": "GOODS_SERVICE_PURCHASE"
    //   },
    //   "payer": {
    //     "reference": "6dcb24f5-74a0-4da3-98da-4f0aa0e88db3",
    //     "account_age": "LESS_THAN_THIRTY_DAYS",
    //     "account_creation_date": "2019-01-10",
    //     "account_change_date": "2019-01-28",
    //     "account_change_indicator": "THIS_TRANSACTION",
    //     "account_password_change_date": "2019-01-15",
    //     "account_password_change_indicator": "LESS_THAN_THIRTY_DAYS",
    //     "home_phone": {
    //       "country_code": "44",
    //       "subscriber_number": "123456789"
    //     },
    //     "work_phone": {
    //       "country_code": "44",
    //       "subscriber_number": "1801555888"
    //     },
    //     "payment_account_creation_date": "2019-01-01",
    //     "payment_account_age_indicator": "LESS_THAN_THIRTY_DAYS",
    //     "suspicious_account_activity": "NO_SUSPICIOUS_ACTIVITY",
    //     "purchases_last_6months_count": "03",
    //     "transactions_last_24hours_count": "01",
    //     "transaction_last_year_count": "05",
    //     "provision_attempt_last_24hours_count": "01",
    //     "shipping_address_time_created_reference": "2019-01-28",
    //     "shipping_address_creation_indicator": "THIS_TRANSACTION"
    //   },
    //   "payer_prior_three_ds_authentication_data": {
    //     "authentication_method": "FRICTIONLESS_AUTHENTICATION",
    //     "acs_transaction_reference": "26c3f619-39a4-4040-bf1f-6fd433e6d615",
    //     "authentication_timestamp": "2020-07-28T10:26:49.712Z",
    //     "authentication_data": "secret123"
    //   },
    //   "recurring_authorization_data": {
    //     "max_number_of_instalments": "05",
    //     "frequency": "25",
    //     "expiry_date": "2019-08-25"
    //   },
    //   "payer_login_data": {
    //     "authentication_data": "secret123",
    //     "authentication_timestamp": "2020-07-28T10:26:49.712Z",
    //     "authentication_type": "MERCHANT_SYSTEM_AUTHENTICATION"
    //   },
    //   "browser_data": {
    //     "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    //     "color_depth": "TWENTY_FOUR_BITS",
    //     "ip": "123.123.123.123",
    //     "java_enabled": "true",
    //     "javascript_enabled": "true",
    //     "language": "en-US",
    //     "screen_height": "1080",
    //     "screen_width": "1920",
    //     "challenge_window_size": "FULL_SCREEN",
    //     "timezone": "0",
    //     "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
    //   },
    //   "merchant_contact_url": "https://enp4qhvjseljg.x.pipedream.net/"
    // }

    CkJsonObject json = new CkJsonObject();
    json.UpdateString("three_ds.source","BROWSER");
    json.UpdateString("three_ds.preference","NO_PREFERENCE");
    json.UpdateString("account_name","{{acc_name}}");
    json.UpdateString("channel","CNP");
    json.UpdateString("amount","5");
    json.UpdateString("currency","EUR");
    json.UpdateString("country","US");
    json.UpdateString("method_url_completion_status","YES");
    json.UpdateString("payment_method.id","{{pmt_id}}");
    json.UpdateString("order.time_created_reference","2019-04-26T10:19:32.552327Z");
    json.UpdateString("order.amount","1001");
    json.UpdateString("order.currency","EUR");
    json.UpdateString("order.reference","3400dd37-101d-4940-be15-3c963b6109b3");
    json.UpdateString("order.address_match_indicator","false");
    json.UpdateString("order.shipping_address.line1","Apartment 852");
    json.UpdateString("order.shipping_address.line2","Complex 741");
    json.UpdateString("order.shipping_address.line3","House 963");
    json.UpdateString("order.shipping_address.city","Chicago");
    json.UpdateString("order.shipping_address.postal_code","50001");
    json.UpdateString("order.shipping_address.state","IL");
    json.UpdateString("order.shipping_address.country","840");
    json.UpdateString("order.gift_card_count","01");
    json.UpdateString("order.gift_card_currency","EUR");
    json.UpdateString("order.gift_card_amount","25000");
    json.UpdateString("order.delivery_email","james.mason@example.com");
    json.UpdateString("order.delivery_timeframe","ELECTRONIC_DELIVERY");
    json.UpdateString("order.shipping_method","ANOTHER_VERIFIED_ADDRESS");
    json.UpdateString("order.shipping_name_matches_cardholder_name","true");
    json.UpdateString("order.preorder_indicator","MERCHANDISE_AVAILABLE");
    json.UpdateString("order.preorder_availability_date:","2019-04-18");
    json.UpdateString("order.reorder_indicator","FIRST_TIME_ORDER");
    json.UpdateString("order.transaction_type","GOODS_SERVICE_PURCHASE");
    json.UpdateString("payer.reference","6dcb24f5-74a0-4da3-98da-4f0aa0e88db3");
    json.UpdateString("payer.account_age","LESS_THAN_THIRTY_DAYS");
    json.UpdateString("payer.account_creation_date","2019-01-10");
    json.UpdateString("payer.account_change_date","2019-01-28");
    json.UpdateString("payer.account_change_indicator","THIS_TRANSACTION");
    json.UpdateString("payer.account_password_change_date","2019-01-15");
    json.UpdateString("payer.account_password_change_indicator","LESS_THAN_THIRTY_DAYS");
    json.UpdateString("payer.home_phone.country_code","44");
    json.UpdateString("payer.home_phone.subscriber_number","123456789");
    json.UpdateString("payer.work_phone.country_code","44");
    json.UpdateString("payer.work_phone.subscriber_number","1801555888");
    json.UpdateString("payer.payment_account_creation_date","2019-01-01");
    json.UpdateString("payer.payment_account_age_indicator","LESS_THAN_THIRTY_DAYS");
    json.UpdateString("payer.suspicious_account_activity","NO_SUSPICIOUS_ACTIVITY");
    json.UpdateString("payer.purchases_last_6months_count","03");
    json.UpdateString("payer.transactions_last_24hours_count","01");
    json.UpdateString("payer.transaction_last_year_count","05");
    json.UpdateString("payer.provision_attempt_last_24hours_count","01");
    json.UpdateString("payer.shipping_address_time_created_reference","2019-01-28");
    json.UpdateString("payer.shipping_address_creation_indicator","THIS_TRANSACTION");
    json.UpdateString("payer_prior_three_ds_authentication_data.authentication_method","FRICTIONLESS_AUTHENTICATION");
    json.UpdateString("payer_prior_three_ds_authentication_data.acs_transaction_reference","26c3f619-39a4-4040-bf1f-6fd433e6d615");
    json.UpdateString("payer_prior_three_ds_authentication_data.authentication_timestamp","2020-07-28T10:26:49.712Z");
    json.UpdateString("payer_prior_three_ds_authentication_data.authentication_data","secret123");
    json.UpdateString("recurring_authorization_data.max_number_of_instalments","05");
    json.UpdateString("recurring_authorization_data.frequency","25");
    json.UpdateString("recurring_authorization_data.expiry_date","2019-08-25");
    json.UpdateString("payer_login_data.authentication_data","secret123");
    json.UpdateString("payer_login_data.authentication_timestamp","2020-07-28T10:26:49.712Z");
    json.UpdateString("payer_login_data.authentication_type","MERCHANT_SYSTEM_AUTHENTICATION");
    json.UpdateString("browser_data.accept_header","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
    json.UpdateString("browser_data.color_depth","TWENTY_FOUR_BITS");
    json.UpdateString("browser_data.ip","123.123.123.123");
    json.UpdateString("browser_data.java_enabled","true");
    json.UpdateString("browser_data.javascript_enabled","true");
    json.UpdateString("browser_data.language","en-US");
    json.UpdateString("browser_data.screen_height","1080");
    json.UpdateString("browser_data.screen_width","1920");
    json.UpdateString("browser_data.challenge_window_size","FULL_SCREEN");
    json.UpdateString("browser_data.timezone","0");
    json.UpdateString("browser_data.user_agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36");
    json.UpdateString("merchant_contact_url","https://enp4qhvjseljg.x.pipedream.net/");

    // Adds the "Authorization: Bearer <access_token>" header.
    http.put_AuthToken("<access_token>");
    http.SetRequestHeader("X-GP-Version","{{version}}");

    CkHttpResponse resp = http.PostJson3("https://{{url}}/ucp/authentications/{{aut_id}}/initiate","application/json",json);
    if (http.get_LastMethodSuccess() == false) {
        Log.i(TAG, http.lastErrorText());
        return;
        }

    Log.i(TAG, String.valueOf(resp.get_StatusCode()));
    Log.i(TAG, resp.bodyStr());


  }

  static {
      System.loadLibrary("chilkat");

      // Note: If the incorrect library name is passed to System.loadLibrary,
      // then you will see the following error message at application startup:
      //"The application <your-application-name> has stopped unexpectedly. Please try again."
  }
}

Curl Command

curl -X POST
	-H "Authorization: Bearer <access_token>"
	-H "X-GP-Version: {{version}}"
	-d '{
    "three_ds": {
        "source": "BROWSER",
        "preference": "NO_PREFERENCE"
    },
    "account_name": "{{acc_name}}",
    "channel": "CNP",
    "amount": "5",
    "currency": "EUR",
    "country": "US",
    "method_url_completion_status": "YES",
    "payment_method": {
        "id": "{{pmt_id}}"
    },
    "order": {
        "time_created_reference": "2019-04-26T10:19:32.552327Z",
        "amount": "1001",
        "currency": "EUR",
        "reference": "3400dd37-101d-4940-be15-3c963b6109b3",
        "address_match_indicator": "false",
        "shipping_address": {
            "line1": "Apartment 852",
            "line2": "Complex 741",
            "line3": "House 963",
            "city": "Chicago",
            "postal_code": "50001",
            "state": "IL",
            "country": "840"
        },
        "gift_card_count": "01",
        "gift_card_currency": "EUR",
        "gift_card_amount": "25000",
        "delivery_email": "james.mason@example.com",
        "delivery_timeframe": "ELECTRONIC_DELIVERY",
        "shipping_method": "ANOTHER_VERIFIED_ADDRESS",
        "shipping_name_matches_cardholder_name": "true",
        "preorder_indicator": "MERCHANDISE_AVAILABLE",
        "preorder_availability_date:": "2019-04-18",
        "reorder_indicator": "FIRST_TIME_ORDER",
        "transaction_type": "GOODS_SERVICE_PURCHASE"
    },
    "payer": {
        "reference": "6dcb24f5-74a0-4da3-98da-4f0aa0e88db3",
        "account_age": "LESS_THAN_THIRTY_DAYS",
        "account_creation_date": "2019-01-10",
        "account_change_date": "2019-01-28",
        "account_change_indicator": "THIS_TRANSACTION",
        "account_password_change_date": "2019-01-15",
        "account_password_change_indicator": "LESS_THAN_THIRTY_DAYS",
        "home_phone": {
            "country_code": "44",
            "subscriber_number": "123456789"
        },
        "work_phone": {
            "country_code": "44",
            "subscriber_number": "1801555888"
        },
        "payment_account_creation_date": "2019-01-01",
        "payment_account_age_indicator": "LESS_THAN_THIRTY_DAYS",
        "suspicious_account_activity": "NO_SUSPICIOUS_ACTIVITY",
        "purchases_last_6months_count": "03",
        "transactions_last_24hours_count": "01",
        "transaction_last_year_count": "05",
        "provision_attempt_last_24hours_count": "01",
        "shipping_address_time_created_reference": "2019-01-28",
        "shipping_address_creation_indicator": "THIS_TRANSACTION"
    },
    "payer_prior_three_ds_authentication_data": {
        "authentication_method": "FRICTIONLESS_AUTHENTICATION",
        "acs_transaction_reference": "26c3f619-39a4-4040-bf1f-6fd433e6d615",
        "authentication_timestamp": "2020-07-28T10:26:49.712Z",
        "authentication_data": "secret123"
    },
    "recurring_authorization_data": {
        "max_number_of_instalments": "05",
        "frequency": "25",
        "expiry_date": "2019-08-25"
    },
    "payer_login_data": {
        "authentication_data": "secret123",
        "authentication_timestamp": "2020-07-28T10:26:49.712Z",
        "authentication_type": "MERCHANT_SYSTEM_AUTHENTICATION"
    },
    "browser_data": {
        "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "color_depth": "TWENTY_FOUR_BITS",
        "ip": "123.123.123.123",
        "java_enabled": "true",
        "javascript_enabled": "true",
        "language": "en-US",
        "screen_height": "1080",
        "screen_width": "1920",
        "challenge_window_size": "FULL_SCREEN",
        "timezone": "0",
        "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
    },
    "merchant_contact_url": "https://enp4qhvjseljg.x.pipedream.net/"
}'
https://{{url}}/ucp/authentications/{{aut_id}}/initiate

Postman Collection Item JSON

{
  "name": "AUT_1.1 3DS2 Initiate",
  "event": [
    {
      "listen": "test",
      "script": {
        "exec": [
          "//Json Parse",
          "",
          "var jsonData = JSON.parse(responseBody);",
          "var creq = jsonData.three_ds.challenge_value; ",
          "var acs_challenge_request_url = jsonData.three_ds.acs_challenge_request_url; ",
          "",
          "//console.log(pareq);",
          "pm.test(\"set  html\",function(){",
          "    var template='<!DOCTYPE html> <html> <head> <title>Sample 3DSecure Page</title> </head> <body><form action='+acs_challenge_request_url+' method=\"POST\">  <input type=\"hidden\" name=\"creq\" value= '+creq+' /> <input type=\"submit\" value=\"Submit\"> </form> </body> </html>'     // save your html in the template and then     ",
          "    pm.visualizer.set(template);     // set that template to pm.visualizer",
          "})",
          ""
        ],
        "type": "text/javascript"
      }
    }
  ],
  "request": {
    "auth": {
      "type": "oauth2",
      "oauth2": [
        {
          "key": "accessToken",
          "value": "{{token}}",
          "type": "string"
        },
        {
          "key": "addTokenTo",
          "value": "header",
          "type": "string"
        }
      ]
    },
    "method": "POST",
    "header": [
      {
        "key": "X-GP-Version",
        "type": "text",
        "value": "{{version}}"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n    \"three_ds\": {\n        \"source\": \"BROWSER\",\n        \"preference\": \"NO_PREFERENCE\"\n    },\n    \"account_name\": \"{{acc_name}}\",\n    \"channel\": \"CNP\",\n    \"amount\": \"5\",\n    \"currency\": \"EUR\",\n    \"country\": \"US\",\n    \"method_url_completion_status\": \"YES\",\n    \"payment_method\": {\n        \"id\": \"{{pmt_id}}\"\n    },\n    \"order\": {\n        \"time_created_reference\": \"2019-04-26T10:19:32.552327Z\",\n        \"amount\": \"1001\",\n        \"currency\": \"EUR\",\n        \"reference\": \"3400dd37-101d-4940-be15-3c963b6109b3\",\n        \"address_match_indicator\": \"false\",\n        \"shipping_address\": {\n            \"line1\": \"Apartment 852\",\n            \"line2\": \"Complex 741\",\n            \"line3\": \"House 963\",\n            \"city\": \"Chicago\",\n            \"postal_code\": \"50001\",\n            \"state\": \"IL\",\n            \"country\": \"840\"\n        },\n        \"gift_card_count\": \"01\",\n        \"gift_card_currency\": \"EUR\",\n        \"gift_card_amount\": \"25000\",\n        \"delivery_email\": \"james.mason@example.com\",\n        \"delivery_timeframe\": \"ELECTRONIC_DELIVERY\",\n        \"shipping_method\": \"ANOTHER_VERIFIED_ADDRESS\",\n        \"shipping_name_matches_cardholder_name\": \"true\",\n        \"preorder_indicator\": \"MERCHANDISE_AVAILABLE\",\n        \"preorder_availability_date:\": \"2019-04-18\",\n        \"reorder_indicator\": \"FIRST_TIME_ORDER\",\n        \"transaction_type\": \"GOODS_SERVICE_PURCHASE\"\n    },\n    \"payer\": {\n        \"reference\": \"6dcb24f5-74a0-4da3-98da-4f0aa0e88db3\",\n        \"account_age\": \"LESS_THAN_THIRTY_DAYS\",\n        \"account_creation_date\": \"2019-01-10\",\n        \"account_change_date\": \"2019-01-28\",\n        \"account_change_indicator\": \"THIS_TRANSACTION\",\n        \"account_password_change_date\": \"2019-01-15\",\n        \"account_password_change_indicator\": \"LESS_THAN_THIRTY_DAYS\",\n        \"home_phone\": {\n            \"country_code\": \"44\",\n            \"subscriber_number\": \"123456789\"\n        },\n        \"work_phone\": {\n            \"country_code\": \"44\",\n            \"subscriber_number\": \"1801555888\"\n        },\n        \"payment_account_creation_date\": \"2019-01-01\",\n        \"payment_account_age_indicator\": \"LESS_THAN_THIRTY_DAYS\",\n        \"suspicious_account_activity\": \"NO_SUSPICIOUS_ACTIVITY\",\n        \"purchases_last_6months_count\": \"03\",\n        \"transactions_last_24hours_count\": \"01\",\n        \"transaction_last_year_count\": \"05\",\n        \"provision_attempt_last_24hours_count\": \"01\",\n        \"shipping_address_time_created_reference\": \"2019-01-28\",\n        \"shipping_address_creation_indicator\": \"THIS_TRANSACTION\"\n    },\n    \"payer_prior_three_ds_authentication_data\": {\n        \"authentication_method\": \"FRICTIONLESS_AUTHENTICATION\",\n        \"acs_transaction_reference\": \"26c3f619-39a4-4040-bf1f-6fd433e6d615\",\n        \"authentication_timestamp\": \"2020-07-28T10:26:49.712Z\",\n        \"authentication_data\": \"secret123\"\n    },\n    \"recurring_authorization_data\": {\n        \"max_number_of_instalments\": \"05\",\n        \"frequency\": \"25\",\n        \"expiry_date\": \"2019-08-25\"\n    },\n    \"payer_login_data\": {\n        \"authentication_data\": \"secret123\",\n        \"authentication_timestamp\": \"2020-07-28T10:26:49.712Z\",\n        \"authentication_type\": \"MERCHANT_SYSTEM_AUTHENTICATION\"\n    },\n    \"browser_data\": {\n        \"accept_header\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\",\n        \"color_depth\": \"TWENTY_FOUR_BITS\",\n        \"ip\": \"123.123.123.123\",\n        \"java_enabled\": \"true\",\n        \"javascript_enabled\": \"true\",\n        \"language\": \"en-US\",\n        \"screen_height\": \"1080\",\n        \"screen_width\": \"1920\",\n        \"challenge_window_size\": \"FULL_SCREEN\",\n        \"timezone\": \"0\",\n        \"user_agent\": \"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36\"\n    },\n    \"merchant_contact_url\": \"https://enp4qhvjseljg.x.pipedream.net/\"\n}",
      "options": {
        "raw": {
          "language": "json"
        }
      }
    },
    "url": {
      "raw": "https://{{url}}/ucp/authentications/{{aut_id}}/initiate",
      "protocol": "https",
      "host": [
        "{{url}}"
      ],
      "path": [
        "ucp",
        "authentications",
        "{{aut_id}}",
        "initiate"
      ]
    },
    "description": "This request follows the 'Check Version' request in the 3DS2 flow. The merchant must submit data including the billing and shipping details of the payer, at least one phone number, the device data, transaction details, outcome from the ACS Method URL if it took place and a link to the merchant's About or Contact page.\r\n\r\nFor more information on the 3DS2 Initate step, please visit: https://developer.globalpay.com/api/3d-secure-two and https://developer.globalpay.com/api/authentications#/Initiate/initiate3DS"
  },
  "response": [
  ]
}