I see that in your link in the test tools those work.
This is my code (perhaps I'm doing something wrong):
function aim_processTrans($data, $test=false,$type="auth")
{
if($test)
{
$post_url = "https://test.authorize.net/gateway/transact.dll";
$loginid='myid';
$transkey='mykey';
}
else
{
$post_url = "https://secure.authorize.net/gateway/transact.dll";
$loginid='myid';
$transkey='mykey';
}
$post_values = array(
"x_login" => $loginid,
"x_tran_key" => $transkey,
"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" => "{$data['cnumber']}",
"x_exp_date" => "{$data['emonth']}{$data['eyear']}",
"x_amount" => "{$data['price']}",
"x_description" => "{$data['lname']}",
"x_first_name" => "{$data['fname']}",
"x_last_name" => "{$data['lname']}",
"x_address" => "{$data['addr']}",
"x_state" => "{$data['cstate']}",
"x_zip" => "{$data['zip']}"
);
$post_string = "";
foreach( $post_values as $key => $value )
{ $post_string .= "$key=" . urlencode( $value ) . "&"; }
$post_string = rtrim( $post_string, "& " );
$request = curl_init($post_url);
curl_setopt($request, CURLOPT_HEADER, 0);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($request, CURLOPT_SSL_VERIFYPEER, FALSE);
$post_response = curl_exec($request);
curl_close ($request);
$response_array = explode($post_values["x_delim_char"],$post_response);
return $response_array;
}