These docs are for v3.2.6. Click to read the latest docs for v4.3.0.

Enable / Disable 3DS

'3DS' shift liability of fraudulent transaction away from merchant.

👍

Download Sample Code

PHP Code

📘

Environment

Please refer Demo & Live Endpoint.

Set account credentials

<?php 
	//Merchant's account information
	$merchant_id = "JT01";		//Get MerchantID when opening account with 2C2P
	$secret_key = "7jYcp4FxFdf0";	//Get SecretKey from 2C2P PGW Dashboard

Set transaction information

//Transaction information
	$payment_description  = '2 days 1 night hotel room';
	$order_id  = time();
	$currency = "702";
	$amount  = '000000002500';

Enable / Disable 3DS

Set payment request information

🚧

'request_3ds' parameter must be included in hash compute value

//Payment Options
	$request_3ds = "N";	//Enable / Disable 3DS

Construct Backend request form

//Request information
	$version = "8.5";	
	$payment_url = "https://demo2.2c2p.com/2C2PFrontEnd/RedirectV3/payment";
	$result_url_1 = "http://localhost/devPortal/V3_UI_PHP_JT01_devPortal/result.php";

	//Construct signature string
	$params = $version . $merchant_id . $payment_description . $order_id . $invoice_no . 
	$currency . $amount . $customer_email . $pay_category_id . $promotion . $user_defined_1 . 
	$user_defined_2 . $user_defined_3 . $user_defined_4 . $user_defined_5 . $result_url_1 . 
	$result_url_2 . $enable_store_card . $stored_card_unique_id . $request_3ds . $recurring . 
	$order_prefix . $recurring_amount . $allow_accumulate . $max_accumulate_amount . 
	$recurring_interval . $recurring_count . $charge_next_date. $charge_on_date . $payment_option . 
	$ipp_interest_type . $payment_expiry . $default_lang . $statement_descriptor . $use_storedcard_only .
	$tokenize_without_authorization . $product . $ipp_period_filter . $sub_merchant_list . $qr_type .
	$custom_route_id . $airline_transaction . $airline_passenger_list . $address_list;
	
	$hash_value = hash_hmac('sha256',$params, $secret_key,false);	//Compute hash value

Construct payment request form

echo 'Payment information:';
	echo '<html> 
	<body>
	<form id="myform" method="post" action="'.$payment_url.'">
		<input type="hidden" name="version" value="'.$version.'"/>
		<input type="hidden" name="merchant_id" value="'.$merchant_id.'"/>
		<input type="hidden" name="currency" value="'.$currency.'"/>
		<input type="hidden" name="result_url_1" value="'.$result_url_1.'"/>
		<input type="hidden" name="enable_store_card" value="'.$enable_store_card.'"/>
		<input type="hidden" name="request_3ds" value="'.$request_3ds.'"/>
		<input type="hidden" name="payment_option" value="'.$payment_option.'"/>
		<input type="hidden" name="hash_value" value="'.$hash_value.'"/>
		PRODUCT INFO : <input type="text" name="payment_description" value="'.$payment_description.'"  readonly/><br/>
		ORDER NO : <input type="text" name="order_id" value="'.$order_id.'"  readonly/><br/>
		AMOUNT: <input type="text" name="amount" value="'.$amount.'" readonly/><br/>
		<input type="submit" name="submit" value="Confirm" />
	</form>

Submit payment request form

<script type="text/javascript">
		document.forms.myform.submit();
	</script>
	</body>
	</html>';	 
?>

Complete Code
Copy & Paste below code to 'demo.php' file, and put this file in your Web Server.

<?php //Merchant's account information
	$merchant_id = "JT01";		//Get MerchantID when opening account with 2C2P
	$secret_key = "7jYcp4FxFdf0";	//Get SecretKey from 2C2P PGW Dashboard

	//Transaction information
	$payment_description  = '2 days 1 night hotel room';
	$order_id  = time();
	$currency = "702";
	$amount  = '000000002500';

	//Payment Options
	$request_3ds = "N";	//Enable / Disable 3DS

	//Request information
	$version = "8.5";	
	$payment_url = "https://demo2.2c2p.com/2C2PFrontEnd/RedirectV3/payment";
	$result_url_1 = "http://localhost/devPortal/V3_UI_PHP_JT01_devPortal/result.php";

	//Construct signature string
	$params = $version . $merchant_id . $payment_description . $order_id . $invoice_no . 
	$currency . $amount . $customer_email . $pay_category_id . $promotion . $user_defined_1 . 
	$user_defined_2 . $user_defined_3 . $user_defined_4 . $user_defined_5 . $result_url_1 . 
	$result_url_2 . $enable_store_card . $stored_card_unique_id . $request_3ds . $recurring . 
	$order_prefix . $recurring_amount . $allow_accumulate . $max_accumulate_amount . 
	$recurring_interval . $recurring_count . $charge_next_date. $charge_on_date . $payment_option . 
	$ipp_interest_type . $payment_expiry . $default_lang . $statement_descriptor . $use_storedcard_only .
	$tokenize_without_authorization . $product . $ipp_period_filter . $sub_merchant_list . $qr_type .
	$custom_route_id . $airline_transaction . $airline_passenger_list . $address_list;
	
	$hash_value = hash_hmac('sha256',$params, $secret_key,false);	//Compute hash value

	echo 'Payment information:';
	echo '<html> 
	<body>
	<form id="myform" method="post" action="'.$payment_url.'">
		<input type="hidden" name="version" value="'.$version.'"/>
		<input type="hidden" name="merchant_id" value="'.$merchant_id.'"/>
		<input type="hidden" name="currency" value="'.$currency.'"/>
		<input type="hidden" name="result_url_1" value="'.$result_url_1.'"/>
		<input type="hidden" name="enable_store_card" value="'.$enable_store_card.'"/>
		<input type="hidden" name="request_3ds" value="'.$request_3ds.'"/>
		<input type="hidden" name="payment_option" value="'.$payment_option.'"/>
		<input type="hidden" name="hash_value" value="'.$hash_value.'"/>
		PRODUCT INFO : <input type="text" name="payment_description" value="'.$payment_description.'"  readonly/><br/>
		ORDER NO : <input type="text" name="order_id" value="'.$order_id.'"  readonly/><br/>
		AMOUNT: <input type="text" name="amount" value="'.$amount.'" readonly/><br/>
		<input type="submit" name="submit" value="Confirm" />
	</form>  

	<script type="text/javascript">
		document.forms.myform.submit();
	</script>
	</body>
	</html>';	 
?>

Next: Payment channel options