Authorize.Net Integrating IN PHP

Authorize.Net is my favorite payment mode for using in web development. It is simple, easy and secure payment connection.

If you are using PayPal Payments Pro, then you will need to provide your  company with the following details.
• API Login ID
• Transaction Key
SIM Implementation

// the parameters for the payment can be configured here
// the API Login ID and Transaction Key must be replaced with valid values
$loginID  = "API_LOGIN_ID";
$transactionKey = "TRANSACTION_KEY";
$amount   = "19.99";
$description  = "Sample Transaction";
$label    = "Submit Payment"; // The is the label on the 'submit' button
$testMode  = "false";
// By default, this sample code is designed to post to our test server for
// developer accounts: https://test.authorize.net/gateway/transact.dll
// for real accounts (even in test mode), please make sure that you are
// posting to: https://secure.authorize.net/gateway/transact.dll
$url   = "https://test.authorize.net/gateway/transact.dll";

// If an amount or description were posted to this page, the defaults are overidden
if (array_key_exists("amount",$_REQUEST))
 { $amount = $_REQUEST["amount"]; }
if (array_key_exists("amount",$_REQUEST))
 { $description = $_REQUEST["description"]; }

// an invoice is generated using the date and time
$invoice = date(YmdHis);
// a sequence number is randomly generated
$sequence = rand(1, 1000);
// a timestamp is generated
$timeStamp = time();

// The following lines generate the SIM fingerprint.  PHP versions 5.1.2 and
// newer have the necessary hmac function built in.  For older versions, it
// will try to use the mhash library.
if( phpversion() >= '5.1.2' )
 { $fingerprint = hash_hmac("md5", $loginID . "^" . $sequence . "^" . $timeStamp . "^" . $amount . "^", $transactionKey); }
else 
 { $fingerprint = bin2hex(mhash(MHASH_MD5, $loginID . "^" . $sequence . "^" . $timeStamp . "^" . $amount . "^", $transactionKey)); }
?>


Amount:  

Description:  




AIM Implementation

"API_LOGIN_ID",
 "x_tran_key"  => "TRANSACTION_KEY",

 "x_version"   => "3.1",
 "x_delim_data"  => "TRUE",
 "x_delim_char"  => "|",
 "x_relay_response" => "FALSE",

 "x_type"   => "AUTH_CAPTURE",
 "x_method"   => "CC",
 "x_card_num"  => "4111111111111111",
 "x_exp_date"  => "0115",

 "x_amount"   => "19.99",
 "x_description"  => "Sample Transaction",

 "x_first_name"  => "John",
 "x_last_name"  => "Doe",
 "x_address"   => "1234 Street",
 "x_state"   => "WA",
 "x_zip"    => "98004"
              
 // Additional fields can be added here as outlined in the AIM integration
 // guide at: http://developer.authorize.net


);

// This section takes the input fields and converts them to the proper format
// for an http post.  For example: "x_login=username&x_tran_key=a1B2c3D4"
$post_string = "";
foreach( $post_values as $key => $value )
 { $post_string .= "$key=" . urlencode( $value ) . "&"; }
$post_string = rtrim( $post_string, "& " );

// This sample code uses the CURL library for php to establish a connection,
// submit the post, and record the response.
// If you receive an error, you may want to ensure that you have the curl
// library enabled in your php configuration
$request = curl_init($post_url); // initiate curl object
 curl_setopt($request, CURLOPT_HEADER, 1); // set to 0 to eliminate header info from response
 curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); // Returns response data instead of TRUE(1)
 curl_setopt($request, CURLOPT_POSTFIELDS, $post_string); // use HTTP POST to send form data
 curl_setopt($request, CURLOPT_SSL_VERIFYPEER, FALSE); // uncomment this line if you get no gateway response.
 $post_response = curl_exec($request); // execute curl post and store results in $post_response
 // additional options may be required depending upon your server configuration
 // you can find documentation on curl options at http://www.php.net/curl_setopt
curl_close ($request); // close curl object
// This line takes the response and breaks it into an array using the specified delimiting character
$response_array = explode($post_values["x_delim_char"],$post_response);

// individual elements of the array could be accessed to read certain response
// fields.  For example, response_array[0] would return the Response Code,
// response_array[2] would return the Response Reason Code.
// for a list of response fields, please review the AIM Implementation Guide
    $message=$response_array[3];
   $Trans_id=$response_array[5];
if($response_array[1]==1 && $response_array[2]==1)
{
 // payment is successful. Do your action here
}
else 
{
  // payment failed
}


?>

0 comments:

Post a Comment