unicodeC / GP-API Collection / AUT_1.1 3DS2 Initiate
Back to Collection Items
#include <C_CkHttpW.h>
#include <C_CkJsonObjectW.h>
#include <C_CkHttpResponseW.h>
void ChilkatSample(void)
{
HCkHttpW http;
BOOL success;
HCkJsonObjectW json;
HCkHttpResponseW resp;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttpW_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.
// {
// "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/"
// }
json = CkJsonObjectW_Create();
CkJsonObjectW_UpdateString(json,L"three_ds.source",L"BROWSER");
CkJsonObjectW_UpdateString(json,L"three_ds.preference",L"NO_PREFERENCE");
CkJsonObjectW_UpdateString(json,L"account_name",L"{{acc_name}}");
CkJsonObjectW_UpdateString(json,L"channel",L"CNP");
CkJsonObjectW_UpdateString(json,L"amount",L"5");
CkJsonObjectW_UpdateString(json,L"currency",L"EUR");
CkJsonObjectW_UpdateString(json,L"country",L"US");
CkJsonObjectW_UpdateString(json,L"method_url_completion_status",L"YES");
CkJsonObjectW_UpdateString(json,L"payment_method.id",L"{{pmt_id}}");
CkJsonObjectW_UpdateString(json,L"order.time_created_reference",L"2019-04-26T10:19:32.552327Z");
CkJsonObjectW_UpdateString(json,L"order.amount",L"1001");
CkJsonObjectW_UpdateString(json,L"order.currency",L"EUR");
CkJsonObjectW_UpdateString(json,L"order.reference",L"3400dd37-101d-4940-be15-3c963b6109b3");
CkJsonObjectW_UpdateString(json,L"order.address_match_indicator",L"false");
CkJsonObjectW_UpdateString(json,L"order.shipping_address.line1",L"Apartment 852");
CkJsonObjectW_UpdateString(json,L"order.shipping_address.line2",L"Complex 741");
CkJsonObjectW_UpdateString(json,L"order.shipping_address.line3",L"House 963");
CkJsonObjectW_UpdateString(json,L"order.shipping_address.city",L"Chicago");
CkJsonObjectW_UpdateString(json,L"order.shipping_address.postal_code",L"50001");
CkJsonObjectW_UpdateString(json,L"order.shipping_address.state",L"IL");
CkJsonObjectW_UpdateString(json,L"order.shipping_address.country",L"840");
CkJsonObjectW_UpdateString(json,L"order.gift_card_count",L"01");
CkJsonObjectW_UpdateString(json,L"order.gift_card_currency",L"EUR");
CkJsonObjectW_UpdateString(json,L"order.gift_card_amount",L"25000");
CkJsonObjectW_UpdateString(json,L"order.delivery_email",L"james.mason@example.com");
CkJsonObjectW_UpdateString(json,L"order.delivery_timeframe",L"ELECTRONIC_DELIVERY");
CkJsonObjectW_UpdateString(json,L"order.shipping_method",L"ANOTHER_VERIFIED_ADDRESS");
CkJsonObjectW_UpdateString(json,L"order.shipping_name_matches_cardholder_name",L"true");
CkJsonObjectW_UpdateString(json,L"order.preorder_indicator",L"MERCHANDISE_AVAILABLE");
CkJsonObjectW_UpdateString(json,L"order.preorder_availability_date:",L"2019-04-18");
CkJsonObjectW_UpdateString(json,L"order.reorder_indicator",L"FIRST_TIME_ORDER");
CkJsonObjectW_UpdateString(json,L"order.transaction_type",L"GOODS_SERVICE_PURCHASE");
CkJsonObjectW_UpdateString(json,L"payer.reference",L"6dcb24f5-74a0-4da3-98da-4f0aa0e88db3");
CkJsonObjectW_UpdateString(json,L"payer.account_age",L"LESS_THAN_THIRTY_DAYS");
CkJsonObjectW_UpdateString(json,L"payer.account_creation_date",L"2019-01-10");
CkJsonObjectW_UpdateString(json,L"payer.account_change_date",L"2019-01-28");
CkJsonObjectW_UpdateString(json,L"payer.account_change_indicator",L"THIS_TRANSACTION");
CkJsonObjectW_UpdateString(json,L"payer.account_password_change_date",L"2019-01-15");
CkJsonObjectW_UpdateString(json,L"payer.account_password_change_indicator",L"LESS_THAN_THIRTY_DAYS");
CkJsonObjectW_UpdateString(json,L"payer.home_phone.country_code",L"44");
CkJsonObjectW_UpdateString(json,L"payer.home_phone.subscriber_number",L"123456789");
CkJsonObjectW_UpdateString(json,L"payer.work_phone.country_code",L"44");
CkJsonObjectW_UpdateString(json,L"payer.work_phone.subscriber_number",L"1801555888");
CkJsonObjectW_UpdateString(json,L"payer.payment_account_creation_date",L"2019-01-01");
CkJsonObjectW_UpdateString(json,L"payer.payment_account_age_indicator",L"LESS_THAN_THIRTY_DAYS");
CkJsonObjectW_UpdateString(json,L"payer.suspicious_account_activity",L"NO_SUSPICIOUS_ACTIVITY");
CkJsonObjectW_UpdateString(json,L"payer.purchases_last_6months_count",L"03");
CkJsonObjectW_UpdateString(json,L"payer.transactions_last_24hours_count",L"01");
CkJsonObjectW_UpdateString(json,L"payer.transaction_last_year_count",L"05");
CkJsonObjectW_UpdateString(json,L"payer.provision_attempt_last_24hours_count",L"01");
CkJsonObjectW_UpdateString(json,L"payer.shipping_address_time_created_reference",L"2019-01-28");
CkJsonObjectW_UpdateString(json,L"payer.shipping_address_creation_indicator",L"THIS_TRANSACTION");
CkJsonObjectW_UpdateString(json,L"payer_prior_three_ds_authentication_data.authentication_method",L"FRICTIONLESS_AUTHENTICATION");
CkJsonObjectW_UpdateString(json,L"payer_prior_three_ds_authentication_data.acs_transaction_reference",L"26c3f619-39a4-4040-bf1f-6fd433e6d615");
CkJsonObjectW_UpdateString(json,L"payer_prior_three_ds_authentication_data.authentication_timestamp",L"2020-07-28T10:26:49.712Z");
CkJsonObjectW_UpdateString(json,L"payer_prior_three_ds_authentication_data.authentication_data",L"secret123");
CkJsonObjectW_UpdateString(json,L"recurring_authorization_data.max_number_of_instalments",L"05");
CkJsonObjectW_UpdateString(json,L"recurring_authorization_data.frequency",L"25");
CkJsonObjectW_UpdateString(json,L"recurring_authorization_data.expiry_date",L"2019-08-25");
CkJsonObjectW_UpdateString(json,L"payer_login_data.authentication_data",L"secret123");
CkJsonObjectW_UpdateString(json,L"payer_login_data.authentication_timestamp",L"2020-07-28T10:26:49.712Z");
CkJsonObjectW_UpdateString(json,L"payer_login_data.authentication_type",L"MERCHANT_SYSTEM_AUTHENTICATION");
CkJsonObjectW_UpdateString(json,L"browser_data.accept_header",L"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
CkJsonObjectW_UpdateString(json,L"browser_data.color_depth",L"TWENTY_FOUR_BITS");
CkJsonObjectW_UpdateString(json,L"browser_data.ip",L"123.123.123.123");
CkJsonObjectW_UpdateString(json,L"browser_data.java_enabled",L"true");
CkJsonObjectW_UpdateString(json,L"browser_data.javascript_enabled",L"true");
CkJsonObjectW_UpdateString(json,L"browser_data.language",L"en-US");
CkJsonObjectW_UpdateString(json,L"browser_data.screen_height",L"1080");
CkJsonObjectW_UpdateString(json,L"browser_data.screen_width",L"1920");
CkJsonObjectW_UpdateString(json,L"browser_data.challenge_window_size",L"FULL_SCREEN");
CkJsonObjectW_UpdateString(json,L"browser_data.timezone",L"0");
CkJsonObjectW_UpdateString(json,L"browser_data.user_agent",L"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36");
CkJsonObjectW_UpdateString(json,L"merchant_contact_url",L"https://enp4qhvjseljg.x.pipedream.net/");
// Adds the "Authorization: Bearer <access_token>" header.
CkHttpW_putAuthToken(http,L"<access_token>");
CkHttpW_SetRequestHeader(http,L"X-GP-Version",L"{{version}}");
resp = CkHttpW_PostJson3(http,L"https://{{url}}/ucp/authentications/{{aut_id}}/initiate",L"application/json",json);
if (CkHttpW_getLastMethodSuccess(http) == FALSE) {
wprintf(L"%s\n",CkHttpW_lastErrorText(http));
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(json);
return;
}
wprintf(L"%d\n",CkHttpResponseW_getStatusCode(resp));
wprintf(L"%s\n",CkHttpResponseW_bodyStr(resp));
CkHttpResponseW_Dispose(resp);
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(json);
}
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 redirect_url = jsonData.three_ds.redirect_url; ",
"",
"//console.log(pareq);",
"pm.test(\"set html\",function(){",
" var template='<!DOCTYPE html> <html> <head> <title>Sample 3DSecure Page</title> </head> <body><form action='+redirect_url+' method=\"POST\"> <input type=\"hidden\" name=\"challenge_value\" 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": [
]
}