I have done it with authorize.net CURL OpenSSL and PHP here is a sample of the code I used and the rest is up to you as far as getting CURL and OpenSSL running on your server
$curl = "/usr/local/bin/curl";
$my_authnet_userid = "";
$total = "1.00";
$cc_number = "41111111111111";
$cc_exp = "1002";
$invoiceno = "4365356536";
$billing_address = "";
$billing_address = urlencode($billing_address);
$billing_zip = "";
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>";
}