PHP – Authorize.net Payment Gateway with SIM Method

This sample code is designed to connect to Authorize.net using the SIM method.
For API documentation or additional sample code, please visit: http://developer.authorize.net

Code Example: Download Example

<?php
// This sample code requires the mhash library for PHP versions older than
// 5.1.2

// 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
$amount         = isset($_REQUEST["amount"]) ? $_REQUEST["amount"] : $amount;
$description    = isset($_REQUEST["description"]) ? $_REQUEST["description"] : $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)); }

// Print the Amount and Description to the screen.
echo "Amount: $amount <br />";
echo "Description: $description <br />";

// Create the HTML form containing necessary SIM post values
echo "<FORM method='post' action='$url' >";
// Additional fields can be added here as outlined in the SIM integration guide
// at: http://developer.authorize.net
echo "    <INPUT type='hidden' name='x_login' value='$loginID' />";
echo "    <INPUT type='hidden' name='x_amount' value='$amount' />";
echo "    <INPUT type='hidden' name='x_description' value='$description' />";
echo "    <INPUT type='hidden' name='x_invoice_num' value='$invoice' />";
echo "    <INPUT type='hidden' name='x_fp_sequence' value='$sequence' />";
echo "    <INPUT type='hidden' name='x_fp_timestamp' value='$timeStamp' />";
echo "    <INPUT type='hidden' name='x_fp_hash' value='$fingerprint' />";
echo "    <INPUT type='hidden' name='x_test_request' value='$testMode' />";
echo "    <INPUT type='hidden' name='x_show_form' value='PAYMENT_FORM' />";
echo "    <input type='submit' value='$label' />";
echo "</FORM>";
?>

Post to Twitter Post to Digg Post to Facebook Post to Google Buzz Send Gmail

Leave a Comment

Your email address will not be published. Required fields are marked *