PX : code

Authorize.Net processing script by Glenda R. Snodgrass
Download this code


<?
// Basic script for online credit card processing through Authorize.Net.
// Copyright (c) 2000 The Net Effect, LLC by Glenda R. Snodgrass
// (grs@theneteffect.com) and released under the GNU Public License
// version 2 or later.   Use at your own risk. :)
//
// This script requires installation of cURL (see
// http://curl.haxx.se/) but uses cURL with PHP's exec()
// function, so you don't need PHP compiled with cURL support.
// This version has been tested on Red Hat Linux 6.1 and 6.2
// using PHP 3.0.12 and 3.0.16 with cURL 7.1 (with patch),
// on Apache 1.3.12 and Red Hat Secure Webserver (mod_ssl 2.6.4).
//
// As written, this script authorizes and captures the charge
// and uses AVS to verify the billing address on the card.  It also
// includes your invoice number for order tracking, and passes
// the 6-digit approval code, AVS result code and transaction ID
// from Authorize.Net to the next step in your order processing
// for future reference (i.e., refunding a purchase or tracking
// an error).  This script dies (i.e., the whole order process
// ends) if the $auth_return code is 2 or 3  but will continue 
// to order completion if 1 is returned. There is no evaluation 
// based on AVS code returned, as that will vary widely according
// to each merchant bank's requirements and your own acceptance policy. 
//
// You can add additional fields to the post to define the info
// you want returned to you by Authorize.Net, change to capture
// only, whatever you like.  See the Authorize.Net Developer's
// Guide for a complete list of fields and options.

// initial variables to define or pass from your shopping cart
$curl = [path to cURL binary]
$my_authnet_userid = [your authorize.net userid]
$total = [total amount to charge]
$cc_number = [credit card number]
$cc_exp = [credit card expiration date]
$invoiceno = [invoice number for your reference]
$billing_address = [purchaser's billing address (street or PO box]
$billing_zip = [purchaser's billing address ZIP code]
exec("$curl -d 'x_Login=$my_authnet_userid&x_Amount=$total&x_Card_Num=$cc_number&x_Exp
_Date=$cc_exp&x_ADC_URL=FALSE&x_ADC_Delim_Data=TRUE&x_Invoice_Num=$invoiceno&x_Version=3.0&x_Address=$billing_address&x_Zip=$billing_zip' https://secure.authorize.net/gateway/transact.dll", $authorize, $ret);

$auth_return = split("\,", $authorize[0]);

// for debugging you can print the variables returned:
// for ($idx = 0; $idx < 39; ++$idx) {
//    $pos = $idx+1;     
//              echo "Code".$pos.":  ".$auth_return[$idx]."<BR>"; 
// }

if($auth_return[0] == 1){

// this section passes these three variables to your processing form
// for order tracking purposes

      $auth_code = $auth_return[4];
      $avs_code = $auth_return[5];
      $trans_id = $auth_return[6];

} elseif($auth_return[0] == 2){

      echo "<b>Your order cannot be processed at this time, as your 
credit card was not accepted.</b><br>";

} elseif($auth_return[0] == 3){

      echo "<b>An error has occurred and your order cannot be proces
sed at this time.</b><br>";
                
}
?>




Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.